This is the mail archive of the libc-hacker@cygnus.com mailing list for the glibc project.


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

Runtime failure of glibc 2.0 compiled programs with glibc 2.1


>Submitter-Id:	net
>Originator:	Kars de Jong
>Organization:
  ------------------------------------------------------------------------------
  Kars de Jong             Signaalkamp rules the waves!       Turrican@Discworld
  --------======]**-----|      jongk@cs.utwente.nl      |-----**[======---------
>
>Confidential:	no
>Synopsis:	runtime failure of glibc 2.0 programs
>Severity:	critical
>Priority:	high
>Category:	libc
>Class:		sw-bug
>Release:	libc-2.0.111
>Environment:
Host type: m68k-unknown-linux-gnu
System: Linux rincewind 2.2.0-pre7 #44 Thu Jan 28 21:21:39 CET 1999 m68k unknown
Architecture: m68k
CPU: 68060

Addons: crypt linuxthreads

Build CC: egcs
Compiler version: egcs-2.91.60 19981201 (egcs-1.1.1 release)
Kernel headers: 2.2.0-pre7
Symbol versioning: yes
Build static: yes
Build shared: yes
Build pic-default: no
Build profile: no
Build omitfp: no
Build bounded: no
Build static-nss: no
Stdio: libio

>Description:
Running some programs that were compiled using glibc 2.0 libraries
doesn't work. I get the following error:

rincewind:/usr/src/lib/glibc-2.0.111$ /usr/src/devel/jdk1.2v/build/linux/bin/java
/usr/src/devel/jdk1.2v/build/linux/bin/m68k/native_threads/java: error
in loading shared libraries:
/usr/src/devel/jdk1.2v/build/linux/lib/m68k/classic/libjvm.so:
undefined symbol: __divdi3

The version of GLIBC it was compiled with: glibc-2.0.7-29.m68k.rpm
(RedHat 5.2 distribution)

I have used nm to find the symbol, it is defined in the 2.0 version
as:

0006ff94 T __divdi3

and in the 2.1.111 version as:

000a0eb0 t __divdi3

If I'm not mistaken, it really comes from libgcc.a. Why was it not
resolved at link time from libgcc.a? Or rather, why is __divdi3 in the
2.0 version of glibc?

>How-To-Repeat:
Run a program compiled with glibc 2.0 that uses __divdi3 on a 2.1 system.
>Fix:
Dump the symbol as a global from glibc 2.0, or include it in glibc 2.1
as global.


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