The 'warn-on-all-TEXTRELs.patch' produces warnings on some embedded projects:

---8<---
arm-v5te-linux-gnueabi-ld: warning: creating a DT_TEXTREL in object.
   text    data     bss     dec     hex filename
 423076    7480  305016  735572   b3954 /tmp/build_arm_at91/u-boot
--->8---

This renders this toolchain nearly un-usable for this use-case. If one will
see these warnings he can always use the '--warn-shared-textrel' switch so
this patch will only revert the 'default to warn' to 'default to ignore
warning' which is in fact the default for GNU linker.

Another point is that even crosstool-ng has switched back and removed this
patch, it seems there are some other users bothered by that warning.

Signed-off-by: Andreas Bießmann <biessm...@corscience.de>
---
 ...1-05-31-Paul-Brook-paul-codesourcery.com.patch} |    0
 .../0002-warn-on-all-TEXTRELs.patch                |   80 --------------------
 patches/binutils-2.21.1a/series                    |    5 +-
 3 files changed, 2 insertions(+), 83 deletions(-)
 rename 
patches/binutils-2.21.1a/{0003-2011-05-31-Paul-Brook-paul-codesourcery.com.patch
 => 0002-2011-05-31-Paul-Brook-paul-codesourcery.com.patch} (100%)
 delete mode 100644 patches/binutils-2.21.1a/0002-warn-on-all-TEXTRELs.patch

diff --git 
a/patches/binutils-2.21.1a/0003-2011-05-31-Paul-Brook-paul-codesourcery.com.patch
 
b/patches/binutils-2.21.1a/0002-2011-05-31-Paul-Brook-paul-codesourcery.com.patch
similarity index 100%
rename from 
patches/binutils-2.21.1a/0003-2011-05-31-Paul-Brook-paul-codesourcery.com.patch
rename to 
patches/binutils-2.21.1a/0002-2011-05-31-Paul-Brook-paul-codesourcery.com.patch
diff --git a/patches/binutils-2.21.1a/0002-warn-on-all-TEXTRELs.patch 
b/patches/binutils-2.21.1a/0002-warn-on-all-TEXTRELs.patch
deleted file mode 100644
index 3be8fae..0000000
--- a/patches/binutils-2.21.1a/0002-warn-on-all-TEXTRELs.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From: unknown author <unknown.aut...@example.com>
-Date: Tue, 1 Nov 2011 16:44:50 +0100
-Subject: [PATCH] warn on all TEXTRELs
-
-textrels are bad for forcing copy-on-write (this affects everyone),
-and for security/runtime code generation, this affects security ppl.
-But in either case, it doesn't matter who needs textrels, it's
-the very fact that they're needed at all.
-
-2006-06-10  Ned Ludd  <so...@gentoo.org>, Mike Frysinger <vap...@gentoo.org>
-
-       * bfd/elflink.c (bfd_elf_final_link): Check all objects for TEXTRELs.
-       * ld/ldmain.c (main): Change textrel warning default to true.
-       * ld/testsuite/lib/ld-lib.exp (default_ld_simple_link): Scrub TEXTREL
-       warnings from ld output.
-
-Original patch from gentoo. Also used by crosstool-ng (binutils-2.20.1a).
----
- bfd/elflink.c               |    8 +++-----
- ld/ldmain.c                 |    1 +
- ld/testsuite/lib/ld-lib.exp |    4 ++++
- 3 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/bfd/elflink.c b/bfd/elflink.c
-index 9e69ec6..0396659 100644
---- a/bfd/elflink.c
-+++ b/bfd/elflink.c
-@@ -11114,14 +11114,12 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info 
*info)
-       goto error_return;
- 
-       /* Check for DT_TEXTREL (late, in case the backend removes it).  */
--      if (info->warn_shared_textrel && info->shared)
-+      o = bfd_get_section_by_name (dynobj, ".dynamic");
-+      if (info->warn_shared_textrel && o != NULL)
-       {
-         bfd_byte *dyncon, *dynconend;
- 
-         /* Fix up .dynamic entries.  */
--        o = bfd_get_section_by_name (dynobj, ".dynamic");
--        BFD_ASSERT (o != NULL);
--
-         dyncon = o->contents;
-         dynconend = o->contents + o->size;
-         for (; dyncon < dynconend; dyncon += bed->s->sizeof_dyn)
-@@ -11133,7 +11131,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info 
*info)
-             if (dyn.d_tag == DT_TEXTREL)
-               {
-                info->callbacks->einfo
--                  (_("%P: warning: creating a DT_TEXTREL in a shared 
object.\n"));
-+                  (_("%P: warning: creating a DT_TEXTREL in object.\n"));
-                 break;
-               }
-           }
-diff --git a/ld/ldmain.c b/ld/ldmain.c
-index 96f3bda..9f88cc4 100644
---- a/ld/ldmain.c
-+++ b/ld/ldmain.c
-@@ -287,6 +287,7 @@ main (int argc, char **argv)
-   emulation = get_emulation (argc, argv);
-   ldemul_choose_mode (emulation);
-   default_target = ldemul_choose_target (argc, argv);
-+  link_info.warn_shared_textrel = TRUE;
-   config.maxpagesize = bfd_emul_get_maxpagesize (default_target);
-   config.commonpagesize = bfd_emul_get_commonpagesize (default_target);
-   lang_init ();
-diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
-index f444da7..f935f12 100644
---- a/ld/testsuite/lib/ld-lib.exp
-+++ b/ld/testsuite/lib/ld-lib.exp
-@@ -206,6 +206,10 @@ proc default_ld_simple_link { ld target objects } {
-     # symbol, since the default linker script might use ENTRY.
-     regsub -all "(^|\n)(\[^\n\]*: warning: cannot find entry 
symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output
- 
-+    # Gentoo tweak:
-+    # We want to ignore TEXTREL warnings since we force enable them by default
-+    regsub -all "^lt-ld-new: warning: creating a DT_TEXTREL in object\." 
$exec_output "\\1" exec_output
-+
-     if [string match "" $exec_output] then {
-       return 1
-     } else {
diff --git a/patches/binutils-2.21.1a/series b/patches/binutils-2.21.1a/series
index bab2133..f0d739a 100644
--- a/patches/binutils-2.21.1a/series
+++ b/patches/binutils-2.21.1a/series
@@ -1,6 +1,5 @@
 # generated by git-ptx-patches
 #tag:base --start-number 1
 0001-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
-0002-warn-on-all-TEXTRELs.patch
-0003-2011-05-31-Paul-Brook-paul-codesourcery.com.patch
-# df7383a34a1fb7245bbcc4a517757b0a  - git-ptx-patches magic
+0002-2011-05-31-Paul-Brook-paul-codesourcery.com.patch
+# ab44a8a2deb9ac0a004704a7638a046e  - git-ptx-patches magic
-- 
1.7.9.1


-- 
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to