Make fixes and improvements

- Document more compiler flags
- Expose new __print_maps() api
- Better overflow checking in mmap()
- Improve the shell example somewhat
- Fix minor runtime bugs regarding stacks
- Make kill() on fork()+execve()'d children work
- Support CLONE_CHILD_CLEARTID for proper joining
- Fix recent possible deadlock regression with --ftrace
This commit is contained in:
Justine Tunney 2022-05-19 16:57:49 -07:00
parent 6e52cba37a
commit ec2cb88058
68 changed files with 1211 additions and 431 deletions

View file

@ -86,6 +86,14 @@ o/$(MODE)/libc/str/windowstimetotimespec.o: \
OVERRIDE_CFLAGS += \
-O2
# we can't use compiler magic because:
# kprintf() depends on these functions
o/$(MODE)/libc/fmt/strsignal.greg.o: \
OVERRIDE_CFLAGS += \
-fpie \
-ffreestanding \
$(NO_MAGIC)
LIBC_STR_LIBS = $(foreach x,$(LIBC_STR_ARTIFACTS),$($(x)))
LIBC_STR_SRCS = $(foreach x,$(LIBC_STR_ARTIFACTS),$($(x)_SRCS))
LIBC_STR_HDRS = $(foreach x,$(LIBC_STR_ARTIFACTS),$($(x)_HDRS))

View file

@ -35,7 +35,9 @@ static char g_strsignal[12];
* @return pointer to static memory that mutates on subsequent calls
* @see sigaction()
*/
noasan noinstrument char *strsignal(int sig) {
privileged char *strsignal(int sig) {
// we need privileged because:
// kprintf is privileged and it depends on this
char *p;
const char *s;
p = g_strsignal;