Commit Graph

241 Commits

Author SHA1 Message Date
K. Lange
e234aa7593 libc: Fix float formatters showing '0.10', etc. 2023-03-27 17:13:39 +09:00
K. Lange
a24baa2b58 libc: more useful stub pow() for aarch64 so Quake plays 2022-10-26 17:39:35 +09:00
K. Lange
bb1c30d1ef libc: stub tgamma for kuroko 2022-09-04 19:23:12 +09:00
K. Lange
bbd609086a libc: make pthread_t scalar
While POSIX.1-2001 says that pthread_t is allowed to be
"non-arithmetic", earlier revisions did not allow it, and
many things still assume the original rule and either
complain loudly or fail completely if pthread_t is a struct.

In glibc, pthread_t is typedef'd to 'unsigned long int', but
in musl, it is a pointer type to an opaque struct. We'll go
with the latter option here.

Note that while this breaks ABI combatibility for the libc,
nothing in the x86-64 or aarch64 package repositories uses
pthreads, so this probably doesn't matter too much. If you
are one of the handful of souls brave enough to be maintaining
your own downstream software for ToaruOS and you use pthreads,
it's time to rebuild.

This is an initial change that will be followed up with more
thorough internal changes to our pthreads implementation.
2022-08-27 15:53:37 +09:00
K. Lange
5651875d4b libc: qsort_r 2022-08-26 05:32:00 +09:00
K. Lange
908dbb0553 libc: strsignal 2022-08-18 19:20:56 +09:00
K. Lange
745bc29a26 kernel: rudimentary sigwait 2022-08-18 16:56:43 +09:00
K. Lange
37bd4e08cb kernel: add sigsuspend 2022-08-18 15:09:23 +09:00
K. Lange
083ab387f3 kernel: more signal functions 2022-08-06 18:19:27 +09:00
K. Lange
2906476825 kernel: Add sigaction 2022-08-06 18:03:39 +09:00
K. Lange
9e44d08ed7 ld.so: Possibly incorrect dynamic TLS implementation 2022-05-26 08:58:49 +09:00
K. Lange
06f0c6f9cc libc: fix conversions of negative timestamps (eg., 0 in western timezones) 2022-04-17 18:36:38 -04:00
K. Lange
e20689f1d8 aarch64: atan2() by polynomial approximation 2022-04-13 16:19:56 -07:00
K. Lange
0f8184bc9e libc: make srand repeatable and better for seeding with time 2022-03-27 16:48:02 +09:00
K. Lange
58a1b6e999 pthread: Remove magic thread exit; pthread_exit() is just syscall_exit 2022-03-12 18:46:28 +09:00
K. Lange
b67800fa1f libc: ioctl sets errno 2022-03-07 18:06:37 +09:00
K. Lange
992d805f25 libc: use munmap sysfunc in free() for 'big bins' 2022-03-06 15:58:59 +09:00
K. Lange
3852646174 kernel: Restart some signals, fix up suspend to work with new signal management 2022-03-04 18:39:38 +09:00
K. Lange
b3f6728339 date: add rudimentary support for setting date/time 2022-02-25 21:16:30 +09:00
K. Lange
89ba900988 libc: fix terribly broken mktime 2022-02-25 21:07:53 +09:00
K. Lange
e90278b04b libc: aarch64: tan() can be expressed as sin()/cos() 2022-02-14 09:37:51 +09:00
K. Lange
07e97e2784 aarch64: A better memcpy for arm 2022-02-03 08:15:02 +09:00
K. Lange
18a4e78336 aarch64: More cleanup 2022-02-02 12:08:44 +09:00
K. Lange
2c1f2b942d x86_64: Put TLS data after the self-pointer, like we started doing in aarch64 2022-02-01 07:55:11 +09:00
K. Lange
f0409ff120 aarch64: couple of less bad math functions in libc 2022-01-31 21:06:17 +09:00
K. Lange
b53a56fe72 aarch64: begin work on new target 2022-01-30 21:25:27 +09:00
K. Lange
2f59fa9336 libc: More bad (and a couple good) math functions 2021-12-07 16:24:07 +09:00
K. Lange
c7429e9055 meta: purge most instances of vim hints 2021-11-26 12:59:02 +09:00
K. Lange
f3759daadf ioctl: request should be 'unsigned long' 2021-11-15 21:51:33 +09:00
K. Lange
f110f0b215 libc: Update wcwidth with latest data 2021-10-27 19:23:05 +09:00
K. Lange
44eefc2e43 libm: Add two missing functions 2021-10-07 07:20:50 +09:00
K. Lange
51f0ef4e03 libc: Fix bad logic when looking for IP address 2021-09-28 18:36:53 +09:00
K. Lange
59e0c80b3c ld.so: Expose some internal data for use by debugger 2021-09-24 00:13:04 +09:00
K. Lange
6899683bb4 strace: Initial support for a ptrace() mechanism, strace tool 2021-09-22 15:33:02 +09:00
K. Lange
8bca4ee6c8 libc: cleanup, some missing things 2021-09-18 13:55:13 +09:00
K. Lange
8269614da7 net: Maybe allow udp binds? 2021-09-09 20:03:58 +09:00
K. Lange
c0cb37f971 net: ongoing network work 2021-09-09 19:42:19 +09:00
K. Lange
fd10920585 net: e1000 receive fixes? 2021-09-08 19:11:28 +09:00
K. Lange
6510dd73bd time: Try to figure out some sensible timezone names from the TZ offset, and collect that from ip-api 2021-09-08 11:38:31 +09:00
K. Lange
01d29b92e6 libm: Hyperolibc trig functions 2021-09-04 13:41:27 +09:00
K. Lange
efec80cb38 times: rudimentary support for process times 2021-09-02 23:08:18 +09:00
K. Lange
98bcb40671 nproc: Expose processor count and use it to pick between yielding and non-yielding spin locks 2021-09-02 17:27:21 +09:00
K. Lange
0d71c98cc2 localtime: rudimentary, incorrect support for timezone offsets 2021-09-02 16:09:28 +09:00
K. Lange
64bfcce029 dhclient: fallback to /var/resolv.conf if /etc is read-only 2021-09-02 15:26:11 +09:00
K. Lange
8984cc8f71 groups: First pass at support for supplementary group lists 2021-08-31 20:46:48 +09:00
K. Lange
8775a28209 groups: Initial support for gids. 2021-08-31 19:47:04 +09:00
K. Lange
76befad991 libm: must implement sqrt() or it can loop in gcc 2021-08-30 19:33:43 +09:00
K. Lange
7925346edf libc: that xor-swap is silly and probably also slower 2021-08-28 19:55:43 +09:00
K. Lange
7975697786 libc: Implement an actual quicksort for qsort... 2021-08-28 19:50:54 +09:00
K. Lange
4d68b0bc4a text: bring back shm-stored fonts provided by compositor 2021-08-28 14:50:52 +09:00