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

@ -29,7 +29,9 @@
*/
char *setlocale(int category, const char *locale) {
if (!locale || (*locale == '\0')) return "C";
if (!strcmp(locale, "C") || !strcmp(locale, "POSIX")) {
if (!strcmp(locale, "C") || //
!strcmp(locale, "POSIX") || //
!strcmp(locale, "C.UTF-8")) {
return locale;
} else {
return NULL;

View file

@ -32,9 +32,12 @@ struct lconv {
int wcwidth(wchar_t) pureconst;
int wcswidth(const wchar_t *, size_t) strlenesque;
int wcsnwidth(const wchar_t *, size_t, size_t) strlenesque;
struct lconv *localeconv(void);
#ifdef COSMO
int wcsnwidth(const wchar_t *, size_t, size_t) strlenesque;
#endif
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_UNICODE_H_ */