Skip site navigation (1) Skip section navigation (2)

solaris build problem with Sun compilers

From: Alan Stange <stange(at)rentec(dot)com>
To: pgsql-ports(at)postgresql(dot)org
Subject: solaris build problem with Sun compilers
Date: 2006-05-11 19:17:55
Message-ID: 44638DE3.6040507@rentec.com (view raw or flat)
Thread:
Lists: pgsql-ports
Hello all,

it appears that there's a problem building postgresql with 
--enable-debug on Solaris with the Sun compilers.

noisy$ /opt/spro11/SUNWspro/bin/cc -Xa -v -DSUNOS4_CC 
-I../../../../src/include -g -c s_lock.c
/opt/spro11/SUNWspro/prod/bin/fbe: "/tmp/yabeAAAdBaiW5", line 484: 
error: can't compute difference between symbols in different segments
Failure in /opt/spro11/SUNWspro/prod/bin/fbe, status = 0x100
Fatal Error exec'ing /opt/spro11/SUNWspro/prod/bin/fbe
cc: acomp failed for s_lock.c

It appears that explicitly adding "-xO0" to the compile statement 
resolves this problem.  In fact, any optimization level seems to make 
this error go away which is why it's not seen in a normal build.

The core of the problem seems to be a
.size tas_dummy,(.-tas_dummy)
directive which is emitted by the compiler.

Without the any -xO specifier this directive ends up in a different 
.section due to the two .section directives in the s_lock.c code. 
Adding any -xO options relocates the code so that the section mismatch 
isn't a problem.


This brings up the question:    why are the two .section directives 
there at all in s_lock.c:299?

	asm(".section \"data\"");
         asm(".section \"text\"");

I don't see what they add and they're confusing assembler (fbe 
actually).   The data section obviously isn't needed and given this code 
is already nested in a function, the text section is redundant too.


Anyway, seems we have two solutions:

1) explicitly specify a -xO0 option along with -g
or
2) remove the .section specifiers


Comments?

-- Alan

Responses

pgsql-ports by date

Next:From: Tom LaneDate: 2006-05-11 19:24:55
Subject: Re: Compiling on 8.1.3 on Openserver 5.05
Previous:From: Mark CampbellDate: 2006-05-11 19:11:03
Subject: Re: Compiling on 8.1.3 on Openserver 5.05

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group