Rebuilding RHEL3 libc.so from source

Michael ODonnell michael.odonnell at comcast.net
Thu Jul 12 11:54:09 EDT 2007


We're trying to debug (what we assume is) a nasty application bug in
software deployed on some RHEL3 boxes, and it looks like we might have to
resort to instrumenting some low-level funcs in libc to accomplish that.

Having paid RHAT for access to the "channel" that entitles us to
grab RPMs from their servers, I used up2date to install all the latest
packages available from RHAT, so I believe we have a canonical, up-to-date
RHEL3-WS box.  I then downloaded glibc-2.3.2-95.50.src.rpm from RHAT since
"rpm -qa" reports that glibc-2.3.2-95.50 currently installed.

I then installed that source package thus:

   rpm -ivh glibc-2.3.2-95.50.src.rpm

...and built it, thus:

   cd /usr/src/redhat/BUILD
   rpmbuild --verbose -bp ../SPECS/glibc.spec

...with no apparent build problems.  However, it seems like the resultant
objects and libraries bear no resemblance to any of the currently
installed objs and libs on the box.  For example, the resultant libc.so
looks like this:

   -rwxr-xr-x    1 root     root      8937512 Jul 12 09:55 libc.so*
   libc.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped

...while no installed version of anything is even half that size:

   -rwxr-xr-x    1 root     root      1560188 Apr 19 12:19 /lib/i686/libc-2.3.2.so*
   /lib/i686/libc-2.3.2.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped

   -rwxr-xr-x    1 root     root      1569204 Apr 19 12:19 /lib/libc-2.3.2.so*
   /lib/libc-2.3.2.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped

   -rwxr-xr-x    1 root     root      1573180 Apr 19 12:19 /lib/tls/libc-2.3.2.so*
   /lib/tls/libc-2.3.2.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped

...and the lists of symbols extracted from the pre-built libs are
surprisingly different from the locally-built libs, with even some
fundamental things like errno handling apparently different.

So, this Debian user is wondering (publicly, for posterity) what's the
canonical way to reproduce a given RHAT package like this from (what
I've been lead to believe is) the corresponding source RPM?
 


More information about the gnhlug-discuss mailing list