diff options
author | Arsen Arsenović <arsen@aarsen.me> | 2022-06-24 16:03:46 +0200 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-07-12 07:33:20 +0100 |
commit | 7b95b1831d71396150c5cb10d4edf899e135d068 (patch) | |
tree | be82740a6de850a430a2dbeca25aa21d6494787e | |
parent | Convert build system to meson (diff) | |
download | pax-utils-7b95b1831d71396150c5cb10d4edf899e135d068.tar.gz pax-utils-7b95b1831d71396150c5cb10d4edf899e135d068.tar.bz2 pax-utils-7b95b1831d71396150c5cb10d4edf899e135d068.zip |
Probe the target system for needed headers
This prevents new or unconventional systems requiring upstream changes,
though, this is not perfect, as it doesn't address some of the other
defines related to OSes the preprocessor does (namely, wrt the ldso
cache handling). I didn't touch these yet as I took a more conservative
approach of (probably) not changing what happens at runtime.
Signed-off-by: Arsen Arsenović <arsen@aarsen.me>
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r-- | porting.h | 25 | ||||
-rwxr-xr-x | tests/source/dotest | 2 |
2 files changed, 12 insertions, 15 deletions
@@ -11,9 +11,7 @@ #ifndef _PORTING_H #define _PORTING_H -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include "probes.h" #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(*arr)) @@ -41,36 +39,36 @@ #include <sys/stat.h> #include <sys/types.h> #include "elf.h" -#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) +#if HAS_ALLOCA_H # include <alloca.h> #endif -#if defined(__linux__) +#if HAS_SYS_PRCTL_H # include <sys/prctl.h> -# if !defined(HAVE_CONFIG_H) || defined(HAVE_LINUX_SECCOMP_H) +# if HAS_LINUX_SECCOMP_H # include <linux/seccomp.h> # endif -# if !defined(HAVE_CONFIG_H) || defined(HAVE_LINUX_SECUREBITS_H) +# if HAS_LINUX_SECUREBITS_H # include <linux/securebits.h> # endif #endif -#if defined(__GLIBC__) || defined(__UCLIBC__) || defined(__ANDROID__) +#if HAS_ENDIAN_H && HAS_BYTESWAP_H # include <byteswap.h> # include <endian.h> -#elif defined(__FreeBSD__) +#elif HAS_SYS_ENDIAN_H # include <sys/endian.h> -#elif defined(__sun__) +#elif HAS_ISA_DEFS_H # include <sys/isa_defs.h> -#elif defined(__MACH__) +#elif HAS_MACHINE_ENDIAN_H # include <machine/endian.h> #endif -#if defined(__GLIBC__) || defined(__UCLIBC__) || defined(__NetBSD__) +#ifdef HAS_GLOB_H # include <glob.h> #endif #if defined(__GLIBC__) || defined(__UCLIBC__) || defined(__NetBSD__) # define __PAX_UTILS_DEFAULT_LD_CACHE_CONFIG "/etc/ld.so.conf" -#elif defined(__FreeBSD__) || defined(__DragonFly__) +#elif HAS_ELF_HINTS_H # include <elf-hints.h> # define __PAX_UTILS_DEFAULT_LD_CACHE_CONFIG _PATH_ELF_HINTS #else @@ -168,7 +166,6 @@ # define __PAX_UTILS_PATH_MAX PATH_MAX #endif -/* fall back case for non-Linux hosts ... so lame */ #if !defined(ELF_DATA) # if defined(BYTE_ORDER) # if BYTE_ORDER == LITTLE_ENDIAN diff --git a/tests/source/dotest b/tests/source/dotest index c97e8cb..cc278a5 100755 --- a/tests/source/dotest +++ b/tests/source/dotest @@ -5,7 +5,7 @@ findfiles() { find "${top_srcdir}" \ '(' -type d -a '(' -name .git -o -name autotools ')' -prune ')' \ - -o '(' '(' -name '*.[ch]' -a ! -name 'config.h' ')' -print0 ')' + -o '(' '(' -name '*.[ch]' -a ! -name 'probes.h' ')' -print0 ')' } # |