J
Jeff Blaine
We have a GCC in /usr/rcf that was not built with --disable-shared.
As such, there is a /usr/rcf/lib/libgcc_s.so.
We also have a (preferred) GCC in /afs/rcf/lang/gcc/current that
was built with --disable-shared. As such, there is no
/afs/rcf/lang/gcc/current/lib/libgcc_s.so and binaries built
with this compiler do not link to any shared libgcc_s.
I have the following problem with Python 2.4.2. I also tried
2.4.4. Moving up to 2.5 is not an option.
Problem: Builds fine! Rebuild after dropping in Setup.local
causes some magic new build process that ends up
finding and linking in /usr/rcf/lib/libgcc_s.so !
===============================================================================
PATH=/afs/rcf/lang/gcc/sun4x_59/4.1.1/bin:/usr/ccs/bin:/usr/bin:/bin:/usr/ucb
# NOTE: No reference to /usr/rcf/bin, therefore NO picking up the bogus
# GCC and its shared libgcc_s.so
===============================================================================
sun4x_59:cairo> ../configure --prefix=/afs/rcf/lang/python/sun4x_59/2.4.2
sun4x_59:cairo> make
....
===============================================================================
# after successful build...
sun4x_59:cairo> ldd python
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
librt.so.1 => /usr/lib/librt.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libm.so.1 => /usr/lib/libm.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libaio.so.1 => /usr/lib/libaio.so.1
libmd5.so.1 => /usr/lib/libmd5.so.1
libthread.so.1 => /usr/lib/libthread.so.1
/usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
/usr/platform/SUNW,Sun-Fire-280R/lib/libmd5_psr.so.1
sun4x_59:cairo>
#
# Ta daaa! No libgcc_s.so linked in. GOOD.
#
# Now we drop our Setup.local in place for Solaris 9.
#
sun4x_59:cairo> cp ~/Python242.sun4x_59.Setup.local Modules/Setup.local
===============================================================================
sun4x_59:cairo> make
....
c++ -pthread -o python \
Modules/python.o \
libpython2.4.a -lresolv -lsocket -lnsl -lrt -ldl
-L/afs/rcf/lang/tcl/@sys/8.2.3/lib -R/afs/rcf/lang/tcl/@sys/8.2.3/lib
-L/afs/rcf/lang/tk/@sys/8.2.3/lib -R/afs/rcf/lang/tk/@sys/8.2.3/lib
-ltk8.2 -ltcl8.2 -L/usr/openwin/lib -R/usr/openwin/lib -lX11
-R/usr/rcf/lib -L/usr/rcf/lib -lreadline -ltermcap -L/usr/rcf/lib
-R/usr/rcf/lib -lssl -lcrypto -L/usr/rcf/lib -R/usr/rcf/lib -lgdbm
-L/usr/rcf/lib -R/usr/rcf/lib -lz -lm
ld: warning: global symbol `_GLOBAL_OFFSET_TABLE_' has non-global binding:
(file /usr/rcf/lib/libstdc++.so value=LOCL);
ld: warning: global symbol `_GLOBAL_OFFSET_TABLE_' has non-global binding:
(file /usr/rcf/lib/libgcc_s.so.1 value=LOCL);
case $MAKEFLAGS in \
*-s*) CC='gcc -pthread' LDSHARED='gcc -pthread -shared' OPT='-DNDEBUG
-g -O3 -Wall -Wstrict-prototypes' ./python -E ../setup.py -q build;; \
*) CC='gcc -pthread' LDSHARED='gcc -pthread -shared' OPT='-DNDEBUG -g
-O3 -Wall -Wstrict-prototypes' ./python -E ../setup.py build;; \
esac
ld.so.1: python: fatal: libgcc_s.so.1: open failed: No such file or
directory
Killed
make: *** [sharedmods] Error 137
sun4x_59:cairo> ldd python
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
librt.so.1 => /usr/lib/librt.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libX11.so.4 => /usr/openwin/lib/libX11.so.4
libcurses.so.1 => /usr/lib/libcurses.so.1
libgdbm.so.2 => /usr/rcf/lib/libgdbm.so.2
libstdc++.so.5 => /usr/rcf/lib/libstdc++.so.5
libm.so.1 => /usr/lib/libm.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libaio.so.1 => /usr/lib/libaio.so.1
libmd5.so.1 => /usr/lib/libmd5.so.1
libXext.so.0 => /usr/openwin/lib/libXext.so.0
libgcc_s.so.1 => (file not found) # NOOOOOO
libthread.so.1 => /usr/lib/libthread.so.1
/usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
/usr/platform/SUNW,Sun-Fire-280R/lib/libmd5_psr.so.1
sun4x_59:cairo>
As such, there is a /usr/rcf/lib/libgcc_s.so.
We also have a (preferred) GCC in /afs/rcf/lang/gcc/current that
was built with --disable-shared. As such, there is no
/afs/rcf/lang/gcc/current/lib/libgcc_s.so and binaries built
with this compiler do not link to any shared libgcc_s.
I have the following problem with Python 2.4.2. I also tried
2.4.4. Moving up to 2.5 is not an option.
Problem: Builds fine! Rebuild after dropping in Setup.local
causes some magic new build process that ends up
finding and linking in /usr/rcf/lib/libgcc_s.so !
===============================================================================
PATH=/afs/rcf/lang/gcc/sun4x_59/4.1.1/bin:/usr/ccs/bin:/usr/bin:/bin:/usr/ucb
# NOTE: No reference to /usr/rcf/bin, therefore NO picking up the bogus
# GCC and its shared libgcc_s.so
===============================================================================
sun4x_59:cairo> ../configure --prefix=/afs/rcf/lang/python/sun4x_59/2.4.2
sun4x_59:cairo> make
....
===============================================================================
# after successful build...
sun4x_59:cairo> ldd python
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
librt.so.1 => /usr/lib/librt.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libm.so.1 => /usr/lib/libm.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libaio.so.1 => /usr/lib/libaio.so.1
libmd5.so.1 => /usr/lib/libmd5.so.1
libthread.so.1 => /usr/lib/libthread.so.1
/usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
/usr/platform/SUNW,Sun-Fire-280R/lib/libmd5_psr.so.1
sun4x_59:cairo>
#
# Ta daaa! No libgcc_s.so linked in. GOOD.
#
# Now we drop our Setup.local in place for Solaris 9.
#
sun4x_59:cairo> cp ~/Python242.sun4x_59.Setup.local Modules/Setup.local
===============================================================================
sun4x_59:cairo> make
....
c++ -pthread -o python \
Modules/python.o \
libpython2.4.a -lresolv -lsocket -lnsl -lrt -ldl
-L/afs/rcf/lang/tcl/@sys/8.2.3/lib -R/afs/rcf/lang/tcl/@sys/8.2.3/lib
-L/afs/rcf/lang/tk/@sys/8.2.3/lib -R/afs/rcf/lang/tk/@sys/8.2.3/lib
-ltk8.2 -ltcl8.2 -L/usr/openwin/lib -R/usr/openwin/lib -lX11
-R/usr/rcf/lib -L/usr/rcf/lib -lreadline -ltermcap -L/usr/rcf/lib
-R/usr/rcf/lib -lssl -lcrypto -L/usr/rcf/lib -R/usr/rcf/lib -lgdbm
-L/usr/rcf/lib -R/usr/rcf/lib -lz -lm
ld: warning: global symbol `_GLOBAL_OFFSET_TABLE_' has non-global binding:
(file /usr/rcf/lib/libstdc++.so value=LOCL);
ld: warning: global symbol `_GLOBAL_OFFSET_TABLE_' has non-global binding:
(file /usr/rcf/lib/libgcc_s.so.1 value=LOCL);
case $MAKEFLAGS in \
*-s*) CC='gcc -pthread' LDSHARED='gcc -pthread -shared' OPT='-DNDEBUG
-g -O3 -Wall -Wstrict-prototypes' ./python -E ../setup.py -q build;; \
*) CC='gcc -pthread' LDSHARED='gcc -pthread -shared' OPT='-DNDEBUG -g
-O3 -Wall -Wstrict-prototypes' ./python -E ../setup.py build;; \
esac
ld.so.1: python: fatal: libgcc_s.so.1: open failed: No such file or
directory
Killed
make: *** [sharedmods] Error 137
sun4x_59:cairo> ldd python
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
librt.so.1 => /usr/lib/librt.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libX11.so.4 => /usr/openwin/lib/libX11.so.4
libcurses.so.1 => /usr/lib/libcurses.so.1
libgdbm.so.2 => /usr/rcf/lib/libgdbm.so.2
libstdc++.so.5 => /usr/rcf/lib/libstdc++.so.5
libm.so.1 => /usr/lib/libm.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libaio.so.1 => /usr/lib/libaio.so.1
libmd5.so.1 => /usr/lib/libmd5.so.1
libXext.so.0 => /usr/openwin/lib/libXext.so.0
libgcc_s.so.1 => (file not found) # NOOOOOO
libthread.so.1 => /usr/lib/libthread.so.1
/usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
/usr/platform/SUNW,Sun-Fire-280R/lib/libmd5_psr.so.1
sun4x_59:cairo>