From 3c64d2ad8016b9a3c40507ac15ea9f994fb51343 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Sat, 11 Mar 2023 05:45:11 +0300 Subject: [PATCH] public: build: don't confuse other libcs with built with glibc game libraries by specifying them into separate platform, like Android --- public/build.c | 2 ++ public/build.h | 10 +++++++++- public/buildenums.h | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/public/build.c b/public/build.c index 74146dae..c54c887f 100644 --- a/public/build.c +++ b/public/build.c @@ -89,6 +89,8 @@ const char *Q_PlatformStringByID( const int platform ) return "win32"; case PLATFORM_ANDROID: return "android"; + case PLATFORM_LINUX_UNKNOWN: + return "linuxunkabi"; case PLATFORM_LINUX: return "linux"; case PLATFORM_APPLE: diff --git a/public/build.h b/public/build.h index 8a4db711..ba1944e5 100644 --- a/public/build.h +++ b/public/build.h @@ -69,6 +69,7 @@ Then you can use another oneliner to query all variables: #undef XASH_IRIX #undef XASH_JS #undef XASH_LINUX +#undef XASH_LINUX_UNKNOWN #undef XASH_LITTLE_ENDIAN #undef XASH_MIPS #undef XASH_MOBILE_PLATFORM @@ -98,10 +99,17 @@ Then you can use another oneliner to query all variables: #else // POSIX compatible #define XASH_POSIX 1 #if defined __linux__ - #define XASH_LINUX 1 #if defined __ANDROID__ #define XASH_ANDROID 1 + #else + #include + // if our system libc has features.h header + // try to detect it to not confuse other libcs with built with glibc game libraries + #if !defined __GLIBC__ + #define XASH_LINUX_UNKNOWN 1 + #endif #endif + #define XASH_LINUX 1 #elif defined __FreeBSD__ #define XASH_FREEBSD 1 #elif defined __NetBSD__ diff --git a/public/buildenums.h b/public/buildenums.h index ed7a0c58..81f7516d 100644 --- a/public/buildenums.h +++ b/public/buildenums.h @@ -40,11 +40,14 @@ GNU General Public License for more details. #define PLATFORM_SERENITY 11 #define PLATFORM_IRIX 12 #define PLATFORM_NSWITCH 13 +#define PLATFORM_LINUX_UNKNOWN 14 #if XASH_WIN32 #define XASH_PLATFORM PLATFORM_WIN32 #elif XASH_ANDROID #define XASH_PLATFORM PLATFORM_ANDROID +#elif XASH_LINUX_UNKNOWN + #define XASH_PLATFORM PLATFORM_LINUX_UNKNOWN #elif XASH_LINUX #define XASH_PLATFORM PLATFORM_LINUX #elif XASH_APPLE