diff --git a/ape/specification.md b/ape/specification.md index c88ddaa63..9ac4a7a4d 100644 --- a/ape/specification.md +++ b/ape/specification.md @@ -402,8 +402,8 @@ arises in the fact that our Linux-flavored GCC and Clang toolchains producing TLS instructions that use the %fs convention. To solve these challenges, the `cosmocc` compiler will rewrite binary -objects after they've been compiled by GCC, so that `%gs` register is -used, rather than `%fs`. Morphing x86-64 binaries after they've been +objects after they've been compiled by GCC, so that the `%gs` register +is used, rather than `%fs`. Morphing x86-64 binaries after they've been compiled is normally difficult, due to the complexity of the machine instruction language. However GCC provides `-mno-tls-direct-seg-refs` which greatly reduces the complexity of this task. This flag forgoes diff --git a/libc/runtime/weakfree.c b/libc/runtime/weakfree.c index bd6e561ec..5e5f57877 100644 --- a/libc/runtime/weakfree.c +++ b/libc/runtime/weakfree.c @@ -24,7 +24,6 @@ * Thunks free() if it's linked, otherwise do nothing. */ void _weakfree(void *p) { - if (_weaken(free)) { + if (_weaken(free)) _weaken(free)(p); - } } diff --git a/libc/sysv/consts/clock.h b/libc/sysv/consts/clock.h index ae4f010e0..4b6e7b193 100644 --- a/libc/sysv/consts/clock.h +++ b/libc/sysv/consts/clock.h @@ -24,7 +24,9 @@ extern const int CLOCK_UPTIME_PRECISE; COSMOPOLITAN_C_END_ -#define CLOCK_REALTIME 0 -#define CLOCK_MONOTONIC CLOCK_MONOTONIC +#define CLOCK_REALTIME 0 +#define CLOCK_MONOTONIC CLOCK_MONOTONIC +#define CLOCK_PROCESS_CPUTIME_ID CLOCK_PROCESS_CPUTIME_ID +#define CLOCK_THREAD_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID #endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_CLOCK_H_ */ diff --git a/libc/thread/pthread_create.c b/libc/thread/pthread_create.c index 42a3b45a1..6f9c86469 100644 --- a/libc/thread/pthread_create.c +++ b/libc/thread/pthread_create.c @@ -118,7 +118,7 @@ void _pthread_decimate(bool annihilation_only) { if (status != kPosixThreadZombie) break; // zombies only exist at the end of the linked list if (atomic_load_explicit(&pt->tib->tib_tid, memory_order_acquire)) - continue; // undead thread should that'll stop existing soon + continue; // undead thread that should stop existing soon dll_remove(&_pthread_list, e); dll_make_first(&list, e); }