]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Check for build environment instead of just _GNU_SOURCE 4463/head
authorBrad Smith <brad@comstyle.com>
Tue, 19 Aug 2025 13:23:38 +0000 (09:23 -0400)
committerBrad Smith <brad@comstyle.com>
Wed, 20 Aug 2025 00:06:24 +0000 (20:06 -0400)
Fixes the build on OpenBSD and NetBSD. It is too easy for _GNU_SOURCE
to be defined even on non-Linux systems. Found via py-zstandard with
the embedded copy of zstandard and Python defines _GNU_SOURCE.

Also simplify the Linux checking, there is no need to check the rest
of the symbol names.

lib/dictBuilder/cover.c

index 92c22a96c7a1e88f8bb8f3af6a5eb2cd32a4a500..06d1cb93a5c4c00ebb987099c8e75b4726c942dd 100644 (file)
 /*-*************************************
 *  Dependencies
 ***************************************/
-/* qsort_r is an extension. */
-#if defined(__linux) || defined(__linux__) || defined(linux) || defined(__gnu_linux__) || \
-    defined(__CYGWIN__) || defined(__MSYS__)
-# if !defined(_GNU_SOURCE) && !defined(__ANDROID__) /* NDK doesn't ship qsort_r(). */
+/* qsort_r is an extension.
+ *
+ * Android NDK does not ship qsort_r().
+ */
+#if (defined(__linux__) && !defined(__ANDROID__)) || defined(__CYGWIN__) || defined(__MSYS__)
+# ifndef _GNU_SOURCE
 #   define _GNU_SOURCE
 # endif
 #endif
@@ -77,7 +79,7 @@
 #ifndef ZDICT_QSORT
 # if defined(__APPLE__)
 #   define ZDICT_QSORT ZDICT_QSORT_APPLE /* uses qsort_r() with a different order for parameters */
-# elif defined(_GNU_SOURCE)
+# elif (defined(__linux__) && !defined(__ANDROID__)) || defined(__CYGWIN__) || defined(__MSYS__)
 #   define ZDICT_QSORT ZDICT_QSORT_GNU /* uses qsort_r() */
 # elif defined(_WIN32) && defined(_MSC_VER)
 #   define ZDICT_QSORT ZDICT_QSORT_MSVC /* uses qsort_s() with a different order for parameters */