summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Pratt2024-06-11 03:59:10 +0000
committerRobert Marko2024-06-19 09:22:13 +0000
commite4fb7c9544d607ce9d63bcfaa955fc3b28b3898e (patch)
tree7cc31fc1c9cc1264a0fed32bb7257673e5dfd2a5
parent52a53445014d87cf4cdc5484a8293a41b6f5b274 (diff)
downloadopenwrt-e4fb7c9544d607ce9d63bcfaa955fc3b28b3898e.tar.gz
tools/elfutils: use weak alias over no alias for macOS
Clang has support for weak aliases despite no support for strong aliases, but it only works with the #pragma directive. Implementing weak aliases instead of none is likely a more upstream-friendly solution for supporting building on other platforms. Signed-off-by: Michael Pratt <mcpratt@pm.me> Link: https://github.com/openwrt/openwrt/pull/15690 Signed-off-by: Robert Marko <robimarko@gmail.com>
-rw-r--r--tools/elfutils/patches/100-portability.patch9
1 files changed, 5 insertions, 4 deletions
diff --git a/tools/elfutils/patches/100-portability.patch b/tools/elfutils/patches/100-portability.patch
index 4851086fb8..35e29cfcc9 100644
--- a/tools/elfutils/patches/100-portability.patch
+++ b/tools/elfutils/patches/100-portability.patch
@@ -34,7 +34,7 @@
LIBS="$saved_LIBS"
--- a/lib/eu-config.h
+++ b/lib/eu-config.h
-@@ -59,14 +59,18 @@
+@@ -59,14 +59,19 @@
# define once(once_control, init_routine) init_routine()
#endif /* USE_LOCKS */
@@ -45,8 +45,9 @@
#define _(Str) dgettext ("elfutils", Str)
/* Compiler-specific definitions. */
++#define __PRAGMA(str) _Pragma (#str)
+#ifdef __APPLE__
-+#define strong_alias(name, aliasname)
++#define strong_alias(name, aliasname) __PRAGMA(weak aliasname = name)
+#else
#define strong_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((alias (#name)));
@@ -54,7 +55,7 @@
#ifdef __i386__
# define internal_function __attribute__ ((regparm (3), stdcall))
-@@ -77,7 +81,7 @@
+@@ -77,7 +82,7 @@
#define internal_strong_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((alias (#name))) internal_function;
@@ -63,7 +64,7 @@
#define attribute_hidden \
__attribute__ ((visibility ("hidden")))
#else
-@@ -166,7 +170,7 @@ asm (".section predict_data, \"aw\"; .pr
+@@ -166,7 +171,7 @@ asm (".section predict_data, \"aw\"; .pr
#endif
/* Avoid PLT entries. */