clang and static linking?

Dimitry Andric dim at FreeBSD.org
Sat Nov 10 21:59:17 UTC 2012


On 2012-11-10 22:39, Jilles Tjoelker wrote:
> On Sat, Nov 10, 2012 at 01:33:40AM +0100, Dimitry Andric wrote:
...
>> - Only define isnan, isnanf, __isnan and __isnanf in libc.so, not in
>>     libc.a and libc_p.a.
>
> OK, but please add a comment about this.

Where?  In libc or libm?


>> - Define isnan in libm.a and libm_p.a, not in libm.so.  I don't think
>>     there is a need to define __isnan in the .a files, so I left that out.
>
> Removing symbols from a .so causes subtle ABI breakage and is not needed
> for fixing static linking.

I didn't remove symbols from any .so.  There was no isnan in libm.so
before my commit.  I only added it to the static libraries.


> More concretely, dlsym of isnan on libm.so will stop working and a
> different version of isnan will be chosen if the search list is libm.so,
> libother.so, libc.so and libother.so contains another isnan.

As I said, there was no isnan in libm.so, so this does not matter.


More information about the freebsd-current mailing list