other/3796: IA64 undefined references in shared libraries linked with -Bsymbolic

W.Stuehlmeyer@t-online.de W.Stuehlmeyer@t-online.de
Tue Jul 24 11:06:00 GMT 2001


>Number:         3796
>Category:       other
>Synopsis:       IA64 undefined references in shared libraries linked with -Bsymbolic
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jul 24 11:06:02 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Wolfgang Stuehlmeyer
>Release:        gcc-20010716
>Organization:
>Environment:
SuSE linux 7.2 beta on ia64
Reading specs from /usr/local/lib/gcc-lib/ia64-suse-linux/3.0.1/specs
Configured with: ./configure --enable-threads=posix --enable-shared --enable-checking --enable-nls --prefix=/usr/local --with-local-prefix=/usr/local --infodir=/usr/local/info --mandir=/usr/local/man --with-gxx-include-dir=/usr/local/include/g++-v3 ia64-suse-linux
Thread model: posix
gcc version Snapshot 20010716
>Description:
Build shared library:
=====================
g++ -o /home/ole/cool.WHITE/viking/pcwsr3_ia64_linux_libc6_debug/lib/libmutant.so \
     obj/pcwsr3_ia64_linux_libc6_debug/mutant_def.o \
     -shared -Wl,-soname,libmutant.so,-Bsymbolic \
     -g \
     -L/home/ole/cool.WHITE/viking/pcwsr3_ia64_linux_libc6_debug/lib \
     -L/home/ole/cool.BLACK/viking/pcwsr3_ia64_linux_libc6_debug/lib \
     \
     obj/pcwsr3_ia64_linux_libc6_debug/libmutant.a \
     ../../local/unix/obj/pcwsr3_ia64_linux_libc6_debug/liblocal.a \
     ../../common/unix/obj/pcwsr3_ia64_linux_libc6_debug/libcommon.a \
     ../../vmem/unix/obj/pcwsr3_ia64_linux_libc6_debug/libvmem.a \
     ../../version/unix/obj/pcwsr3_ia64_linux_libc6_debug/libversion.a \
     ../../os/unix/obj/pcwsr3_ia64_linux_libc6_debug/libosdep.a \
     ../../runtime/unix/obj/pcwsr3_ia64_linux_libc6_debug/libcrt.a    \
     \
     -lcoolcrypto -ltrace \
     \
     -L/home/ole/cool.WHITE/viking/pcwsr3_ia64_linux_libc6_debug/lib \
     -L/home/ole/cool.BLACK/viking/pcwsr3_ia64_linux_libc6_debug/lib \
     \
     -ldl -lc -lpthread `gcc --print-libgcc-file` \
     \
     | c++filt
/usr/local/lib/gcc-lib/ia64-suse-linux/3.0.1/libgcc.a(fde-glibc.o): In function `_Unwind_FindTableEntry':
fde-glibc.o(.text+0x3c1): undefined reference to `__ia64_app_header'
fde-glibc.o(.text+0x451): undefined reference to `_dl_load_lock'
fde-glibc.o(.text+0x480): undefined reference to `_dl_loaded'
fde-glibc.o(.text+0x531): undefined reference to `_dl_load_lock'
collect2: ld returned 1 exit status

The error appears only with the -Bsymbolic linker switch in
some libraries (not in all). I found all unresolved externals
 in the gcc 3.0 archive libgcc.a

How should i understand the comments in gcc/config/ia64/fde-glibc.c?
The code should be added into static link applications, 
but not into symbolic linked shared libraries?

The variable __ia64_app_header is included in crtbegin.asm only and 
crtbegin.o will be used from applications only.

I don't know how to repeat the problem with a small shared 
library.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list