On Wed, May 14, 2014 at 10:21:52PM -0700, Darren Hart wrote: > On 5/14/14, 17:18, "H. Peter Anvin" <h...@zytor.com> wrote: > > >On 05/14/2014 09:18 AM, Darren Hart wrote: > >> > >> However, unless I'm sorely mistaken, the larger problem is that glibc > >> removed the futex() call entirely, so these man pages don't describe > >> something users even have access to anymore. I had to revert to calling > >> the syscalls directly in the futextest test suite because of this: > >> > >> > >>http://git.kernel.org/cgit/linux/kernel/git/dvhart/futextest.git/tree/inc > >>lu > >> de/futextest.h#n67 > >> > > > >This really comes down to the fact that we should have a libinux which > >contains the basic system call wrapper machinery for Linux specific > >things and nothing else. > > > >syscall(3) is toxic and breaks randomly on some platforms. > > Peter Z and I have had a good time discussing this in the past.... And > here it is again. :-)
Oh but we wanted _way_ more than bare syscalls in there ;-) For a start we wanted to make the vDSO a proper DSO that gets included in the (dynamic) link chain. /sys/lib/libdso{32,64}.so like That would also allow all those archs that expose raw dso function pointers for things like cmpxchg or memory barriers to just provide platform functions instead, far more usable. And yes, we wanted to hijack libpthread in order to finally fix the futex mess :-)
pgpo_DNKkeif7.pgp
Description: PGP signature