Remove some problematic APIs

In order to improve our chances of success building other open source
projects we shouldn't define APIs that'll lead any ./configure script
astray. For example:

- brk() and sbrk() can break mac/windows support
- syscall() is a superb way to break portability
- arch_prctl() is the greatest of all horror shows
This commit is contained in:
Justine Tunney 2023-06-08 06:12:26 -07:00
parent 7512318a2a
commit 32682f0ce7
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
24 changed files with 37 additions and 919 deletions

View file

@ -50,12 +50,12 @@ static struct timespec vflogf_ts;
static void vflogf_onfail(FILE *f) {
errno_t err;
int64_t size;
struct stat st;
if (IsTiny()) return;
err = ferror_unlocked(f);
if (fileno_unlocked(f) != -1 &&
(err == ENOSPC || err == EDQUOT || err == EFBIG) &&
((size = getfiledescriptorsize(fileno_unlocked(f))) == -1 ||
size > kNontrivialSize)) {
(fstat(fileno_unlocked(f), &st) == -1 || st.st_size > kNontrivialSize)) {
ftruncate(fileno_unlocked(f), 0);
fseeko_unlocked(f, SEEK_SET, 0);
f->beg = f->end = 0;