Red Hat Bugzilla – Bug 145172
_libc_close not exported in libc - RHEL 4
Last modified: 2007-11-30 17:07:15 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; rv:1.7.3)
Description of problem:
When we try to link OWS with the 32 bit/64 bit IPC library, the ipc
library gives out the error that __libc_close is undefined.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
Linking with a library( in our case we have an IPC library with OWS)
it fails with a message _libc_close is undefined.
That just means the IPC library is buggy, uses glibc private symbols which is
not allowed. In RHEL3, __libc_close was exported, but with @@GLIBC_PRIVATE
symbol version that is reserved solely for glibc's own use.
For @@GLIBC_PRIVATE symbols there are no ABI guarantees, they can be added
or removed or change calling conventions at any time, as nothing outside of
glibc itself should ever use it. As glibc itself no longer needed __libc_close,
it is not exported any longer.
If you build a rpm package that has binaries or shared libraries using
GLIBC_PRIVATE symbols, rpm will make sure you can't install that package
to catch such bugs. But if you use some other packaging system, you need to
QA libraries and binaries from using glibc private things yourself.