This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Binutils 2.9.5.0.29 ld crash


Philippe Troin <phil@aristotech.com> writes:

> "H . J . Lu" <hjl@valinux.com> writes:
> 
> > On Fri, Mar 10, 2000 at 05:06:07PM -0800, Philippe Troin wrote:
> > > "H . J . Lu" <hjl@valinux.com> writes:
> > > 
> > > > On Fri, Mar 10, 2000 at 04:42:03PM -0800, Philippe Troin wrote:
> > > > > "H . J . Lu" <hjl@valinux.com> writes:
> > > > > 
> > > > > > On Fri, Mar 10, 2000 at 03:42:42PM -0800, Philippe Troin wrote:
> > > > > > > 
> > > > > > > It seems to be related with the debugging symbols, compiling without
> > > > > > > -g seems to works.
> > > > > 
> > > > > Replacing -g by -O gave a crash (SIGBUS), later on in the build...
> > > > > 
> > > > > > It may be a compiler bug. If you can provide a complete test, I
> > > > > > can look into it if I can reproduce it on Solaris 2.7/Sparc. binaries
> > > > > > files are ok.
> > > > > 
> > > > > Can I send all the .so and .o involved in the failure ?
> > > > > If yes, should they be sent directly to hjl@valinux.com or also to
> > > > > binutils@sourceware.cygnus.com ?
> > > > > 
> > > > 
> > > > It's better to put them on some web/http sites and send an email
> > > > to binutils@sourceware.cygnus.com.
> > > 
> > > I've made this file available by ftp on:
> > > 
> > > ftp://binutils:binutils@ftp.aristotech.com/cust/binutils/phil@aristotech.com-crash-binutils-2.9.5.0.29.tar.bz2
> > > 
> > 
> > Did you compile the .o files with -fpic or -fPIC? It looks like you
> > didn't. At least, I didn't find the symbol, _GLOBAL_OFFSET_TABLE_,
> > in those .o files. The GNU ld doesn't like -Bsymbolic without PIC.
> > We just fixed one similar bug. I guess it is another one.
> 
> No, I did not compile PIC code. PIC and code coverage are incompatible
> (on Solaris). So I compiled everything non-PIC, but sill in shared
> libraries.
> 
> AFAIK, it ought to be ok, except the libraries will no be shared
> accross processes, right ?
> 
> FYI, Sun ld refuses to link non-PIC in a shared lib. That's one of the
> reasons why we're using GNU ld.

And FYI, the same code, same toolchain on linux dies much earlier
with the enclosed log. Looks like the 2.9.5.0.29 linux ld refuses to
link in PIC libraries when creating a non-PIC library.

In the command line, multifile.so's object are non-PIC but -lstd7d and
-ltls15d are PIC.

Phil.

g++ -shared -Wl,-soname,multifile.so,-Bsymbolic -o multifile.so __version__.o mfConcurrency.o mfDirectory.o mfDirectoryItem.o mfFile.o mfGlobals.o mfMultifile.o mfMultifileMark.o mfMultifileTemp.o mfNet.o mfNtUnixFile.o mfSector.o mfSectorCache.o mfSectorMap.o mfUtilities.o mfUtilitiesPath.o  -L/usr/X11R6/lib   -L/home/phil/work/build-cov/gandalf/lib -L/home/phil/work/build-cov/tpc/lib  -lpthread -lm -lc    -lstd7d -ltls15d
/home/phil/work/build-cov/tpc/lib/libstd7d.so: In function `std_exception type_info function':
/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: multiple definition of `_DYNAMIC'
/usr/lib/crti.o(.dynamic+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libstd7d.so: In function `std_exception type_info function':
/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: multiple definition of `_etext'
/home/phil/work/build-cov/tpc/lib/libstd7d.so: In function `bad_alloc type_info function':
/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/new(.init+0x0): multiple definition of `_init'
/usr/lib/crti.o(.init+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libstd7d.so: In function `std_exception type_info function':
/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: multiple definition of `__bss_start'
/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: multiple definition of `_fini'
/usr/lib/crti.o(.fini+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libstd7d.so: In function `std_exception type_info function':
/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: multiple definition of `_edata'
/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: multiple definition of `_GLOBAL_OFFSET_TABLE_'
/usr/lib/crti.o(.got.plt+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libstd7d.so: In function `std_exception type_info function':
/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: multiple definition of `_end'
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `bad_alloc type_info node'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `_DYNAMIC'
/usr/lib/crti.o(.dynamic+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `_etext'
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `logic_error type_info node'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `__sn_t12basic_string3ZcZt18string_char_traits1ZcZ9allocator.nullref'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `_PROCEDURE_LINKAGE_TABLE_'
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `basic_string<char, string_char_traits<char>, allocator>::data(void) const':
/aristo/solaris/ref-2000-03-09/tpc/include/string.cc(.init+0x0): multiple definition of `_init'
/usr/lib/crti.o(.init+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `basic_string<char, string_char_traits<char>, allocator>::nullref'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `__bss_start'
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `_fini'
/usr/lib/crti.o(.fini+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `_lib_version'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `_edata'
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `_GLOBAL_OFFSET_TABLE_'
/usr/lib/crti.o(.got.plt+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libtls15d.so: In function `RWInstanceManager type_info function':
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `_end'
/aristo/solaris/ref-2000-03-09/tpc_src/RW/parts/tls0706u/source/obj/SOLARIS/CYGNUS/d15/../../../../src/storemgr.cpp:99: multiple definition of `std_exception type_info node'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(.bss+0x858): multiple definition of `bad_alloc type_info node'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(*ABS*+0x5d9d8): multiple definition of `_DYNAMIC'
/usr/lib/crti.o(.dynamic+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(*ABS*+0x434f8): multiple definition of `_etext'
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(.bss+0x4e8): multiple definition of `logic_error type_info node'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(.bss+0x4f8): multiple definition of `length_error type_info node'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(*ABS*+0x5c38c): multiple definition of `_PROCEDURE_LINKAGE_TABLE_'
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `bad_alloc::~bad_alloc(void)':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/cp/new.cc(.init+0x0): multiple definition of `_init'
/usr/lib/crti.o(.init+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(*ABS*+0x5da60): multiple definition of `__bss_start'
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(.fini+0x0): multiple definition of `_fini'
/usr/lib/crti.o(.fini+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(.rodata+0x0): multiple definition of `_lib_version'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(.bss+0x538): multiple definition of `out_of_range type_info node'
/home/phil/work/build-cov/tpc/lib/libstd7d.so:/amd/pacifica/export/disk-3/solaris/ref-2000-03-09/tpc_src/RW/parts/std0121u/source/src/stl/obj/SOLARIS/CYGNUS/d7/../../../../../include/string.cc:57: first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(*ABS*+0x5da60): multiple definition of `_edata'
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(*ABS*+0x5d314): multiple definition of `_GLOBAL_OFFSET_TABLE_'
/usr/lib/crti.o(.got.plt+0x0): first defined here
/home/phil/work/build-cov/tpc/lib/libstdc++.so: In function `fde_split':
/aristo/solaris/ref-2000-03-09/tpc_src/egcs-1.1.2/gcc/frame.c(*ABS*+0x5e2c8): multiple definition of `_end'
collect2: ld returned 1 exit status
make[2]: *** [multifile.so] Error 1
make[2]: Leaving directory `/export/home-1/phil/work/build-cov/gandalf_src/multifile/linux'
make[1]: *** [recurse] Error 2
make[1]: Leaving directory `/export/home-1/phil/work/build-cov/gandalf_src'
make: *** [install-clean] Error 2

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]