Stub sleep in glibc (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 19 Nov 2013 00:25:08 +0000 (16:25 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 16 Jan 2014 19:46:33 +0000 (11:46 -0800)
commit82ad2d8ccd2e58a09304e8103c706c4edfc97eed
tree83aaff1bcd57776b8a7e286e3869d68b54f33ee8
parent64a0fba272954414d63b161c33acc5bdc2f2c475
Stub sleep in glibc (XCC)

Some plan9 programs are calling sleep, and that links to some old
half-built POSIX sleep in glibc that ends up just busy waiting.

We don't support the regular sleep() directly; specifically, we don't
inrerupt sleep on signal delivery.  2LSs could build this if they want,
though signals are sent to processes, not to threads.  In that sense,
sleep is a bit wrong for what we want to do.

If you want to just put a uthread to sleep for a certain amount of time,
you can call uthread_sleep().  Its dumb and just uses the debugging
sys_block to wait in the kernel (we could do it in userspace, for
instance, with an alarm system).

Anyway, I mostly wanted to see stub warnings when compiling something
that calls sleep(), since that is a sign that the program will have
issues with signal handling / porting.

You need to copy over the sleep file into glibc-2.14.1/ and rebuild, or
do a make clean and rebuild your cross compiler.
tools/compilers/gcc-glibc/glibc-2.14.1-ros/sysdeps/ros/sleep.c [new file with mode: 0644]
user/parlib/include/uthread.h
user/parlib/uthread.c