BUG #1250: compilation fails in src/backend/storage/lmgr/s_lock.c

Started by PostgreSQL Bugs Listover 21 years ago3 messagesbugs
Jump to latest
#1PostgreSQL Bugs List
pgsql-bugs@postgresql.org

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: PostgreSQL Bugs List (#1)
Re: BUG #1250: compilation fails in src/backend/storage/lmgr/s_lock.c

"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

#3Aidan Dixon
Aidan.Dixon@Blueyonder.co.uk
In reply to: Tom Lane (#2)
Re: BUG #1250: compilation fails in src/backend/storage/lmgr/s_lock.c

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!"