cvs commit: src/lib/libthr pthread.map src/lib/libthr/thread thr_syscalls.c

David Xu davidxu at FreeBSD.org
Thu Dec 20 18:55:44 PST 2007


Alexander Kabaev wrote:
> On Thu, 20 Dec 2007 17:10:03 -0800
> Xin LI <delphij at delphij.net> wrote:
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Hi, Alexander,
>>
>> Alexander Kabaev wrote:
>>> On Thu, 20 Dec 2007 04:32:28 +0000 (UTC)
>>> David Xu <davidxu at FreeBSD.org> wrote:
>>>
>>>> davidxu     2007-12-20 04:32:28 UTC
>>>>
>>>>   FreeBSD src repository
>>>>
>>>>   Modified files:
>>>>     lib/libthr           pthread.map 
>>>>     lib/libthr/thread    thr_syscalls.c 
>>>>   Log:
>>>>   Remove vfork() overloading, it is no longer needed.
>>>>   
>>>>   Revision  Changes    Path
>>>>   1.21      +0 -2      src/lib/libthr/pthread.map
>>>>   1.17      +0 -9      src/lib/libthr/thread/thr_syscalls.c
>>>>
>>>> http://cvsweb.FreeBSD.org/src/lib/libthr/pthread.map.diff?r1=1.20&r2=1.21
>>>> http://cvsweb.FreeBSD.org/src/lib/libthr/thread/thr_syscalls.c.diff?r1=1.16&r2=1.17
>>> Technically, you just broke ABI backwards compatibility for libthr.
>>> Symbols can not be removed from exported sections on a whim.  
>> Being relatively new to this stuff, I think I get confused by this, so
>> we can link to libthr's "vfork" directly?  It uses the same namespace
>> as libc did...
>>
>> Maybe we should write up some usage guidelines for this in developers'
>> handbook (I can give this a shot)...
>>
> The change does not break existing binaries, as libc will satisfy all
> references after fork symbol was removed from libthr. It just breaks
> general rule: we do not remove versioned symbols once they were
> released unless there's a library version bump.

Er, the removal really unbreaks vfork() semantic, as the old code calls
fork(), they are different at all, vfork should not be implemented
as fork() call, it should not call hooks registered by pthread_atfork().

Regards,
David Xu



More information about the cvs-all mailing list