summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch63
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