|
|
@@ -29,13 +29,17 @@
|
|
|
#define BX_CPU_X86 0
|
|
|
|
|
|
// C Runtime
|
|
|
+#define BX_CRT_BIONIC 0
|
|
|
#define BX_CRT_GLIBC 0
|
|
|
#define BX_CRT_LIBCXX 0
|
|
|
#define BX_CRT_MINGW 0
|
|
|
#define BX_CRT_MSVC 0
|
|
|
#define BX_CRT_MUSL 0
|
|
|
#define BX_CRT_NEWLIB 0
|
|
|
-#define BX_CRT_NONE 0
|
|
|
+
|
|
|
+#ifndef BX_CRT_NONE
|
|
|
+# define BX_CRT_NONE 0
|
|
|
+#endif // BX_CRT_NONE
|
|
|
|
|
|
// Platform
|
|
|
#define BX_PLATFORM_ANDROID 0
|
|
|
@@ -64,34 +68,12 @@
|
|
|
# undef BX_COMPILER_CLANG_ANALYZER
|
|
|
# define BX_COMPILER_CLANG_ANALYZER 1
|
|
|
# endif // defined(__clang_analyzer__)
|
|
|
-# if defined(_MSC_VER)
|
|
|
-# undef BX_CRT_MSVC
|
|
|
-# define BX_CRT_MSVC 1
|
|
|
-# elif defined(__GLIBC__)
|
|
|
-# undef BX_CRT_GLIBC
|
|
|
-# define BX_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100)
|
|
|
-# elif defined(__MINGW32__) || defined(__MINGW64__)
|
|
|
-# undef BX_CRT_MINGW
|
|
|
-# define BX_CRT_MINGW 1
|
|
|
-# elif defined(__apple_build_version__) || defined(__ANDROID__) || defined(__ORBIS__)
|
|
|
-# undef BX_CRT_LIBCXX
|
|
|
-# define BX_CRT_LIBCXX 1
|
|
|
-# endif //
|
|
|
#elif defined(_MSC_VER)
|
|
|
# undef BX_COMPILER_MSVC
|
|
|
# define BX_COMPILER_MSVC _MSC_VER
|
|
|
-# undef BX_CRT_MSVC
|
|
|
-# define BX_CRT_MSVC 1
|
|
|
#elif defined(__GNUC__)
|
|
|
# undef BX_COMPILER_GCC
|
|
|
# define BX_COMPILER_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
|
|
-# if defined(__GLIBC__)
|
|
|
-# undef BX_CRT_GLIBC
|
|
|
-# define BX_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100)
|
|
|
-# elif defined(__MINGW32__) || defined(__MINGW64__)
|
|
|
-# undef BX_CRT_MINGW
|
|
|
-# define BX_CRT_MINGW 1
|
|
|
-# endif //
|
|
|
#else
|
|
|
# error "BX_COMPILER_* is not defined!"
|
|
|
#endif //
|
|
|
@@ -193,7 +175,7 @@
|
|
|
# endif
|
|
|
#elif defined(__ANDROID__)
|
|
|
// Android compiler defines __linux__
|
|
|
-# include <android/api-level.h>
|
|
|
+# include <sys/cdefs.h> // Defines __BIONIC__ and includes android/api-level.h
|
|
|
# undef BX_PLATFORM_ANDROID
|
|
|
# define BX_PLATFORM_ANDROID __ANDROID_API__
|
|
|
#elif defined(__native_client__)
|
|
|
@@ -218,11 +200,7 @@
|
|
|
# define BX_PLATFORM_IOS 1
|
|
|
#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
|
|
|
# undef BX_PLATFORM_OSX
|
|
|
-# if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
|
|
|
-# define BX_PLATFORM_OSX __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
|
|
|
-# else
|
|
|
-# define BX_PLATFORM_OSX 1
|
|
|
-# endif // defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
|
|
|
+# define BX_PLATFORM_OSX __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
|
|
|
#elif defined(__EMSCRIPTEN__)
|
|
|
# undef BX_PLATFORM_EMSCRIPTEN
|
|
|
# define BX_PLATFORM_EMSCRIPTEN 1
|
|
|
@@ -232,7 +210,11 @@
|
|
|
#elif defined(__QNX__)
|
|
|
# undef BX_PLATFORM_QNX
|
|
|
# define BX_PLATFORM_QNX 1
|
|
|
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
|
|
+#elif defined(__FreeBSD__) \
|
|
|
+ || defined(__FreeBSD_kernel__) \
|
|
|
+ || defined(__NetBSD__) \
|
|
|
+ || defined(__OpenBSD__) \
|
|
|
+ || defined(__DragonFly__)
|
|
|
# undef BX_PLATFORM_BSD
|
|
|
# define BX_PLATFORM_BSD 1
|
|
|
#elif defined(__GNU__)
|
|
|
@@ -240,6 +222,37 @@
|
|
|
# define BX_PLATFORM_HURD 1
|
|
|
#endif //
|
|
|
|
|
|
+#if !BX_CRT_NONE
|
|
|
+// https://sourceforge.net/p/predef/wiki/Libraries/
|
|
|
+# if defined(__BIONIC__)
|
|
|
+# undef BX_CRT_BIONIC
|
|
|
+# define BX_CRT_BIONIC 1
|
|
|
+# elif defined(_MSC_VER)
|
|
|
+# undef BX_CRT_MSVC
|
|
|
+# define BX_CRT_MSVC 1
|
|
|
+# elif defined(__GLIBC__)
|
|
|
+# undef BX_CRT_GLIBC
|
|
|
+# define BX_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100)
|
|
|
+# elif defined(__MINGW32__) || defined(__MINGW64__)
|
|
|
+# undef BX_CRT_MINGW
|
|
|
+# define BX_CRT_MINGW 1
|
|
|
+# elif defined(__apple_build_version__) || defined(__ORBIS__)
|
|
|
+# undef BX_CRT_LIBCXX
|
|
|
+# define BX_CRT_LIBCXX 1
|
|
|
+# endif //
|
|
|
+
|
|
|
+# if !BX_CRT_BIONIC \
|
|
|
+ && !BX_CRT_GLIBC \
|
|
|
+ && !BX_CRT_LIBCXX \
|
|
|
+ && !BX_CRT_MINGW \
|
|
|
+ && !BX_CRT_MSVC \
|
|
|
+ && !BX_CRT_MUSL \
|
|
|
+ && !BX_CRT_NEWLIB
|
|
|
+# undef BX_CRT_NONE
|
|
|
+# define BX_CRT_NONE 1
|
|
|
+# endif // BX_CRT_*
|
|
|
+#endif // !BX_CRT_NONE
|
|
|
+
|
|
|
#define BX_PLATFORM_POSIX (0 \
|
|
|
|| BX_PLATFORM_ANDROID \
|
|
|
|| BX_PLATFORM_EMSCRIPTEN \
|
|
|
@@ -342,14 +355,16 @@
|
|
|
# define BX_CPU_NAME "x86"
|
|
|
#endif // BX_CPU_
|
|
|
|
|
|
-#if BX_CRT_MSVC
|
|
|
-# define BX_CRT_NAME "MSVC C Runtime"
|
|
|
+#if BX_CRT_BIONIC
|
|
|
+# define BX_CRT_NAME "Bionic libc"
|
|
|
#elif BX_CRT_GLIBC
|
|
|
# define BX_CRT_NAME "GNU C Library"
|
|
|
-#elif BX_CRT_NEWLIB
|
|
|
-# define BX_CRT_NAME "Newlib"
|
|
|
+#elif BX_CRT_MSVC
|
|
|
+# define BX_CRT_NAME "MSVC C Runtime"
|
|
|
#elif BX_CRT_MINGW
|
|
|
# define BX_CRT_NAME "MinGW C Runtime"
|
|
|
+#elif BX_CRT_NEWLIB
|
|
|
+# define BX_CRT_NAME "Newlib"
|
|
|
#elif BX_CRT_MUSL
|
|
|
# define BX_CRT_NAME "musl libc"
|
|
|
#else
|