Jonas 'Sortie' Termansen
550ba54a8f
Honor feature macros in <wchar.h>.
2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen
95491e44ac
Honor feature macros in <unistd.h>.
2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen
38b15f2e9f
Honor feature macros in <string.h>.
2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen
571daf8aaf
Honor feature macros in <stdio.h>.
2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen
de5ac01a0b
Honor feature macros in <stdint.h>.
2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen
ead7cc00be
Honor feature macros in <inttypes.h>.
2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen
fbbb33287b
Implement standard library feature macros.
2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen
7f7fd66039
Add isascii(3).
2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen
bcf0720a59
Add versionsort_r(3).
2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen
12652fe557
Add alphasort_r(3).
2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen
71ae173b37
Add dscandir_r(3).
2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen
5dbd89d2aa
Delay heap initialization until first heap expansion.
2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen
e2526347bd
Fix assertion failure panic message ending with a newline.
2014-11-20 17:24:43 +01:00
Jonas 'Sortie' Termansen
07fd50d5c6
Add wcwidth(3) and wcswidth(3).
2014-11-18 18:10:23 +01:00
Jonas 'Sortie' Termansen
a24ecf4b83
Add getsockopt(2) and setsockopt(2).
2014-11-18 18:10:22 +01:00
Jonas 'Sortie' Termansen
708bcb4735
Add recvmsg(2) and sendmsg(2).
2014-11-18 16:27:19 +01:00
Jonas 'Sortie' Termansen
c428ec4d83
Add fmemopen(3).
2014-11-17 18:47:44 +01:00
Jonas 'Sortie' Termansen
d7c54161b2
Revise stdio implementation.
2014-10-19 17:13:49 +02:00
Jonas 'Sortie' Termansen
f3eb87c3ee
Improve qsort_r(3) run-time complexity using quicksort.
2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen
a9cf3cc684
Add qsort_r(3).
2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen
d6365e2da2
Add sysconf(_SC_GETPW_R_SIZE_MAX).
2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen
b4de9e4399
Add sysconf(_SC_GETGR_R_SIZE_MAX).
2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen
234f186a7d
Ensure system call indices are valid expressions in libc syscall stubs.
2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen
01f6606b74
Fix FILE being a macro.
2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen
0b085cbcf1
Fix strerror_r(3) range error case.
2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen
0b1af77ca0
Fix return value of wcscat(3).
2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen
9291dae58f
Fix wcschr(3) family like strchr(3) was fixed.
2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen
86cd065aa7
Fix wmemmove(3) off-by-one bounds error.
2014-09-25 17:47:05 +02:00
Jonas 'Sortie' Termansen
94a7433cf0
Fix atoi(3) out-of-range cases.
2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen
87fee95949
Fix setenv(3) error case.
2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen
513c5f242d
Fix strtol(3) quality.
2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen
228bf52b49
Fix fdopen setting FD_CLOEXEC wrongly.
2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen
783c1092ff
Fix readdir() setting errno on success.
2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen
ecccf4e1f7
Fix getdelim(2) leaking a freed pointer.
2014-09-25 17:27:53 +02:00
Jonas 'Sortie' Termansen
76577e69f1
Add execlpe(3).
2014-08-24 14:02:42 +02:00
Jonas 'Sortie' Termansen
771dc573ee
Add attribute format to standard library headers.
2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen
a298cdde18
Update libc/string/memmove.cpp to current coding conventions.
2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen
998208d4d3
Update libc/string/memcmp.cpp to current coding conventions.
2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen
ebadcf2c02
Update libc/string/memset.cpp to current coding conventions.
2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen
fcf412e54c
Fix mktime(3) and timegm(3) not sanitizing the broken down time.
...
Found by musl's libc-test.
2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen
b75678bcab
Fix mkstemp(3) creating files with an insecure mode.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen
74fbbb3c78
Fix mkstemp(3) not rejecting bad templates.
...
Found by musl's libc-test.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen
40fd0fa3dc
Fix the environment functions not rejecting the empty name.
...
Found by musl's libc-test.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen
0adfceef87
Fix strtol("0xz", &s, 16) handling.
...
Found by musl's libc-test.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen
88dd70991c
Fix strchrnul(3) and strrchr(3) missing an unsigned char cast.
...
Found by musl's libc-test.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen
d880a9a797
Fix memchr(3) missing an unsigned char cast.
2014-08-23 21:46:20 +02:00
Jonas 'Sortie' Termansen
1a99dc5048
Fix <timespec.h> including <stdbool.h> in C++.
2014-08-23 21:30:16 +02:00
Jonas 'Sortie' Termansen
a8b8514272
Fix clearenv(3) leaving internal pointer alive after free.
...
This causes use-after-free and double-free bugs when other environment
functions are subsequently called.
2014-08-23 21:04:39 +02:00
Jonas 'Sortie' Termansen
5f9da2a651
Fix format string problems in error(3) calls.
2014-08-23 21:04:39 +02:00
Jonas 'Sortie' Termansen
b0cbf9d0ea
Fix strlcpy(3) and strlcat(3) being horribly broken.
...
Found by musl's libc-test.
This is just embarrassing.
2014-08-23 21:04:03 +02:00
Jonas 'Sortie' Termansen
395f7b29b4
Fix dregister not being thread safe.
2014-08-04 19:10:14 +02:00
Jonas 'Sortie' Termansen
fdc41cac76
Fix wrong return type of init_stdio().
2014-08-04 19:04:16 +02:00
Jonas 'Sortie' Termansen
30cd318c17
Implement signals.
...
Note: This is an incompatible ABI change.
2014-07-22 13:25:39 +02:00
Jonas 'Sortie' Termansen
f1f272390b
Add ESIGPENDING.
2014-07-20 15:09:16 +02:00
Jonas 'Sortie' Termansen
28d3b1245f
Fix terminology in exec family.
2014-07-20 15:09:16 +02:00
Jonas 'Sortie' Termansen
ff443c9f5e
Thread-secure dregister(3) and dunregister(3).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
a1ccba00f7
Thread-secure rand(3).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
3361620d83
Thread-secure setlocale(3).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
c4e6888fd9
Thread-secure psignal(3).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
48edf99373
Thread-secure error(3).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
1ddd404ff9
Thread-secure stdio.
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
e1db06c1c9
Thread-secure exit(3).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
a96aca09c1
Thread-secure user-space heap.
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
0618b8a68f
Thread secure errno(3).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
f69b6c845c
Add pthread_sigmask(3).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
c8a3a858b0
Add libpthread.
2014-07-08 17:41:50 +02:00
Jonas 'Sortie' Termansen
b607900a00
Fix <dirent.h> not being C89 friendly.
2014-07-07 17:52:33 +02:00
Jonas 'Sortie' Termansen
1830ab64ee
Fix memccpy(3) being terribly broken.
2014-06-27 16:17:47 +02:00
Jonas 'Sortie' Termansen
874baffd57
Fix wrongly named system call constants.
2014-06-27 15:49:55 +02:00
Jonas 'Sortie' Termansen
9f0e9f2fd4
Fix overlapping socket level constants.
2014-06-17 23:53:26 +02:00
Jonas 'Sortie' Termansen
4ea6aa710c
Add exit_thread(2).
2014-06-12 00:05:40 +02:00
Jonas 'Sortie' Termansen
202cf40881
Fix libc/msr/wrmsr.cpp not containing its own file path.
2014-06-12 00:05:40 +02:00
Jonas 'Sortie' Termansen
8b3e94af38
Fix x86 longjmp(3) not restoring ebx.
2014-06-02 18:56:04 +02:00
Jonas 'Sortie' Termansen
f332cf96d4
Add sched_yield(2).
2014-05-29 17:16:49 +02:00
Jonas 'Sortie' Termansen
af23f7ad5e
Add rdmsr(2) and wrmsr(2).
2014-05-29 17:14:30 +02:00
Jonas 'Sortie' Termansen
1f72c1637c
Maintain fsbase and gsbase as per-thread registers.
...
Note: This is an incompatible ABI change.
2014-05-29 17:07:42 +02:00
Jonas 'Sortie' Termansen
b30878e816
Fix libc files not including <stdalign.h> if using alignas(3).
2014-05-28 22:18:54 +02:00
Jonas 'Sortie' Termansen
bfcd7768d2
Fix libc files not including <assert.h> if using static_assert(3).
2014-05-28 22:18:54 +02:00
Jonas 'Sortie' Termansen
534eb3ddd8
Fix libk being built with -mmmx, -msse and -msse2 on x86_64.
2014-05-28 17:42:19 +02:00
Jonas 'Sortie' Termansen
7db2ea81ab
Fix warning about converting a signed value to an unsigned value.
2014-05-16 15:12:59 +02:00
Jonas 'Sortie' Termansen
73cea916d9
Fix suboptimal heap chunk spliting.
2014-05-16 14:48:27 +02:00
Jonas 'Sortie' Termansen
0f80611403
Fix C++ comments in <sys/types.h>.
2014-05-16 14:31:24 +02:00
Jonas 'Sortie' Termansen
4cc3bd4e92
Fix C++ comments in <fsmarshall-msg.h>.
2014-05-16 14:31:24 +02:00
Jonas 'Sortie' Termansen
bcbc974a05
Fix usage of inline keyword in <timespec.h>.
2014-05-16 14:31:24 +02:00
Jonas 'Sortie' Termansen
f2857047b0
Fix non-portable asm keyword usage in in system header.
2014-05-16 14:21:13 +02:00
Jonas 'Sortie' Termansen
57cddb5cc2
Fix libc files not including their associated header.
2014-05-16 14:21:13 +02:00
Jonas 'Sortie' Termansen
76036892c2
Fix missing parentheses in grp and pwd implementation.
2014-05-16 14:06:36 +02:00
Jonas 'Sortie' Termansen
8591bcef7b
Fix getopt_long(3) not handling invalid options and long options properly.
2014-04-24 00:03:52 +02:00
Jonas 'Sortie' Termansen
01b8acbc90
Fix calloc not erroring on multiplication overflow.
2014-04-24 00:03:51 +02:00
Jonas 'Sortie' Termansen
159d8881ec
Fix files relying on <unistd.h> including <ioleast.h>.
2014-04-06 00:19:05 +02:00
Jonas 'Sortie' Termansen
580418341c
Fix getpagesize(2) visibility in <unistd.h>.
2014-04-05 17:04:48 +02:00
Jonas 'Sortie' Termansen
05b0713bfa
Fix mktemp(3) prototype visibility in <stdlib.h>.
2014-04-05 17:02:49 +02:00
Jonas 'Sortie' Termansen
3c160977bf
Fix wrong allocation failure check in dscandir_r(3).
2014-03-31 19:08:57 +02:00
Jonas 'Sortie' Termansen
8d41d3ceb0
Fix <string.h> including <strings.h>.
2014-03-31 19:08:57 +02:00
Jonas 'Sortie' Termansen
2161a0e0e3
Fix canonicalize_file_name_at(3) not handling file paths correctly.
2014-03-31 19:08:57 +02:00
Jonas 'Sortie' Termansen
e8cfd5bf85
Handle NULL strings in vprintf_callback(3).
2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
564f99b3ae
Move O_ACCMODE into kernel headers.
2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
f6f5035706
Add tzset(3).
2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
8c00a4145c
Refactor kernel PAT, MTRR, and MSR usage.
2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen
d50e8f1bce
Document gethostid(3) and sethostid(3) as obsolete.
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
4ee83c9466
Refuse to implement broken POSIX advisory file locks.
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
a935148f60
Add statvfs(2), fstatvfs(2) and fstatvfsat(2).
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
2fe13d33c9
Add asprintf(3) and vasprintf(3).
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
2fe3595feb
Add getumask(2).
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
9771f29138
Add syslog(3).
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
e677c455d8
Use getdomainname(2) in uname(3).
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
c6978d7d6e
Add getdomainname(2).
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
02c18f868f
Fix vscanf_callback(3) not ungetcing the last character when stopping.
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
1986bc2ba2
Add vscanf_callback(3).
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
e91cde379a
Rewrite getenv(3), setenv(3), unsetenv(3) and clearenv(3).
2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
af9ea5df04
Add %m support to vprintf_callback(3).
2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
687096ec8a
Add uname(3).
2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
f34279cc60
Add ttyname_r(3).
2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
a0a8ed61d8
Add pipe2(2).
2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
eaf1618537
Add tcgetwincurpos(2).
2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen
d5241349cc
Move OFF_MIN and OFF_MAX to <sys/types.h>.
2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen
823d3a3e2f
Add fsblkcnt_t and fsfilcnt_t.
2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen
0117c4fbc7
Improve ix86 and x86_64 data types ABI.
...
Increase gid_t to an unsigned 64-bit integer.
Increase id_t to an unsigned 64-bit integer.
Increase pid_t to a signed 64-bit integer.
Increase time_t to a signed 64-bit integer.
Increase uid_t to an unsigned 64-bit integer.
Note: This is an incompatible ABI change.
2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen
1b3f4b36d8
Fix strtol(3) handling negative numbers incorrectly.
2014-03-17 17:00:00 +01:00
Jonas 'Sortie' Termansen
00a3579940
Fix basename(3) and dirname(3) returning incorrect strings.
2014-03-17 16:59:59 +01:00
Jonas 'Sortie' Termansen
2e855f4095
Fix buffer overflow in execvpe(3).
2014-03-17 16:59:59 +01:00
Jonas 'Sortie' Termansen
fc713baba3
Rename libc-sortix to libk.
2014-03-01 14:37:42 +01:00
Jonas 'Sortie' Termansen
512c9d3f08
Improve wchar declarations in <wchar.h>, <wctype.h> and <stdint.h>.
2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
28f49e53bf
Add C11 static_assert to <assert.h>.
2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
f13074afd1
Improve basename(3) and dirname(3).
2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
d39437966d
Split libc/wctype/wctype.cpp into multiple files.
2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
ba8557075c
Split libc/ctype/ctype.cpp into multiple files.
2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
df666103b3
Update libc/stdlib/rand.cpp to current coding conventions.
2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
9cd3cdf79c
Update libc/locale/setlocale.cpp to current coding conventions.
2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen
71f9f882d1
Fix readdir(3) not preserving errno in case of end-of-directory condition.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
da933464e5
Add d_namlen, d_dev, and d_type to struct dirent.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
5dd70aa4ff
Split libc/dirent/fddir-sortix.cpp into multiple files.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
ddce6045e0
Split libc/dirent/dir.cpp into multiple files.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
d7467e98be
Move the declaration of the DIR structure into its own header.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
6788f0096e
Preprocess assembly files with the C preprocessor.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
8a49c47742
Include <stdarg.h> in <wchar.h>.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
b08455c4d3
Remove mxmpp.
2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
98a87fa1e5
Rename Sortix kernel directory to kernel.
2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen
18d2695439
Add libdl and librt to libc.
2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen
4c1d36fd11
Fix setuid(2) calling sys_getuid rather than sys_setuid.
2014-02-23 14:47:22 +01:00
Jonas 'Sortie' Termansen
478db91c3e
Fix setgid(2) calling sys_getgid rather than sys_setgid.
2014-02-23 14:47:22 +01:00
Jonas 'Sortie' Termansen
aa9f642df2
Fix seteuid(2) calling sys_geteuid rather than sys_seteuid.
2014-02-23 14:47:22 +01:00
Jonas 'Sortie' Termansen
3163f4600d
Fix setegid(2) calling sys_getegid rather than sys_setegid.
2014-02-23 14:47:21 +01:00
Jonas 'Sortie' Termansen
142b2c66c4
Fix symlinkat(2) calling sys_linkat rather than sys_symlinkat.
2014-02-23 14:47:21 +01:00
Jonas 'Sortie' Termansen
4227d97f55
Fix send(2) calling sys_recv rather than sys_send.
2014-02-23 14:47:21 +01:00
Jonas 'Sortie' Termansen
31c310036c
Fix lseek changing errno in fdio_install_fd when no real error occurs.
2014-02-16 12:38:04 +01:00
Jonas 'Sortie' Termansen
fd5b40de26
Fix wrong return types in towlower(3) and towupper(3) implementations.
2014-02-13 15:49:48 +01:00
Jonas 'Sortie' Termansen
061eddff91
Silence uninitialized variable warning in wcrtomb(3).
2014-02-06 00:15:03 +01:00
Jonas 'Sortie' Termansen
140dfe22fc
Fix memory leak in getlogin_r(3).
2014-02-06 00:15:03 +01:00
Jonas 'Sortie' Termansen
5c58b65546
Fix range check in sigismember(3).
2014-02-02 23:14:02 +01:00