[CentOS-devel] libc.so.6(GLIBC_PRIVATE)(64bit) is needed but I cannot find it in CentOS 5.2

Wed Aug 13 12:00:02 UTC 2008
Erez Zilber <erezzi.list at gmail.com>

Hi,

I'm using CentOS 5.2. I wrote a program that uses rtkaio (so my
Makefile contains -lrtkaio). The program runs successfully. The
problem began when I wanted to create a rpm for my program. I was able
to generate a binary rpm, but when I tried to install it, I got the
following error:

[root at klab002 tmp]# rpm -i /tmp/mypkg-1.0.x86_64.rpm
error: Failed dependencies:
        libc.so.6(GLIBC_PRIVATE)(64bit) is needed by mypkg-1.0.x86_64.rpm

I checked the dependencies:

[root at klab002 tmp]# rpm -qRp /tmp/mypkg-1.0.x86_64.rpm
/bin/bash
/bin/sh
/bin/sh
/bin/sh
/usr/bin/python
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_PRIVATE)(64bit)
libnickel.so()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH

The problem is that librtkaio uses GLIBC_PRIVATE:

[root at klab002 tmp]$ nm /lib/rtkaio/librtkaio-2.5.so | grep PRIVATE
         U __libc_dlopen_mode@@GLIBC_PRIVATE
         U __libc_dlsym@@GLIBC_PRIVATE
         U __libc_fatal@@GLIBC_PRIVATE
         U __libc_pwrite@@GLIBC_PRIVATE
         w __pthread_clock_gettime@@GLIBC_PRIVATE
         w __pthread_clock_settime@@GLIBC_PRIVATE
         U __pthread_unwind@@GLIBC_PRIVATE
         U _rtld_global@@GLIBC_PRIVATE

But I couldn't find where these symbols are defined (e.g.
__libc_pwrite@@GLIBC_PRIVATE).

The workaround that I found is to add the following line to the spec
file: "provides:	libc.so.6(GLIBC_PRIVATE)(64bit)"
I guess that there should be a better solution for that. Any idea?

Thanks,
Erez