]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
[trace] Refine the ZSTD_HAVE_WEAK_SYMBOLS detection 2674/head
authorNick Terrell <terrelln@fb.com>
Wed, 19 May 2021 03:22:36 +0000 (20:22 -0700)
committerNick Terrell <terrelln@fb.com>
Wed, 19 May 2021 03:22:36 +0000 (20:22 -0700)
* Only enable for ELF on x86-64 or i386.
* Also explicitly disable for AIX.

Fixes #2658.

lib/common/zstd_trace.h

index 2da5640771d1804fd7bda99cba86f235ff60aa85..f9121f7d8ed5634f6095418f6df2030bc8a07c75 100644 (file)
@@ -17,10 +17,19 @@ extern "C" {
 
 #include <stddef.h>
 
-/* weak symbol support */
-#if !defined(ZSTD_HAVE_WEAK_SYMBOLS) && defined(__GNUC__) && \
+/* weak symbol support
+ * For now, enable conservatively:
+ * - Only GNUC
+ * - Only ELF
+ * - Only x86-64 and i386
+ * Also, explicitly disable on platforms known not to work so they aren't
+ * forgotten in the future.
+ */
+#if !defined(ZSTD_HAVE_WEAK_SYMBOLS) && \
+    defined(__GNUC__) && defined(__ELF__) && \
+    (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)) && \
     !defined(__APPLE__) && !defined(_WIN32) && !defined(__MINGW32__) && \
-    !defined(__CYGWIN__)
+    !defined(__CYGWIN__) && !defined(_AIX)
 #  define ZSTD_HAVE_WEAK_SYMBOLS 1
 #else
 #  define ZSTD_HAVE_WEAK_SYMBOLS 0