Обсуждение: LDFLAGS vs. shared libraries
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
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
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