glibc2.1 and Xlib compiled with glibc2.0 (libio incompatibility)
Eugene M. Indenbom
bom@classic.iki.rssi.ru
Thu Apr 1 00:00:00 GMT 1999
>Submitter-Id:
net >Originator: Eugene M. Indenbom >Organization:ÃÂ Space
Research Institute, Moscow, Russia >Confidential: no >Synopsis:
glibc2.1 applications linked with Xlib linked against glibc2.0 are not
working >Severity: serious
>Priority:
medium
>Category:
libc >Class:ÃÂ sw-bug
>Release:
libc-2.1.0 >Environment: Host type: i586-pc-linux-gnu System: Linux
tver 2.2.0 #1 SMP Tue Jan 26 10:42:08 MSK 1999 i686 unknown Architecture:
i686
ÃÂ Addons: crypt linuxthreads
ÃÂ Build CC: gcc Compiler version:
egcs-2.91.60 19981201 (egcs-1.1.1 release) Kernel headers: 2.2.0 Symbol
versioning: yes Build static: yes Build shared: yes Build pic-default:
no Build profile: yes Build omitfp: yes Build bounded: no Build
static-nss: no Stdio: libio
ÃÂ
Binutils:
2.9.1.0.19a
ÃÂ
>Description:
glibc2.1 applications linked
with Xlib linked against glibc2.0 will terminate with SIGSEGV
when DISPLAY points to
non-existent host.
The problem: X11 libs are using
old libio _IO_stderr_ pointer, but newer programs
has _IO_stdio_used defined in
crt1.c that forces new libio behavior => SIGSEGV
when called in old format. (Old
IO is fprintf in Xtrans library when it can not resolve hostname) The
question is how to overcome this problem?
Is glibc2.1 binary incompatible
with glibc2.0 so everything has to be recompiled?
Or only shared libraries has to
be recompiled?
Or I have to use stdio library
instead of libio on Linux.
ÃÂ >How-To-Repeat:
1. Take XFree86 binary
distribution for glibc 2.0, compile any X application with this X
libraries
provided and glibc2.1. (I try
xtetris-2.6)
2.
DISPLAY=tcp/nohost:0.0
3. Run it : got
SIGSEGV >Fix: ???
Sincerely Yours,
Eugene
More information about the Libc-alpha
mailing list