summaryrefslogtreecommitdiff
path: root/toolchain/musl/patches/001-eliminate-protected-visibility-data-in-libc.so-with-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/musl/patches/001-eliminate-protected-visibility-data-in-libc.so-with-.patch')
-rw-r--r--toolchain/musl/patches/001-eliminate-protected-visibility-data-in-libc.so-with-.patch55
1 files changed, 0 insertions, 55 deletions
diff --git a/toolchain/musl/patches/001-eliminate-protected-visibility-data-in-libc.so-with-.patch b/toolchain/musl/patches/001-eliminate-protected-visibility-data-in-libc.so-with-.patch
deleted file mode 100644
index 7f6f427..0000000
--- a/toolchain/musl/patches/001-eliminate-protected-visibility-data-in-libc.so-with-.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From: Rich Felker <dalias@aerifal.cx>
-Date: Tue, 29 Sep 2015 02:44:05 +0000
-Subject: [PATCH] eliminate protected-visibility data in libc.so with vis.h
- preinclude
-
-some newer binutils versions print scary warnings about protected data
-because most gcc versions fail to produce the right address
-references/relocations for such data that might be subject to copy
-relocations. originally vis.h explicitly assigned default visibility
-to all public data symbols to avoid this issue, but commit
-b8dda24fe1caa901a99580f7a52defb95aedb67c removed this treatment for
-stdin/out/err to work around a gcc 3.x bug, and since they don't
-actually need it (because taking their addresses is not valid C).
-
-instead, a check for the gcc 3.x bug is added to the configure check
-for vis.h preinclude support; this feature will simply be disabled
-when using a buggy version of gcc.
----
-
---- a/configure
-+++ b/configure
-@@ -476,10 +476,18 @@ if test "x$visibility" = xauto ; then
- # - the -include option
- # - the attributes/pragmas used in vis.h
- # - linking code that takes the address of protected symbols
-+# - gcc 3.x bug that wrongly claims declarations mismatch
- printf "checking whether global visibility preinclude works... "
--echo 'int (*fp)(void);' > "$tmpc"
--echo 'int foo(void) { }' >> "$tmpc"
--echo 'int bar(void) { fp = foo; return foo(); }' >> "$tmpc"
-+cat > "$tmpc" <<EOF
-+__attribute__((__visibility__("default")))
-+extern struct a *const x;
-+typedef struct a b;
-+extern b *const x;
-+b *const x;
-+int (*fp)(void);
-+int foo(void) { }
-+int bar(void) { fp = foo; return foo(); }
-+EOF
- if $CC $CFLAGS_C99FSE $CPPFLAGS $CFLAGS \
- -DSHARED -fPIC -I./src/internal -include vis.h \
- -nostdlib -shared -Wl,-Bsymbolic-functions \
---- a/src/internal/vis.h
-+++ b/src/internal/vis.h
-@@ -12,6 +12,9 @@
- * exported data symbols. */
-
- __attribute__((__visibility__("default")))
-+extern struct _IO_FILE *const stdin, *const stdout, *const stderr;
-+
-+__attribute__((__visibility__("default")))
- extern int optind, opterr, optopt, optreset, __optreset, getdate_err, h_errno, daylight, __daylight, signgam, __signgam;
-
- __attribute__((__visibility__("default")))