Make improvements

- More timspec_*() and timeval_*() APIs have been introduced.
- The copyfd() function is now simplified thanks to POSIX rules.
- More Cosmo-specific APIs have been moved behind the COSMO define.
- The setitimer() polyfill for Windows NT is now much higher quality.
- Fixed build error for MODE=aarch64 due to -mstringop-strategy=loop.
- This change introduces `make MODE=nox87 toolchain` which makes it
  possible to build programs using your cosmocc toolchain that don't
  have legacy fpu instructions. This is useful, for example, if you
  want to have a ~22kb tinier blink virtual machine.
This commit is contained in:
Justine Tunney 2023-06-15 13:50:42 -07:00
parent 8dc11afcf6
commit c3440d040c
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
132 changed files with 539 additions and 587 deletions

View file

@ -202,11 +202,7 @@ static struct timespec *nsync_futex_timeout_ (struct timespec *memory,
return memory;
} else {
now = timespec_real ();
if (timespec_cmp (now, *abstime) > 0) {
*memory = (struct timespec){0};
} else {
*memory = timespec_sub (*abstime, now);
}
*memory = timespec_subz (*abstime, now);
return memory;
}
}