diff options
| author | Michael Pratt | 2024-06-11 03:59:10 +0000 |
|---|---|---|
| committer | Robert Marko | 2024-06-19 09:22:13 +0000 |
| commit | e4fb7c9544d607ce9d63bcfaa955fc3b28b3898e (patch) | |
| tree | 7cc31fc1c9cc1264a0fed32bb7257673e5dfd2a5 | |
| parent | 52a53445014d87cf4cdc5484a8293a41b6f5b274 (diff) | |
| download | openwrt-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.patch | 9 |
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. */ |