From 292b2386d766826b15f5ca084d37aa2c485fdda6 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Thu, 17 Aug 2023 00:36:04 +0200 Subject: build: rework how sysroots work /usr/include is now built on the fly, letting me merge include files from multiple modules, which should be a win for organization later on. binutils & gcc need to be recompiled. limits.h shamelessly stolen from heat on #osdev, as gcc stopped providing me with its own header. which was a hack in the first place --- src/libc/include/limits.h | 6 ------ src/libc/include/locale.h | 1 + src/libk/include/bits/limits.h | 45 ++++++++++++++++++++++++++++++++++++++++ src/libk/include/camellia/path.h | 3 +-- src/libk/include/limits.h | 5 +++++ 5 files changed, 52 insertions(+), 8 deletions(-) delete mode 100644 src/libc/include/limits.h create mode 100644 src/libk/include/bits/limits.h create mode 100644 src/libk/include/limits.h (limited to 'src') diff --git a/src/libc/include/limits.h b/src/libc/include/limits.h deleted file mode 100644 index 972553f..0000000 --- a/src/libc/include/limits.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once -#include <camellia/path.h> // just for PATH_MAX -// #include_next <limits.h> - -#define _POSIX2_RE_DUP_MAX 255 -#define NAME_MAX 255 diff --git a/src/libc/include/locale.h b/src/libc/include/locale.h index 1221375..0ea16a6 100644 --- a/src/libc/include/locale.h +++ b/src/libc/include/locale.h @@ -1,5 +1,6 @@ #pragma once #include <limits.h> +#include <stddef.h> #define LC_ALL 0 #define LC_COLLATE 1 diff --git a/src/libk/include/bits/limits.h b/src/libk/include/bits/limits.h new file mode 100644 index 0000000..a64302e --- /dev/null +++ b/src/libk/include/bits/limits.h @@ -0,0 +1,45 @@ +/** Adapted from code (c) 2023 Pedro Falcato, with permission. + * Originally licensed under BSD-2-Clause-Patent. + */ + +#if defined (__LP64__) +#define __LIMITS_64BIT +#endif + +#define CHAR_BIT 8 + +#define SCHAR_MIN -128 +#define SCHAR_MAX 127 +#define UCHAR_MAX 255 + +#if '\xff' < 0 +/* char is signed */ +# define CHAR_MIN SCHAR_MIN +# define CHAR_MAX SCHAR_MAX +#else +/* char is unsigned */ +# define CHAR_MIN 0 +# define CHAR_MAX UCHAR_MAX +#endif + +#define SHRT_MIN (-1 - 0x7fff) +#define SHRT_MAX 0x7fff +#define USHRT_MAX 0xffff + +#define INT_MIN (-1 - 0x7fffffff) +#define INT_MAX 0x7fffffff +#define UINT_MAX 0xffffffffU + +#ifdef __LIMITS_64BIT +# define LONG_MAX 0x7fffffffffffffffL +# define LONG_MIN (-1 - 0x7fffffffffffffffL) +# define ULONG_MAX 0xffffffffffffffffUL +#else +# define LONG_MAX 0x7fffffffL +# define LONG_MIN (-1 - 0x7fffffffL) +# define ULONG_MAX 0xffffffffUL +#endif + +#define LLONG_MIN (-1 - 0x7fffffffffffffffLL) +#define LLONG_MAX 0x7fffffffffffffffLL +#define ULLONG_MAX 0xffffffffffffffffULL diff --git a/src/libk/include/camellia/path.h b/src/libk/include/camellia/path.h index b268595..ee66f7b 100644 --- a/src/libk/include/camellia/path.h +++ b/src/libk/include/camellia/path.h @@ -1,8 +1,7 @@ #pragma once +#include <limits.h> /* for PATH_MAX */ #include <stddef.h> -#define PATH_MAX 512 - /** Reduce a path to its simplest form. * Kinds of invalid paths: * - relative - "" "a" "./a" diff --git a/src/libk/include/limits.h b/src/libk/include/limits.h new file mode 100644 index 0000000..4cb972d --- /dev/null +++ b/src/libk/include/limits.h @@ -0,0 +1,5 @@ +#include <bits/limits.h> + +#define NAME_MAX 255 +#define PATH_MAX 512 +#define _POSIX2_RE_DUP_MAX 255 -- cgit v1.2.3