mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 06:53:33 +00:00
Make some system call fixes
- Fix minor ABI issue with SIOCGIFCONF - Fix ABI translation issues with statfs() on BSDs - Fix SQLite angled header line
This commit is contained in:
parent
0eb621f75e
commit
2b6261a52d
11 changed files with 88 additions and 37 deletions
|
@ -27,13 +27,13 @@ dontinline void ShowIt(const char *path) {
|
||||||
"optimal transfer block size");
|
"optimal transfer block size");
|
||||||
sizefmt(ibuf, sf.f_frsize, 1024);
|
sizefmt(ibuf, sf.f_frsize, 1024);
|
||||||
printf("f_frsize = %,zu (%sb %s)\n", sf.f_frsize, ibuf, "fragment size");
|
printf("f_frsize = %,zu (%sb %s)\n", sf.f_frsize, ibuf, "fragment size");
|
||||||
sizefmt(ibuf, sf.f_blocks * sf.f_bsize, 1024);
|
sizefmt(ibuf, sf.f_blocks * sf.f_frsize, 1024);
|
||||||
printf("f_blocks = %,zu (%sb %s)\n", sf.f_blocks, ibuf,
|
printf("f_blocks = %,zu (%sb %s)\n", sf.f_blocks, ibuf,
|
||||||
"total data blocks in filesystem");
|
"total data blocks in filesystem");
|
||||||
sizefmt(ibuf, sf.f_bfree * sf.f_bsize, 1024);
|
sizefmt(ibuf, sf.f_bfree * sf.f_frsize, 1024);
|
||||||
printf("f_bfree = %,zu (%sb %s)\n", sf.f_bfree, ibuf,
|
printf("f_bfree = %,zu (%sb %s)\n", sf.f_bfree, ibuf,
|
||||||
"free blocks in filesystem");
|
"free blocks in filesystem");
|
||||||
sizefmt(ibuf, sf.f_bavail * sf.f_bsize, 1024);
|
sizefmt(ibuf, sf.f_bavail * sf.f_frsize, 1024);
|
||||||
printf("f_bavail = %,zu (%sb %s)\n", sf.f_bavail, ibuf,
|
printf("f_bavail = %,zu (%sb %s)\n", sf.f_bavail, ibuf,
|
||||||
"free blocks available to use");
|
"free blocks available to use");
|
||||||
printf("f_files = %,zu (%s)\n", sf.f_files,
|
printf("f_files = %,zu (%s)\n", sf.f_files,
|
||||||
|
|
|
@ -184,6 +184,10 @@ static const char *DescribeStatfsTypeLinux(int64_t x) {
|
||||||
return "xfs";
|
return "xfs";
|
||||||
case 0x012fd16d:
|
case 0x012fd16d:
|
||||||
return "_xiafs";
|
return "_xiafs";
|
||||||
|
case 0x2fc12fc1:
|
||||||
|
return "zfs";
|
||||||
|
case 0x4253584e:
|
||||||
|
return "apfs";
|
||||||
default:
|
default:
|
||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
|
@ -222,7 +226,7 @@ void statfs2cosmo(struct statfs *f, const union statfs_meta *m) {
|
||||||
|
|
||||||
} else if (IsFreebsd()) {
|
} else if (IsFreebsd()) {
|
||||||
f_type = m->freebsd.f_type;
|
f_type = m->freebsd.f_type;
|
||||||
f_bsize = m->freebsd.f_bsize;
|
f_bsize = m->freebsd.f_iosize;
|
||||||
f_blocks = m->freebsd.f_blocks;
|
f_blocks = m->freebsd.f_blocks;
|
||||||
f_bfree = m->freebsd.f_bfree;
|
f_bfree = m->freebsd.f_bfree;
|
||||||
f_bavail = m->freebsd.f_bavail;
|
f_bavail = m->freebsd.f_bavail;
|
||||||
|
@ -237,14 +241,14 @@ void statfs2cosmo(struct statfs *f, const union statfs_meta *m) {
|
||||||
|
|
||||||
} else if (IsXnu()) {
|
} else if (IsXnu()) {
|
||||||
f_type = m->xnu.f_type;
|
f_type = m->xnu.f_type;
|
||||||
f_bsize = m->xnu.f_bsize;
|
f_bsize = m->xnu.f_iosize;
|
||||||
f_blocks = m->xnu.f_blocks;
|
f_blocks = m->xnu.f_blocks;
|
||||||
f_bfree = m->xnu.f_bfree;
|
f_bfree = m->xnu.f_bfree;
|
||||||
f_bavail = m->xnu.f_bavail;
|
f_bavail = m->xnu.f_bavail;
|
||||||
f_files = m->xnu.f_files;
|
f_files = m->xnu.f_files;
|
||||||
f_ffree = m->xnu.f_ffree;
|
f_ffree = m->xnu.f_ffree;
|
||||||
f_fsid = m->xnu.f_fsid;
|
f_fsid = m->xnu.f_fsid;
|
||||||
f_namelen = 4096;
|
f_namelen = 255;
|
||||||
f_frsize = m->xnu.f_bsize;
|
f_frsize = m->xnu.f_bsize;
|
||||||
f_flags = m->xnu.f_flags;
|
f_flags = m->xnu.f_flags;
|
||||||
f_owner = m->xnu.f_owner;
|
f_owner = m->xnu.f_owner;
|
||||||
|
@ -252,7 +256,7 @@ void statfs2cosmo(struct statfs *f, const union statfs_meta *m) {
|
||||||
|
|
||||||
} else if (IsOpenbsd()) {
|
} else if (IsOpenbsd()) {
|
||||||
f_type = f->f_type;
|
f_type = f->f_type;
|
||||||
f_bsize = m->openbsd.f_bsize;
|
f_bsize = m->openbsd.f_iosize;
|
||||||
f_blocks = m->openbsd.f_blocks;
|
f_blocks = m->openbsd.f_blocks;
|
||||||
f_bfree = m->openbsd.f_bfree;
|
f_bfree = m->openbsd.f_bfree;
|
||||||
f_bavail = m->openbsd.f_bavail;
|
f_bavail = m->openbsd.f_bavail;
|
||||||
|
@ -267,7 +271,7 @@ void statfs2cosmo(struct statfs *f, const union statfs_meta *m) {
|
||||||
|
|
||||||
} else if (IsNetbsd()) {
|
} else if (IsNetbsd()) {
|
||||||
f_type = m->netbsd.f_type;
|
f_type = m->netbsd.f_type;
|
||||||
f_bsize = m->netbsd.f_bsize;
|
f_bsize = m->netbsd.f_iosize;
|
||||||
f_blocks = m->netbsd.f_blocks;
|
f_blocks = m->netbsd.f_blocks;
|
||||||
f_bfree = m->netbsd.f_bfree;
|
f_bfree = m->netbsd.f_bfree;
|
||||||
f_bavail = m->netbsd.f_bavail;
|
f_bavail = m->netbsd.f_bavail;
|
||||||
|
|
|
@ -9,7 +9,7 @@ struct statfs_linux {
|
||||||
int64_t f_bsize; /* optimal transfer block size */
|
int64_t f_bsize; /* optimal transfer block size */
|
||||||
int64_t f_blocks; /* total data blocks in filesystem */
|
int64_t f_blocks; /* total data blocks in filesystem */
|
||||||
int64_t f_bfree; /* free blocks in filesystem */
|
int64_t f_bfree; /* free blocks in filesystem */
|
||||||
int64_t f_bavail; /* free blocks available to */
|
int64_t f_bavail; /* free blocks available to unprivileged user */
|
||||||
int64_t f_files; /* total file nodes in filesystem */
|
int64_t f_files; /* total file nodes in filesystem */
|
||||||
int64_t f_ffree; /* free file nodes in filesystem */
|
int64_t f_ffree; /* free file nodes in filesystem */
|
||||||
fsid_t f_fsid; /* filesystem id */
|
fsid_t f_fsid; /* filesystem id */
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "libc/calls/calls.h"
|
#include "libc/calls/calls.h"
|
||||||
#include "libc/calls/struct/rlimit.h"
|
#include "libc/calls/struct/rlimit.h"
|
||||||
#include "libc/calls/struct/sched_param.h"
|
#include "libc/calls/struct/sched_param.h"
|
||||||
|
#include "libc/calls/struct/sigaction.h"
|
||||||
#include "libc/calls/struct/sigset.h"
|
#include "libc/calls/struct/sigset.h"
|
||||||
#include "libc/calls/struct/termios.h"
|
#include "libc/calls/struct/termios.h"
|
||||||
#include "libc/calls/struct/utsname.h"
|
#include "libc/calls/struct/utsname.h"
|
||||||
|
@ -166,6 +167,7 @@ textstartup void __printargs(const char *prologue) {
|
||||||
uintptr_t *auxp;
|
uintptr_t *auxp;
|
||||||
struct rlimit rlim;
|
struct rlimit rlim;
|
||||||
struct utsname uts;
|
struct utsname uts;
|
||||||
|
struct sigaction sa;
|
||||||
struct sched_param sp;
|
struct sched_param sp;
|
||||||
struct termios termios;
|
struct termios termios;
|
||||||
struct AuxiliaryValue *auxinfo;
|
struct AuxiliaryValue *auxinfo;
|
||||||
|
@ -288,7 +290,7 @@ textstartup void __printargs(const char *prologue) {
|
||||||
|
|
||||||
if (!sigprocmask(SIG_BLOCK, 0, &ss)) {
|
if (!sigprocmask(SIG_BLOCK, 0, &ss)) {
|
||||||
PRINT("");
|
PRINT("");
|
||||||
PRINT("SIGNALS {%#lx, %#lx}", ss.__bits[0], ss.__bits[1]);
|
PRINT("SIGNAL MASK {%#lx, %#lx}", ss.__bits[0], ss.__bits[1]);
|
||||||
if (ss.__bits[0] || ss.__bits[1]) {
|
if (ss.__bits[0] || ss.__bits[1]) {
|
||||||
for (i = 0; i < 32; ++i) {
|
for (i = 0; i < 32; ++i) {
|
||||||
if (ss.__bits[0] & (1u << i)) {
|
if (ss.__bits[0] & (1u << i)) {
|
||||||
|
@ -304,6 +306,23 @@ textstartup void __printargs(const char *prologue) {
|
||||||
PRINT(" error: sigprocmask() failed %m");
|
PRINT(" error: sigprocmask() failed %m");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PRINT("");
|
||||||
|
PRINT("SIGNALS");
|
||||||
|
for (gotsome = 0, i = 1; i <= 64; ++i) {
|
||||||
|
if (!sigaction(i, 0, &sa)) {
|
||||||
|
if (sa.sa_handler == SIG_IGN) {
|
||||||
|
PRINT(" ☼ %G is SIG_IGN", i);
|
||||||
|
gotsome = 1;
|
||||||
|
} else if (sa.sa_handler != SIG_DFL) {
|
||||||
|
PRINT(" ☼ %G is %p", i, sa.sa_handler);
|
||||||
|
gotsome = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!gotsome) {
|
||||||
|
PRINT(" ☼ SIG_DFL");
|
||||||
|
}
|
||||||
|
|
||||||
if (PLEDGED(PROC)) {
|
if (PLEDGED(PROC)) {
|
||||||
PRINT("");
|
PRINT("");
|
||||||
PRINT("SCHEDULER");
|
PRINT("SCHEDULER");
|
||||||
|
@ -419,10 +438,21 @@ textstartup void __printargs(const char *prologue) {
|
||||||
|
|
||||||
PRINT("");
|
PRINT("");
|
||||||
PRINT("TERMIOS");
|
PRINT("TERMIOS");
|
||||||
for (i = 0; i < 2; ++i) {
|
for (i = 0; i <= 2; ++i) {
|
||||||
if (!tcgetattr(i, &termios)) {
|
if (!tcgetattr(i, &termios)) {
|
||||||
PRINT(" - stdin");
|
struct winsize ws;
|
||||||
|
if (i == 0) {
|
||||||
|
PRINT(" - stdin");
|
||||||
|
} else if (i == 1) {
|
||||||
|
PRINT(" - stdout");
|
||||||
|
} else {
|
||||||
|
PRINT(" - stderr");
|
||||||
|
}
|
||||||
kprintf(prologue);
|
kprintf(prologue);
|
||||||
|
if (!tcgetwinsize(i, &ws)) {
|
||||||
|
kprintf(" ws_row = %d\n", ws.ws_row);
|
||||||
|
kprintf(" ws_col = %d\n", ws.ws_col);
|
||||||
|
}
|
||||||
kprintf(" c_iflag =");
|
kprintf(" c_iflag =");
|
||||||
if (termios.c_iflag & IGNBRK) kprintf(" IGNBRK");
|
if (termios.c_iflag & IGNBRK) kprintf(" IGNBRK");
|
||||||
if (termios.c_iflag & BRKINT) kprintf(" BRKINT");
|
if (termios.c_iflag & BRKINT) kprintf(" BRKINT");
|
||||||
|
|
|
@ -11,7 +11,8 @@ COSMOPOLITAN_C_START_
|
||||||
* must know all networks accessible).
|
* must know all networks accessible).
|
||||||
*/
|
*/
|
||||||
struct ifconf {
|
struct ifconf {
|
||||||
uint64_t ifc_len; /* size of buffer */
|
int32_t ifc_len; /* size of buffer */
|
||||||
|
int32_t padding;
|
||||||
union {
|
union {
|
||||||
char *ifcu_buf;
|
char *ifcu_buf;
|
||||||
struct ifreq *ifcu_req;
|
struct ifreq *ifcu_req;
|
||||||
|
|
|
@ -64,9 +64,9 @@ scall sys_sched_yield 0x15e12a14bf25d018 globl hidden # select() on XNU (previo
|
||||||
scall __sys_mremap 0x19bffffffffff019 globl hidden
|
scall __sys_mremap 0x19bffffffffff019 globl hidden
|
||||||
scall sys_mincore 0x04e04e04e204e01b globl hidden
|
scall sys_mincore 0x04e04e04e204e01b globl hidden
|
||||||
scall sys_madvise 0x04b04b04b204b01c globl hidden
|
scall sys_madvise 0x04b04b04b204b01c globl hidden
|
||||||
scall sys_shmget 0x0e71210e7210901d globl # no wrapper; consider mmap
|
scall sys_shmget 0x0e71210e7210901d globl # no wrapper
|
||||||
scall sys_shmat 0x0e40e40e4210601e globl # no wrapper; consider mmap
|
scall sys_shmat 0x0e40e40e4210601e globl # no wrapper
|
||||||
scall sys_shmctl 0x1bb128200210701f globl # no wrapper; consider mmap
|
scall sys_shmctl 0x1bb128200210701f globl # no wrapper
|
||||||
scall sys_dup 0x0290290292029020 globl hidden
|
scall sys_dup 0x0290290292029020 globl hidden
|
||||||
scall sys_dup2 0x05a05a05a205a021 globl hidden
|
scall sys_dup2 0x05a05a05a205a021 globl hidden
|
||||||
scall sys_pause 0xfffffffffffff022 globl hidden
|
scall sys_pause 0xfffffffffffff022 globl hidden
|
||||||
|
@ -107,14 +107,14 @@ scall sys_futex_cp 0x8a68539c6ffff8ca globl hidden # intended for futex wait op
|
||||||
scall sys_set_robust_list 0x0a7ffffffffff111 globl # no wrapper
|
scall sys_set_robust_list 0x0a7ffffffffff111 globl # no wrapper
|
||||||
scall sys_get_robust_list 0x0a8ffffffffff112 globl # no wrapper
|
scall sys_get_robust_list 0x0a8ffffffffff112 globl # no wrapper
|
||||||
scall sys_uname 0x0a4fff0a4ffff03f globl hidden
|
scall sys_uname 0x0a4fff0a4ffff03f globl hidden
|
||||||
scall sys_semget 0x0dd0dd0dd20ff040 globl # no wrapper; won't polyfill for windows
|
scall sys_semget 0x0dd0dd0dd20ff040 globl # no wrapper
|
||||||
scall sys_semop 0x0de1220de2100041 globl # no wrapper; won't polyfill for windows
|
scall sys_semop 0x0de1220de2100041 globl # no wrapper
|
||||||
scall sys_semctl 0xfff1271fe20fe042 globl # no wrapper; won't polyfill for windows
|
scall sys_semctl 0xfff1271fe20fe042 globl # no wrapper
|
||||||
scall sys_shmdt 0x0e60e60e62108043 globl # no wrapper; won't polyfill for windows
|
scall sys_shmdt 0x0e60e60e62108043 globl # no wrapper
|
||||||
scall sys_msgget 0x0e10e10e12103044 globl # no wrapper; won't polyfill for windows
|
scall sys_msgget 0x0e10e10e12103044 globl # no wrapper
|
||||||
scall sys_msgsnd 0x8e28e28e22904845 globl # no wrapper; won't polyfill for windows
|
scall sys_msgsnd 0x8e28e28e22904845 globl # no wrapper
|
||||||
scall sys_msgrcv 0x8e38e38e32905846 globl # no wrapper; won't polyfill for windows
|
scall sys_msgrcv 0x8e38e38e32905846 globl # no wrapper
|
||||||
scall sys_msgctl 0x1bc1291ff2102047 globl # no wrapper; won't polyfill for windows
|
scall sys_msgctl 0x1bc1291ff2102047 globl # no wrapper
|
||||||
scall __sys_fcntl 0x05c05c05c205c048 globl hidden
|
scall __sys_fcntl 0x05c05c05c205c048 globl hidden
|
||||||
scall __sys_fcntl_cp 0x85c85c85c285c848 globl hidden # intended for F_SETLKW and F_OFD_SETLKW
|
scall __sys_fcntl_cp 0x85c85c85c285c848 globl hidden # intended for F_SETLKW and F_OFD_SETLKW
|
||||||
scall sys_flock 0x8838838832883849 globl hidden
|
scall sys_flock 0x8838838832883849 globl hidden
|
||||||
|
@ -282,7 +282,7 @@ scall sys_request_key 0xfffffffffffff0f9 globl # no wrapper
|
||||||
scall sys_keyctl 0xfffffffffffff0fa globl # no wrapper
|
scall sys_keyctl 0xfffffffffffff0fa globl # no wrapper
|
||||||
scall ioprio_set 0xfffffffffffff0fb globl
|
scall ioprio_set 0xfffffffffffff0fb globl
|
||||||
scall ioprio_get 0xfffffffffffff0fc globl
|
scall ioprio_get 0xfffffffffffff0fc globl
|
||||||
scall sys_inotify_init 0xfffffffffffff0fd globl # wicked # no wrapper
|
scall sys_inotify_init 0xfffffffffffff0fd globl # no wrapper
|
||||||
scall sys_inotify_add_watch 0xfffffffffffff0fe globl # no wrapper
|
scall sys_inotify_add_watch 0xfffffffffffff0fe globl # no wrapper
|
||||||
scall sys_inotify_rm_watch 0xfffffffffffff0ff globl # no wrapper
|
scall sys_inotify_rm_watch 0xfffffffffffff0ff globl # no wrapper
|
||||||
scall __sys_openat 0x9d49419f329cf901 globl hidden # Linux 2.6.16+ (c. 2007)
|
scall __sys_openat 0x9d49419f329cf901 globl hidden # Linux 2.6.16+ (c. 2007)
|
||||||
|
@ -323,13 +323,13 @@ scall sys_epoll_create1 0xfffffffffffff123 globl hidden
|
||||||
scall sys_perf_event_open 0xfffffffffffff12a globl # no wrapper
|
scall sys_perf_event_open 0xfffffffffffff12a globl # no wrapper
|
||||||
scall sys_inotify_init1 0xfffffffffffff126 globl # no wrapper
|
scall sys_inotify_init1 0xfffffffffffff126 globl # no wrapper
|
||||||
scall sys_rt_tgsigqueueinfo 0xfffffffffffff129 globl # no wrapper
|
scall sys_rt_tgsigqueueinfo 0xfffffffffffff129 globl # no wrapper
|
||||||
scall sys_signalfd 0xfffffffffffff11a globl # won't polyfill; see INTON/INTOFF tutorial in examples/unbourne.c
|
scall sys_signalfd 0xfffffffffffff11a globl # no wrapper
|
||||||
scall sys_signalfd4 0xfffffffffffff121 globl # won't polyfill; see INTON/INTOFF tutorial in examples/unbourne.c
|
scall sys_signalfd4 0xfffffffffffff121 globl # no wrapper
|
||||||
scall sys_eventfd 0xfffffffffffff11c globl # won't polyfill; see INTON/INTOFF tutorial in examples/unbourne.c
|
scall sys_eventfd 0xfffffffffffff11c globl # no wrapper
|
||||||
scall sys_eventfd2 0xfffffffffffff122 globl # won't polyfill; see INTON/INTOFF tutorial in examples/unbourne.c
|
scall sys_eventfd2 0xfffffffffffff122 globl # no wrapper
|
||||||
scall sys_timerfd_create 0xfffffffffffff11b globl # won't polyfill; see INTON/INTOFF tutorial in examples/unbourne.c
|
scall sys_timerfd_create 0xfffffffffffff11b globl # no wrapper
|
||||||
scall sys_timerfd_settime 0xfffffffffffff11e globl # won't polyfill; see INTON/INTOFF tutorial in examples/unbourne.c
|
scall sys_timerfd_settime 0xfffffffffffff11e globl # no wrapper
|
||||||
scall sys_timerfd_gettime 0xfffffffffffff11f globl # won't polyfill; see INTON/INTOFF tutorial in examples/unbourne.c
|
scall sys_timerfd_gettime 0xfffffffffffff11f globl # no wrapper
|
||||||
#──────────────────────RHEL 6.0 LIMIT──────────────────────── # ←┬─ modern glibc needs rhel6+ c. 2011
|
#──────────────────────RHEL 6.0 LIMIT──────────────────────── # ←┬─ modern glibc needs rhel6+ c. 2011
|
||||||
scall sys_recvmmsg 0x1dbffffffffff12b globl # ├─ end of life 2024-06-30 (extended)
|
scall sys_recvmmsg 0x1dbffffffffff12b globl # ├─ end of life 2024-06-30 (extended)
|
||||||
scall sys_fanotify_init 0xfffffffffffff12c globl # ├─ last distro with the original gnome desktop
|
scall sys_fanotify_init 0xfffffffffffff12c globl # ├─ last distro with the original gnome desktop
|
||||||
|
|
|
@ -23,7 +23,9 @@
|
||||||
#include "libc/log/log.h"
|
#include "libc/log/log.h"
|
||||||
#include "libc/nexgen32e/x86feature.h"
|
#include "libc/nexgen32e/x86feature.h"
|
||||||
#include "libc/runtime/runtime.h"
|
#include "libc/runtime/runtime.h"
|
||||||
|
#include "libc/sysv/consts/f.h"
|
||||||
#include "libc/sysv/consts/mlock.h"
|
#include "libc/sysv/consts/mlock.h"
|
||||||
|
#include "libc/sysv/consts/o.h"
|
||||||
#include "libc/testlib/testlib.h"
|
#include "libc/testlib/testlib.h"
|
||||||
|
|
||||||
double g_avx2_juiceup_doubles_[4] forcealign(32);
|
double g_avx2_juiceup_doubles_[4] forcealign(32);
|
||||||
|
@ -47,6 +49,15 @@ void testlib_benchwarmup(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EnableCruiseControlForCool(void) {
|
||||||
|
int fd, micros = 10;
|
||||||
|
if ((fd = open("/dev/cpu_dma_latency", O_WRONLY)) != -1) {
|
||||||
|
write(fd, µs, sizeof(micros));
|
||||||
|
fcntl(fd, F_DUPFD_CLOEXEC, 123);
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs all benchmark functions in sorted order.
|
* Runs all benchmark functions in sorted order.
|
||||||
*
|
*
|
||||||
|
@ -55,5 +66,6 @@ void testlib_benchwarmup(void) {
|
||||||
void testlib_runallbenchmarks(void) {
|
void testlib_runallbenchmarks(void) {
|
||||||
int e;
|
int e;
|
||||||
__log_level = kLogWarn;
|
__log_level = kLogWarn;
|
||||||
|
EnableCruiseControlForCool();
|
||||||
testlib_runtestcases(__bench_start, __bench_end, testlib_benchwarmup);
|
testlib_runtestcases(__bench_start, __bench_end, testlib_benchwarmup);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
||||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
|
#include "libc/calls/calls.h"
|
||||||
#include "libc/dce.h"
|
#include "libc/dce.h"
|
||||||
#include "libc/str/blake2.h"
|
#include "libc/str/blake2.h"
|
||||||
#include "libc/str/path.h"
|
#include "libc/str/path.h"
|
||||||
|
@ -38,7 +39,9 @@ const char *sem_path_np(const char *name, char *buf, size_t size) {
|
||||||
const char *path, *a;
|
const char *path, *a;
|
||||||
uint8_t digest[BLAKE2B256_DIGEST_LENGTH];
|
uint8_t digest[BLAKE2B256_DIGEST_LENGTH];
|
||||||
a = "/tmp/", n = 5;
|
a = "/tmp/", n = 5;
|
||||||
if (IsLinux()) a = "/dev/shm/", n = 9;
|
if (IsLinux() && isdirectory("/dev/shm")) {
|
||||||
|
a = "/dev/shm/", n = 9;
|
||||||
|
}
|
||||||
if (n + BLAKE2B256_DIGEST_LENGTH * 2 + 4 < size) {
|
if (n + BLAKE2B256_DIGEST_LENGTH * 2 + 4 < size) {
|
||||||
BLAKE2B256(name, strlen(name), digest);
|
BLAKE2B256(name, strlen(name), digest);
|
||||||
p = mempcpy(buf, a, n);
|
p = mempcpy(buf, a, n);
|
||||||
|
|
3
third_party/sqlite3/fts5.c
vendored
3
third_party/sqlite3/fts5.c
vendored
|
@ -1,4 +1,4 @@
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS5)
|
#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS5)
|
||||||
|
|
||||||
|
@ -5141,7 +5141,6 @@ static void *sqlite3Fts5ParserAlloc(void *(*mallocProc)(u64));
|
||||||
static void sqlite3Fts5ParserFree(void*, void (*freeProc)(void*));
|
static void sqlite3Fts5ParserFree(void*, void (*freeProc)(void*));
|
||||||
static void sqlite3Fts5Parser(void*, int, Fts5Token, Fts5Parse*);
|
static void sqlite3Fts5Parser(void*, int, Fts5Token, Fts5Parse*);
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
#include <stdio.h>
|
|
||||||
static void sqlite3Fts5ParserTrace(FILE*, char*);
|
static void sqlite3Fts5ParserTrace(FILE*, char*);
|
||||||
#endif
|
#endif
|
||||||
static int sqlite3Fts5ParserFallback(int);
|
static int sqlite3Fts5ParserFallback(int);
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
"noasan"
|
"noasan"
|
||||||
"nomsan"
|
"nomsan"
|
||||||
"noubsan"
|
"noubsan"
|
||||||
"smashmystack"
|
"nostackprotector"
|
||||||
"initarray"
|
"initarray"
|
||||||
"mayalias"
|
"mayalias"
|
||||||
"noinstrument"
|
"noinstrument"
|
||||||
|
|
|
@ -181,7 +181,9 @@
|
||||||
"i32"
|
"i32"
|
||||||
"u32"
|
"u32"
|
||||||
"i64"
|
"i64"
|
||||||
"u64"))
|
"u64"
|
||||||
|
"off_t"
|
||||||
|
"rlim_t"))
|
||||||
|
|
||||||
(x86intrin
|
(x86intrin
|
||||||
'("__v8hu"
|
'("__v8hu"
|
||||||
|
|
Loading…
Reference in a new issue