Thread: LDFLAGS vs. shared libraries

LDFLAGS vs. shared libraries

From
Oliver Jowett
Date:
I'm trying to build 7.4.3 under Solaris 9 with gcc and static linking of 
libgcc. This requires passing '-static-libgcc' when linking both 
binaries and shared libraries.

Passing 'LDFLAGS=-static-libgcc' to configure only partially works. 
Binaries are correctly linked with that flag, but shared libraries 
appear to ignore everything but -L options in LDFLAGS when linking (see 
src/Makefile.shlib). The 8.0 tree appears to do the same.

I've changed Makefile.shlib to add all of LDFLAGS to SHLIB_LINK for now, 
but I'm assuming there's a reason that it was only using -L flags 
originally. Is there a Right Way to pass extra options for 
shared-library linking?

-O


Re: LDFLAGS vs. shared libraries

From
Tom Lane
Date:
Oliver Jowett <oliver@opencloud.com> writes:
> I've changed Makefile.shlib to add all of LDFLAGS to SHLIB_LINK for now, 
> but I'm assuming there's a reason that it was only using -L flags 
> originally.

IIRC, on some platforms there are elements of LDFLAGS that will actively
break shared library linking.

> Is there a Right Way to pass extra options for 
> shared-library linking?

LDFLAGS_SL is meant for this, I believe.  Dunno whether you can set it
via configure, though ... that may be an oversight.  In the meantime
you could hand-hack Makefile.global to set it.
        regards, tom lane


Re: LDFLAGS vs. shared libraries

From
Oliver Jowett
Date:
Tom Lane wrote:
> Oliver Jowett <oliver@opencloud.com> writes:
> 
>>Is there a Right Way to pass extra options for 
>>shared-library linking?
> 
> LDFLAGS_SL is meant for this, I believe.  Dunno whether you can set it
> via configure, though ... that may be an oversight.  In the meantime
> you could hand-hack Makefile.global to set it.

Ok. LDFLAGS_SL only seems to be used for AIX & BeOS at the moment, and 
configure does not know about it. I will look at modifying configure.in 
and Makefile.shlib to support it on other platforms.

-O