Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 4587

Summary: Incompatibility with glibc 2.1.1 & Motif 2.1.10
Product: [Retired] Red Hat Linux Reporter: saisat
Component: glibcAssignee: Cristian Gafton <gafton>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 6.0CC: saisat
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 1999-08-24 00:37:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description saisat 1999-08-18 13:24:22 UTC
When we run our build script , we get the following error.

/usr/X11R6/lib/libXm.a(XpmRdFToI.o): In function
`OpenReadFile':
XpmRdFToI.o(.text+0x159): undefined reference to
`_IO_stdin_'

i.e, the linker is unable to resolve the reference of symbol
_IO_stdin_
in the above said Motif libraries.

On digging lot of manuals, glibc source files, we found that
in
GLIBC 2.0 , the global variables are _IO_stdin_ and et al,
but in GLIBC 2.1.1,
the global variables were changed to _IO_2_1_stdin_
This change has caused a lot of problems. Thus indicating
that Motif libraries
have to be compiled using GLIBC 2.1 onwards.

Here is a bit of text from Red Hat errata on Motif 2.1
 " Motif libraries compiled against glibc 2.0 will not work
when
 built against glibc 2.1 because of one particular upgraded
 interface.  Applications built against motif on a Red Hat
Linux
 5.2 (or other glibc 2.0-based system) will work on Red Hat
 Linux 6.0  You can build Motif applications with older
Motif
libraries by using the "compat" packages included as part of
 Red Hat Linux 6.0."

But the Motif version (2.1.10) we are using is said to work
from GLIBC 2.0+

So if we have to make our product work, we need to use the
Motif libraries
compiled on GLIBC 2.1.1 or use older Motif libraries using
'compat' package
of RH6.0

The linker is unable to reference the symbol _IO_stdin_ in
this environment
because it is probably replaced by _IO_2_1_stdin. Am I
correct?

Is the 'compat' for whole component (Motif as whole) or only
few libraries of Motif?

Any workaround suggested??

Comment 1 Cristian Gafton 1999-08-24 00:37:59 UTC
You are trying to link an object file compiled on glibc 2.0 on a glibc
2.1 system, and that is not permitted. Either transform the static
object into a shared library and use that or recompile from the
source.

If you want to get a static Motif binary using the glibc 2.0 libraries
you are out of luck. Only shared libraries and relocable objects can
be ported from one version of the glibc to another.

I would suggest that if you need static linking then use the compat-*
packages.