diff options
Diffstat (limited to '9999/0003-Gentoo-gold-ld-add-support-for-poisoned-system-direc.patch')
-rw-r--r-- | 9999/0003-Gentoo-gold-ld-add-support-for-poisoned-system-direc.patch | 63 |
1 files changed, 34 insertions, 29 deletions
diff --git a/9999/0003-Gentoo-gold-ld-add-support-for-poisoned-system-direc.patch b/9999/0003-Gentoo-gold-ld-add-support-for-poisoned-system-direc.patch index 964946c..f7443bf 100644 --- a/9999/0003-Gentoo-gold-ld-add-support-for-poisoned-system-direc.patch +++ b/9999/0003-Gentoo-gold-ld-add-support-for-poisoned-system-direc.patch @@ -1,8 +1,11 @@ -From c251ab646d98b3f0e8f8b1ae5e94c672325477e2 Mon Sep 17 00:00:00 2001 +From 8a82f64de912f26e840b20eec9d8a463fd0e242b Mon Sep 17 00:00:00 2001 From: Mike Frysinger <vapier@gentoo.org> -Date: Tue, 10 Oct 2017 22:53:53 +0200 -Subject: [PATCH 3/9] Gentoo: gold/ld: add support for poisoned system +Date: Tue, 20 Jul 2021 21:08:31 +0200 +Subject: [PATCH 1/6] Gentoo: gold/ld: add support for poisoned system directories +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit This is based on the old CodeSourcery patch written by Joseph Myers to add support to the link for detecting & rejecting bad -L paths when using a @@ -23,6 +26,8 @@ TEST=x86_64-cros-linux-gnu-ld throws warnings when using -L/lib (gold & bfd) Reviewed-on: https://chromium-review.googlesource.com/272083 (cherry picked from commit f92dbf35c00ab13cee36f6be8ae5ca46454d9000) + +Ported to binutils 2.37 Andreas K. Hütte <dilfridge@gentoo.org> --- gold/options.cc | 33 +++++++++++++++++++++++++++++++++ gold/options.h | 7 +++++++ @@ -38,10 +43,10 @@ Reviewed-on: https://chromium-review.googlesource.com/272083 11 files changed, 146 insertions(+) diff --git a/gold/options.cc b/gold/options.cc -index 94867b361a..704d5d089e 100644 +index 5a55bd8ba6d..f7940c75f5a 100644 --- a/gold/options.cc +++ b/gold/options.cc -@@ -1290,6 +1290,39 @@ General_options::finalize() +@@ -1355,6 +1355,39 @@ General_options::finalize() // in the path, as appropriate. this->add_sysroot(); @@ -82,10 +87,10 @@ index 94867b361a..704d5d089e 100644 if (this->shared() && this->is_static()) gold_fatal(_("-shared and -static are incompatible")); diff --git a/gold/options.h b/gold/options.h -index b2059d984c..b60f802754 100644 +index 757ebf18fec..490b4cbd7d4 100644 --- a/gold/options.h +++ b/gold/options.h -@@ -1375,6 +1375,13 @@ class General_options +@@ -1394,6 +1394,13 @@ class General_options DEFINE_bool(warn_multiple_gp, options::TWO_DASHES, '\0', false, N_("Ignored"), NULL); @@ -100,10 +105,10 @@ index b2059d984c..b60f802754 100644 N_("Warn when skipping an incompatible library"), N_("Don't warn when skipping an incompatible library")); diff --git a/ld/config.in b/ld/config.in -index d93c9b0830..5da2742bea 100644 +index 26d55a00d47..ffad464783c 100644 --- a/ld/config.in +++ b/ld/config.in -@@ -31,6 +31,9 @@ +@@ -43,6 +43,9 @@ language is requested. */ #undef ENABLE_NLS @@ -114,10 +119,10 @@ index d93c9b0830..5da2742bea 100644 #undef EXTRA_SHLIB_EXTENSION diff --git a/ld/configure b/ld/configure -index e1dbc95747..460078f6e8 100755 +index c197aaef3cb..882263aa43f 100755 --- a/ld/configure +++ b/ld/configure -@@ -826,6 +826,7 @@ with_lib_path +@@ -829,6 +829,7 @@ with_lib_path enable_targets enable_64_bit_bfd with_sysroot @@ -125,8 +130,8 @@ index e1dbc95747..460078f6e8 100755 enable_gold enable_got enable_compressed_debug_sections -@@ -1491,6 +1492,8 @@ Optional Features: - --disable-largefile omit support for large files +@@ -1498,6 +1499,8 @@ Optional Features: + --enable-checking enable run-time checks --enable-targets alternative target configurations --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) + --enable-poison-system-directories @@ -134,7 +139,7 @@ index e1dbc95747..460078f6e8 100755 --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got=<type> GOT handling scheme (target, single, negative, multigot) -@@ -15809,7 +15812,18 @@ else +@@ -15236,7 +15239,18 @@ else fi @@ -154,10 +159,10 @@ index e1dbc95747..460078f6e8 100755 # Check whether --enable-got was given. if test "${enable_got+set}" = set; then : diff --git a/ld/configure.ac b/ld/configure.ac -index b5e849d84a..22e022ec03 100644 +index 8ea97c43cd4..0f246db67d8 100644 --- a/ld/configure.ac +++ b/ld/configure.ac -@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) +@@ -106,6 +106,16 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) @@ -175,10 +180,10 @@ index b5e849d84a..22e022ec03 100644 dnl "install_as_default" is set to false if gold is the default linker. dnl "installed_linker" is the installed BFD linker name. diff --git a/ld/ld.h b/ld/ld.h -index 71fd781267..a6ea2ae69e 100644 +index 35fafebfaed..4152278b8f4 100644 --- a/ld/ld.h +++ b/ld/ld.h -@@ -166,6 +166,13 @@ typedef struct +@@ -162,6 +162,13 @@ typedef struct in the linker script. */ bool force_group_allocation; @@ -193,10 +198,10 @@ index 71fd781267..a6ea2ae69e 100644 enum endian_enum endian; diff --git a/ld/ld.texi b/ld/ld.texi -index 621d05dc05..cbbbc687d0 100644 +index dd8f571d4e4..0aee4a4e9f1 100644 --- a/ld/ld.texi +++ b/ld/ld.texi -@@ -2609,6 +2609,24 @@ string identifying the original linked file does not change. +@@ -2863,6 +2863,24 @@ string identifying the original linked file does not change. Passing @code{none} for @var{style} disables the setting from any @code{--build-id} options earlier on the command line. @@ -222,7 +227,7 @@ index 621d05dc05..cbbbc687d0 100644 @c man end diff --git a/ld/ldfile.c b/ld/ldfile.c -index 53112c8694..eb357e66a9 100644 +index 9d0af06f1f6..f4a83acca93 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -117,6 +117,26 @@ ldfile_add_library_path (const char *name, bool cmdline) @@ -253,10 +258,10 @@ index 53112c8694..eb357e66a9 100644 /* Try to open a BFD for a lang_input_statement. */ diff --git a/ld/ldlex.h b/ld/ldlex.h -index aeaea4dfee..b8d43da37f 100644 +index 9e8bf5fb835..3baed822a22 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h -@@ -142,6 +142,9 @@ enum option_values +@@ -148,6 +148,9 @@ enum option_values OPTION_PRINT_OUTPUT_FORMAT, OPTION_PRINT_SYSROOT, OPTION_IGNORE_UNRESOLVED_SYMBOL, @@ -267,10 +272,10 @@ index aeaea4dfee..b8d43da37f 100644 OPTION_POP_STATE, OPTION_DISABLE_MULTIPLE_DEFS_ABS, diff --git a/ld/ldmain.c b/ld/ldmain.c -index c3f473f661..c45012dbbd 100644 +index 42660eb9a3c..c78009b760c 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c -@@ -273,6 +273,13 @@ main (int argc, char **argv) +@@ -321,6 +321,13 @@ main (int argc, char **argv) command_line.warn_mismatch = true; command_line.warn_search_mismatch = true; command_line.check_section_addresses = -1; @@ -285,10 +290,10 @@ index c3f473f661..c45012dbbd 100644 /* We initialize DEMANGLING based on the environment variable COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the diff --git a/ld/lexsup.c b/ld/lexsup.c -index c5edc25793..c20c0bb0d8 100644 +index 00274c500d0..a19cce9967c 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c -@@ -540,6 +540,18 @@ static const struct ld_option ld_options[] = +@@ -566,6 +566,18 @@ static const struct ld_option ld_options[] = OPTION_IGNORE_UNRESOLVED_SYMBOL}, '\0', N_("SYMBOL"), N_("Unresolved SYMBOL will not cause an error or warning"), TWO_DASHES }, @@ -307,7 +312,7 @@ index c5edc25793..c20c0bb0d8 100644 { {"push-state", no_argument, NULL, OPTION_PUSH_STATE}, '\0', NULL, N_("Push state of flags governing input file handling"), TWO_DASHES }, -@@ -1563,6 +1575,18 @@ parse_args (unsigned argc, char **argv) +@@ -1643,6 +1655,18 @@ parse_args (unsigned argc, char **argv) } break; @@ -327,5 +332,5 @@ index c5edc25793..c20c0bb0d8 100644 input_flags.pushed = xmemdup (&input_flags, sizeof (input_flags), -- -2.26.2 +2.31.1 |