>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