Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Dec 2007 10:56:43 +0800
From:      David Xu <davidxu@FreeBSD.org>
To:        Alexander Kabaev <kabaev@gmail.com>
Cc:        delphij@delphij.net, src-committers@FreeBSD.org, d@delphij.net, cvs-all@FreeBSD.org, cvs-src@FreeBSD.org
Subject:   Re: cvs commit: src/lib/libthr pthread.map src/lib/libthr/thread thr_syscalls.c
Message-ID:  <476B2B6B.7090401@freebsd.org>
In-Reply-To: <20071220210650.4f3d061d@kan.dnsalias.net>
References:  <200712200432.lBK4WSEq036881@repoman.freebsd.org>	<20071220074756.5ac4b0c1@kan.dnsalias.net>	<476B126B.40004@delphij.net> <20071220210650.4f3d061d@kan.dnsalias.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Alexander Kabaev wrote:
> On Thu, 20 Dec 2007 17:10:03 -0800
> Xin LI <delphij@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@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?476B2B6B.7090401>