Commit Graph

578 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen d6067f9da7 Add btowc(3) and wctob(3). 2014-11-25 17:48:54 +01:00
Jonas 'Sortie' Termansen f41964fcab Reimplement wchar conversion API. 2014-11-24 17:41:26 +01:00
Jonas 'Sortie' Termansen 9e6148f6ff Refactor default compiler options logic. 2014-11-24 17:10:50 +01:00
Jonas 'Sortie' Termansen 6b4dbe0358 Rename crt1.o to crt0.o and install compatibility crt1.o.
This prepares for an incompatible compiler toolchain change scheduled for
Sortix 0.10 development where crt0.o is used instead of crt1.o.
2014-11-21 00:03:29 +01:00
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