Fix sbrk's lock initialization (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 8 Sep 2016 19:18:35 +0000 (15:18 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 16 Sep 2016 18:35:09 +0000 (14:35 -0400)
We were getting away with the uninitialized lock since a value of 0 was OK
for the current LLL locks.

I spotted this when trying to use PDR locks, and LD was flipping out on a
bare-bones replacement for spin_pdr_locks.  A while loop and a CTRL-B
backtrace idenfitied sbrk() as the culprit.

Rebuild glibc, if you want.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sbrk.c

index 68bc770..d60831f 100644 (file)
@@ -25,7 +25,7 @@
 #include <ros/procinfo.h>
 #include <sys/mman.h>
 
-__libc_lock_define(static,brk_lock);
+__libc_lock_define_initialized(static, brk_lock);
 static uintptr_t curbrk = 0;
 
 static uintptr_t