Thread: BUG #1250: compilation fails in src/backend/storage/lmgr/s_lock.c
The following bug has been logged online: Bug reference: 1250 Logged by: Aidan Dixon Email address: Aidan.Dixon@Blueyonder.co.uk PostgreSQL version: 8.0 Beta Operating system: Sun/Solaris9/64bit Description: compilation fails in src/backend/storage/lmgr/s_lock.c Details: Compiler: SUNWspro (Forte Developer 7) cc The code in s_lock.c uses a ".seg" directive where ".section" seems to be in vogue, judging from the output of "cc -S" for a simple "hello world" type program. Build output: make[4]: Entering directory `/share/build/postgresql-8.0.0beta2/src/backend/storage/lmgr' /opt/SUNWspro/bin/cc -xarch=v9 -O -Xa -O -v -I../../../../src/include -I/soft-dist/local/include -c -o s_lock.o s_lock.c "s_lock.c", line 228: warning: asm() statement disables optimization within function cg error (as) : "s_lock.c", line 228 : unknown opcode ".segment" cc: cg failed for s_lock.c make[4]: *** [s_lock.o] Error 2 make[4]: Leaving directory `/share/build/postgresql-8.0.0beta2/src/backend/storage/lmgr' make[3]: *** [lmgr-recursive] Error 2 make[3]: Leaving directory `/share/build/postgresql-8.0.0beta2/src/backend/storage' make[2]: *** [storage-recursive] Error 2 make[2]: Leaving directory `/share/build/postgresql-8.0.0beta2/src/backend' make[1]: *** [all] Error 2 make[1]: Leaving directory `/share/build/postgresql-8.0.0beta2/src' make: *** [all] Error 2
"PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes: > The code in s_lock.c uses a ".seg" directive where ".section" seems to be > in vogue, judging from the output of "cc -S" for a simple "hello world" type > program. Hmm. So how can we distinguish your version of Solaris from the ones that want ".seg"? regards, tom lane
On Fri, 10 Sep 2004, Tom Lane wrote: >"PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes: >> The code in s_lock.c uses a ".seg" directive where ".section" seems to be >> in vogue, judging from the output of "cc -S" for a simple "hello world" type >> program. > >Hmm. So how can we distinguish your version of Solaris from the ones >that want ".seg"? The SUNWspro man page for cc(1) contains the following (entries for -xarch=v9 i.e. 64bit sparc apply in my case) ... Predefinitions:unix sparc (SPARC) i386 (x86) sun The above are not predefined in -Xc mode. These predefinitions are valid in all modes: __sun __unix __SUNPRO_C=0x540 __`uname -s`_`uname -r` __sparc (SPARC) __sparcv9 (SPARC with -xarch=v9|v9a|v9b) __i386 (x86) __BUILTIN_VA_ARG_INCR __SVR4 The following is predefined in -Xa and -Xt modes only: __RESTRICT The compiler also predefines the object-like macro __PRAGMA_REDEFINE_EXTNAME, to indicate the pragma will be recognized. ... Guess the ___SUNPRO_C macro is a start. 'fraid the only other compiler I can test against is gcc-3.4.1. Any suggestions, I'll give 'em a try. Regards, -a. -- Aidan Thomas Dixon - aidan.dixon@blueyonder.co.uk "Whether you believe you can or you can't, you're probably right!"