Writing Shared Libraries, first draft

Stuart Anderson anderson at netsweng.com
Fri Nov 5 23:47:42 EET 2004


On Fri, 5 Nov 2004, Mike Hearn wrote:

> This sort of thing actually explains quite a few of the "linux binary
> portability is black magic" type posts you see on the net. An error like:
>
> foo: undefined reference to __ctype_b_loc at GLIBC_2.3
>
> when you never heard of that function can be quite mysterious. The problem
> is you used one of the ctype functions like isupper() and that was
> rewritten by a macro behind your back.

This involves more than just the header file stuff. In this case, both
the name and version of the underlying symbol changed. We've seen lots
of symbols change version without any other signature change, which is
just as fatal ABI-wise, but have nothing to do with the headers at all.

The whole concept of mangling symol in the headers has been a major pain
for years.

                                Stuart

Stuart R. Anderson                               anderson at netsweng.com
Network & Software Engineering                   http://www.netsweng.com/
1024D/37A79149:                                  0791 D3B8 9A4C 2CDC A31F
                                                 BD03 0A62 E534 37A7 9149



More information about the xdg mailing list