bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Introduce gsync-based locks to glibc.


From: Agustina Arzille
Subject: Re: [PATCH] Introduce gsync-based locks to glibc.
Date: Mon, 23 May 2016 18:45:53 -0300


On 05/22/2016 03:47 AM, Kalle Olavi Niemitalo wrote:
GPLv3-based licenses may be OK for tests (libio/tst-fwrite-error.c)
but I think not for code that gets loaded from glibc to application
processes, unless a license exception applies (intl/plural.c).

There seems to be a similar problem with include/verify.h on the
t/verify.h branch.

Fine. Whatever. I've re-licensed the files under GPLv2.1. The updated patch
also has a new entry in the link map so that libpthread can use the low-level
lock stuff.

I'll upload the patches for improved POSIX mutexes and read-write locks
shortly. Condvars and semaphores will have to wait a bit because they're quite
more complicated to get right.

The changelog for the glibc patch is thus:

* hurd/hurdlock.h: New file.
* hurd/hurdlock.c: New file.
* hurd/Makefile: Add hurdlock.
* hurd/Versions: Added new entry to export the above interface.
* hurd/hurdpid.c: Include <lowlevellock.h>
  (_S_msg_proc_newids): Use lll_wait to synchronize.
* hurd/hurdsig.c: (reauth_proc): Use __mutex_lock and __mutex_unlock.
* hurd/setauth.c: Include <hurdlock.h>, use integer for synchronization.
* mach/lowlevellock.h: New file
* mach/Makefile: Remove unneeded files, add lowlevellock.h
* mach/lock-intern.h: Use lll to implement spinlocks.
* mach/mutex-init.c: Rewrite mutex initialization.
* mach/mutex-solid.c: Removed file.
* mach/spin-solid.c: Removed file.
* manual/errno.texi: Add definitions for EOWNERDEAD and ENOTRECOVERABLE.
* sysdeps/mach/Makefile: Add libmachuser as dependencies for some libs.
* sysdeps/mach/bits/libc-lock.h: Reimplemented libc internal locks
  with lll, cleanup routines now use gcc's cleanup attribute and
  libc keys are now implemented with pthread instead of cthreads.
* sysdeps/mach/hurd/bits/errno.h: New errno values.
* sysdeps/mach/hurd/bits/libc-lock.h: Removed file.
* sysdeps/mach/hurd/bits/posix_opt.h: Add suport for process shared attribute.
* sysdeps/mach/hurd/cthreads.c: Removed definition for __libc_getspecific.
* sysdeps/mach/hurd/malloc-machine.h: Reimplemented malloc locks.
* sysdeps/mach/hurd/setpgid.c: (setpgid): Use gsync for synchronization.
* sysdeps/mach/hurd/setsid.c: (setsid): Likewise.

---



reply via email to

[Prev in Thread] Current Thread [Next in Thread]