Date: Sun, 30 Jan 2000 10:52:12 -0800 From: Jason Evans <jasone@canonware.com> To: Brian Somers <brian@Awfulhak.org> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/lib/libc_r/uthread uthread_accept.c uthread_aio_suspend.c uthread_bind.c uthread_connect.c uthread_dup.c uthread_dup2.c uthread_execve.c uthread_exit.c uthread_fchflags.c uthread_fchmod.c uthread_fchown.c uthread_flock.c uthread_fork.c ... Message-ID: <20000130105212.K73462@sturm.canonware.com> In-Reply-To: <200001301336.NAA04941@hak.lan.Awfulhak.org>; from brian@Awfulhak.org on Sun, Jan 30, 2000 at 01:36:20PM %2B0000 References: <jasone@canonware.com> <200001301336.NAA04941@hak.lan.Awfulhak.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jan 30, 2000 at 01:36:20PM +0000, Brian Somers wrote: > > On Sat, Jan 29, 2000 at 02:53:58PM -0800, Jason Evans wrote: > > > Log: > > > Use __strong_reference() instead of __weak_reference() to assure that the > > > weak symbols of the same name are not used. > > > > It looks like it's going to take an 'installworld' or 'includes', then a > > 'world' in order for this to take effect, since the 'buildworld' uses the > > installed version of cdefs.h. Oh well. It doesn't break the world, and > > it's no more broken than using __weak_reference(), so I went ahead and > > committed it. > > > > In other words, unless you take special action, libc_r won't start working > > correctly until you've built and installed the world twice. > > There *may* be something funny still going on with _exit()... I'm > trying to rebuild X (as my window manager was killed by the recent > C++ library breakage^Wchanges, so now's as good a time as any), and > have had problems that I can't claim to understand but are still > breaking ports/x11/XFree86 after a very short way into the > compilation. > > Doing another make world now.... As near as I can tell from looking at libc.a and libc_r.a, there shouldn't be a problem. In the case of libc, _exit() is a weak alias for __exit(), which in turn calls the exit syscall, and in the case of libc_r, _exit() is a strong alias for __exit(), which calls _thread_sys__exit(), which calls the exit syscall. A simple test program confirms that exit() and _exit() work fine, both with libc and libc_r. There was a period of about 18 hours, two days ago, where I may have broken _exit(). _exit() is generated using PPSEUDO(), and this is the *only* use of PPSEUDO(). If you continue having problems, please let me know, and I'll try to help. Thanks, Jason To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000130105212.K73462>