pthread: Implement POSIX semaphores with uth sems (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 7 Apr 2017 17:47:36 +0000 (13:47 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 3 May 2017 16:13:02 +0000 (12:13 -0400)
commit9aec15ac328822e0f8df2d72a038ab61142061fe
treeaa35d7f149dc2b0a615c4a493e3e934ff83fff14
parent471b1b09616629c7caf992c96955a5cf0f389732
pthread: Implement POSIX semaphores with uth sems (XCC)

We had these as part of pthreads, but now the POSIX sem interfaces work for
any 2LS.  We'll keep it in pthread.c for now, since it's basically the
POSIX interface to threads and synchronization.  Eventually everyone will
be able to use pthread-like functions (including these sems) regardless of
their 2LS.

Fully rebuild the toolchain, including reconfiguring.  (make clean will do
the trick).  The issue is libgomp determines the size of omp_locks during
config time.  Any changes to the size of a semaphore (which is a uthread
sem) triggers the need for a reconfig.  If you ever have builds dying
during libgomp (late in the toolchain build), this is probably why.  Scroll
back a dozen pages and you'll see the error.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
user/pthread/semaphore.c
user/pthread/semaphore.h