mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 23:08:31 +00:00
Make some systemic improvements
- add vdso dump utility - tests now log stack usage - rename g_ftrace to __ftrace - make internal spinlocks go faster - add conformant c11 atomics library - function tracing now logs stack usage - make function call tracing thread safe - add -X unsecure (no ssl) mode to redbean - munmap() has more consistent behavior now - pacify fsync() calls on python unit tests - make --strace flag work better in redbean - start minimizing and documenting compiler flags
This commit is contained in:
parent
c6bbca55e9
commit
9208c83f7a
141 changed files with 1948 additions and 1411 deletions
|
@ -22,10 +22,11 @@
|
|||
#include "libc/calls/struct/sigaltstack.h"
|
||||
#include "libc/dce.h"
|
||||
#include "libc/intrin/asan.internal.h"
|
||||
#include "libc/intrin/describeflags.internal.h"
|
||||
#include "libc/sysv/errfuns.h"
|
||||
|
||||
static noasan void sigaltstack2bsd(struct sigaltstack_bsd *bsd,
|
||||
const struct sigaltstack *linux) {
|
||||
static void sigaltstack2bsd(struct sigaltstack_bsd *bsd,
|
||||
const struct sigaltstack *linux) {
|
||||
void *sp;
|
||||
int flags;
|
||||
size_t size;
|
||||
|
@ -37,8 +38,8 @@ static noasan void sigaltstack2bsd(struct sigaltstack_bsd *bsd,
|
|||
bsd->ss_size = size;
|
||||
}
|
||||
|
||||
static noasan void sigaltstack2linux(struct sigaltstack *linux,
|
||||
const struct sigaltstack_bsd *bsd) {
|
||||
static void sigaltstack2linux(struct sigaltstack *linux,
|
||||
const struct sigaltstack_bsd *bsd) {
|
||||
void *sp;
|
||||
int flags;
|
||||
size_t size;
|
||||
|
@ -69,10 +70,11 @@ static noasan void sigaltstack2linux(struct sigaltstack *linux,
|
|||
* @param old if non-null will receive current signal alt stack
|
||||
* @return 0 on success, or -1 w/ errno
|
||||
*/
|
||||
noasan int sigaltstack(const struct sigaltstack *neu, struct sigaltstack *old) {
|
||||
int sigaltstack(const struct sigaltstack *neu, struct sigaltstack *old) {
|
||||
int rc;
|
||||
void *b;
|
||||
const void *a;
|
||||
char buf[2][128];
|
||||
struct sigaltstack_bsd bsd;
|
||||
if (IsAsan() && ((old && __asan_check(old, sizeof(*old)).kind) ||
|
||||
(neu && (__asan_check(neu, sizeof(*neu)).kind ||
|
||||
|
@ -106,6 +108,8 @@ noasan int sigaltstack(const struct sigaltstack *neu, struct sigaltstack *old) {
|
|||
} else {
|
||||
rc = enosys();
|
||||
}
|
||||
STRACE("sigaltstack() → %d% m", rc);
|
||||
STRACE("sigaltstack(%s, [%s]) → %d% m",
|
||||
DescribeSigaltstk(buf[0], sizeof(buf[0]), 0, neu),
|
||||
DescribeSigaltstk(buf[0], sizeof(buf[0]), 0, old), rc);
|
||||
return rc;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue