Menu

#318 prevent picking up wrong lib during static build on OSF/1

open
5
2004-01-10
2004-01-10
No

Ok, this is a tricky one. For Tcl 8.4.5, when building
the static lib (configure --disable-shared) on Digital
OSF/1 V4.0, it can happen that a libtcl8.4.so file in a
system library directory (e.g., from a previous
installation of an earlier patch release) is picked up
when linking tclsh and tcltest, instead of the intended
libtcl8.4.a in the present working directory. This is
due to the search algorithm used by the OSF/1 link
editor (quote from "man ld"):

When linking [...], ld searches all library
directories for the
shared object library (libx.so). If it cannot find
the shared object
library, it again searches all library directories
for the archive library
(libx.a).

This is different from the search algorithm of ld on
Solaris, for instance. In order to ensure that the
intended library is picked up on OSF/1 not only during
shared but also during static build, I propose to
change line 1349 in unix/tcl.m4 from

LDFLAGS=""

to

LDFLAGS="-oldstyle_liblookup"

The man page for ld says:

-oldstyle_liblookup
Cause ld to search each library directory, first
for the shared object
library (libx.so) and then for the archive
library (libx.a).

So, that would be like the search algorithm of ld on
Solaris.

Discussion

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.