public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo commit in src/patchsets/binutils/2.19.51.0.6: 03_all_binutils-2.15.92.0.2-ppc64-pie.patch 08_all_binutils-RPATH_ENVVAR-smack.patch 12_all_sh-targets.patch 42_all_012_check_ldrunpath_length.patch 63_all_binutils-2.18-pt-pax-flags-20070828.patch 65_all_binutils-2.18-amd64-32bit-path.patch 66_all_binutils-2.18.50.0.2-warn-textrel.patch 76_all_only-use-new-ld-dtags.patch.disabled 76_all_use-new-ld-dtags.patch 77_all_generate-gnu-hash.patch 78_all_use-relro.patch 91_all_libiberty-pic.patch README.history
@ 2009-05-30  1:59 Mike Frysinger (vapier)
  0 siblings, 0 replies; only message in thread
From: Mike Frysinger (vapier) @ 2009-05-30  1:59 UTC (permalink / raw
  To: gentoo-commits

vapier      09/05/30 01:59:11

  Added:                03_all_binutils-2.15.92.0.2-ppc64-pie.patch
                        08_all_binutils-RPATH_ENVVAR-smack.patch
                        12_all_sh-targets.patch
                        42_all_012_check_ldrunpath_length.patch
                        63_all_binutils-2.18-pt-pax-flags-20070828.patch
                        65_all_binutils-2.18-amd64-32bit-path.patch
                        66_all_binutils-2.18.50.0.2-warn-textrel.patch
                        76_all_only-use-new-ld-dtags.patch.disabled
                        76_all_use-new-ld-dtags.patch
                        77_all_generate-gnu-hash.patch
                        78_all_use-relro.patch 91_all_libiberty-pic.patch
                        README.history
  Log:
  initial 2.19.51.0.6 patchset based on last 2.19.51.0.5 patchset

Revision  Changes    Path
1.1                  src/patchsets/binutils/2.19.51.0.6/03_all_binutils-2.15.92.0.2-ppc64-pie.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/03_all_binutils-2.15.92.0.2-ppc64-pie.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/03_all_binutils-2.15.92.0.2-ppc64-pie.patch?rev=1.1&content-type=text/plain

Index: 03_all_binutils-2.15.92.0.2-ppc64-pie.patch
===================================================================
--- bfd/elf64-ppc.c.jj	2004-09-27 16:46:06.000000000 -0400
+++ bfd/elf64-ppc.c	2004-10-04 09:09:50.000000000 -0400
@@ -9681,7 +9681,12 @@ ppc64_elf_relocate_section (bfd *output_
 	      else if (!SYMBOL_REFERENCES_LOCAL (info, &h->elf)
 		       && !is_opd
 		       && r_type != R_PPC64_TOC)
-		outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
+		{
+		  outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
+		  if (h->elf.dynindx == -1
+		      && h->elf.root.type == bfd_link_hash_undefweak)
+		  memset (&outrel, 0, sizeof outrel);
+		}
 	      else
 		{
 		  /* This symbol is local, or marked to become local,



1.1                  src/patchsets/binutils/2.19.51.0.6/08_all_binutils-RPATH_ENVVAR-smack.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/08_all_binutils-RPATH_ENVVAR-smack.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/08_all_binutils-RPATH_ENVVAR-smack.patch?rev=1.1&content-type=text/plain

Index: 08_all_binutils-RPATH_ENVVAR-smack.patch
===================================================================
http://sourceware.org/ml/binutils/2007-07/msg00401.html
http://sourceware.org/bugzilla/show_bug.cgi?id=4970

--- configure
+++ configure
@@ -5601,6 +5601,7 @@ case "${host}" in
   *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
   *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
 esac
+RPATH_ENVVAR="cant_touch_this_nah_nah_nah"
 
 # On systems where the dynamic library environment variable is PATH,
 if test "$RPATH_ENVVAR" = PATH; then



1.1                  src/patchsets/binutils/2.19.51.0.6/12_all_sh-targets.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/12_all_sh-targets.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/12_all_sh-targets.patch?rev=1.1&content-type=text/plain

Index: 12_all_sh-targets.patch
===================================================================
r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines

Likewise, binutils has no idea about any of these new targets either, so we 
fix that up too.. now we're able to actually build a real toolchain for 
sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more 
inept targets than that one, really. Go look, I promise).

--- binutils-2.16.90.0.2-dist/configure
+++ binutils-2.16.90.0.2/configure
@@ -1207,7 +1207,7 @@
   am33_2.0-*-linux*)
     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
     ;;
-  sh-*-linux*)
+  sh*-*-linux*)
     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
     ;;    
   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
@@ -1495,7 +1495,7 @@
   romp-*-*)
     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
     ;;
-  sh-*-* | sh64-*-*)
+  sh*-*-* | sh64-*-*)
     case "${host}" in
       i[3456789]86-*-vsta) ;; # don't add gprof back in
       i[3456789]86-*-go32*) ;; # don't add gprof back in
--- binutils-2.16.90.0.2-dist/configure.ac
+++ binutils-2.16.90.0.2/configure.ac
@@ -424,7 +424,7 @@
   am33_2.0-*-linux*)
     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
     ;;
-  sh-*-linux*)
+  sh*-*-linux*)
     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
     ;;    
   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
@@ -712,7 +712,7 @@
   romp-*-*)
     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
     ;;
-  sh-*-* | sh64-*-*)
+  sh*-*-* | sh64-*-*)
     case "${host}" in
       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
       i[[3456789]]86-*-go32*) ;; # don't add gprof back in



1.1                  src/patchsets/binutils/2.19.51.0.6/42_all_012_check_ldrunpath_length.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/42_all_012_check_ldrunpath_length.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/42_all_012_check_ldrunpath_length.patch?rev=1.1&content-type=text/plain

Index: 42_all_012_check_ldrunpath_length.patch
===================================================================
#!/bin/sh -e
## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
## DP: cases where -rpath isn't specified. (#151024)

if [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi

[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"

case "$1" in
       -patch) patch $patch_opts -p1 < $0;;
       -unpatch) patch $patch_opts -p1 -R < $0;;
        *)
                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
                exit 1;;
esac

exit 0

@DPATCH@
diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:58.000000000 +0100
+++ binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:59.000000000 +0100
@@ -692,6 +692,8 @@
 	      && command_line.rpath == NULL)
 	    {
 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
+	      if ((lib_path) && (strlen (lib_path) == 0))
+		  lib_path = NULL;
 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
 						      force))
 		break;
@@ -871,6 +873,8 @@
   rpath = command_line.rpath;
   if (rpath == NULL)
     rpath = (const char *) getenv ("LD_RUN_PATH");
+  if ((rpath) && (strlen (rpath) == 0))
+      rpath = NULL;
   if (! (bfd_elf_size_dynamic_sections
 	 (output_bfd, command_line.soname, rpath,
 	  command_line.filter_shlib,



1.1                  src/patchsets/binutils/2.19.51.0.6/63_all_binutils-2.18-pt-pax-flags-20070828.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/63_all_binutils-2.18-pt-pax-flags-20070828.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/63_all_binutils-2.18-pt-pax-flags-20070828.patch?rev=1.1&content-type=text/plain

Index: 63_all_binutils-2.18-pt-pax-flags-20070828.patch
===================================================================
--- binutils-2.18/bfd/elf-bfd.h
+++ binutils-2.18/bfd/elf-bfd.h
@@ -1431,6 +1431,9 @@ struct elf_obj_tdata
   /* Should the PT_GNU_RELRO segment be emitted?  */
   bfd_boolean relro;
 
+  /* Segment flags for the PT_PAX_FLAGS segment.  */
+  unsigned int pax_flags;
+
   /* Symbol version definitions in external objects.  */
   Elf_Internal_Verdef *verdef;
 
--- binutils-2.18/bfd/elf.c
+++ binutils-2.18/bfd/elf.c
@@ -1085,6 +1085,7 @@ get_segment_type (unsigned int p_type)
     case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break;
     case PT_GNU_STACK: pt = "STACK"; break;
     case PT_GNU_RELRO: pt = "RELRO"; break;
+    case PT_PAX_FLAGS: pt = "PAX_FLAGS"; break;
     default: pt = NULL; break;
     }
   return pt;
@@ -2361,6 +2362,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_In
     case PT_GNU_RELRO:
       return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "relro");
 
+    case PT_PAX_FLAGS:
+      return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "pax_flags");
+
     default:
       /* Check for any processor-specific program segment types.  */
       bed = get_elf_backend_data (abfd);
@@ -3341,6 +3345,11 @@ get_program_header_size (bfd *abfd, stru
       ++segs;
     }
 
+    {
+      /* We need a PT_PAX_FLAGS segment.  */
+      ++segs;
+    }
+
   for (s = abfd->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LOAD) != 0
@@ -3868,6 +3877,20 @@ _bfd_elf_map_sections_to_segments (bfd *
 	  pm = &m->next;
 	}
 
+    {
+      amt = sizeof (struct elf_segment_map);
+      m = bfd_zalloc (abfd, amt);
+      if (m == NULL)
+	goto error_return;
+      m->next = NULL;
+      m->p_type = PT_PAX_FLAGS;
+      m->p_flags = elf_tdata (abfd)->pax_flags;
+      m->p_flags_valid = 1;
+
+      *pm = m;
+      pm = &m->next;
+    }
+
       free (sections);
       elf_tdata (abfd)->segment_map = mfirst;
     }
@@ -5010,7 +5033,8 @@ rewrite_elf_program_header (bfd *ibfd, b
        6. PT_TLS segment includes only SHF_TLS sections.
        7. SHF_TLS sections are only in PT_TLS or PT_LOAD segments.
        8. PT_DYNAMIC should not contain empty sections at the beginning
-	  (with the possible exception of .dynamic).  */
+	  (with the possible exception of .dynamic).
+       9. PT_PAX_FLAGS segments do not include any sections.  */
 #define IS_SECTION_IN_INPUT_SEGMENT(section, segment, bed)		\
   ((((segment->p_paddr							\
       ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr)	\
@@ -5018,6 +5042,7 @@ rewrite_elf_program_header (bfd *ibfd, b
      && (section->flags & SEC_ALLOC) != 0)				\
     || IS_COREFILE_NOTE (segment, section))				\
    && segment->p_type != PT_GNU_STACK					\
+   && segment->p_type != PT_PAX_FLAGS					\
    && (segment->p_type != PT_TLS					\
        || (section->flags & SEC_THREAD_LOCAL))				\
    && (segment->p_type == PT_LOAD					\
--- binutils-2.18/bfd/elflink.c
+++ binutils-2.18/bfd/elflink.c
@@ -5328,16 +5328,30 @@ bfd_elf_size_dynamic_sections (bfd *outp
     return TRUE;
 
   bed = get_elf_backend_data (output_bfd);
+
+  elf_tdata (output_bfd)->pax_flags = PF_NORANDEXEC;
+  if (info->execheap)
+    elf_tdata (output_bfd)->pax_flags |= PF_NOMPROTECT;
+  else if (info->noexecheap)
+    elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT;
+
   if (info->execstack)
-    elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
+    {
+      elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
+      elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
+    }
   else if (info->noexecstack)
-    elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
+    {
+      elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
+      elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
+    }
   else
     {
       bfd *inputobj;
       asection *notesec = NULL;
       int exec = 0;
 
+      elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
       for (inputobj = info->input_bfds;
 	   inputobj;
 	   inputobj = inputobj->link_next)
@@ -5350,7 +5364,11 @@ bfd_elf_size_dynamic_sections (bfd *outp
 	  if (s)
 	    {
 	      if (s->flags & SEC_CODE)
-		exec = PF_X;
+		{
+		  elf_tdata (output_bfd)->pax_flags &= ~PF_NOEMUTRAMP;
+		  elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
+		  exec = PF_X;
+		}
 	      notesec = s;
 	    }
 	  else if (bed->default_execstack)
--- binutils-2.18/binutils/readelf.c
+++ binutils-2.18/binutils/readelf.c
@@ -2469,6 +2469,7 @@ get_segment_type (unsigned long p_type)
 			return "GNU_EH_FRAME";
     case PT_GNU_STACK:	return "GNU_STACK";
     case PT_GNU_RELRO:  return "GNU_RELRO";
+    case PT_PAX_FLAGS:  return "PAX_FLAGS";
 
     default:
       if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
--- binutils-2.18/include/bfdlink.h
+++ binutils-2.18/include/bfdlink.h
@@ -321,6 +321,14 @@ struct bfd_link_info
   /* TRUE if PT_GNU_RELRO segment should be created.  */
   unsigned int relro: 1;
 
+  /* TRUE if PT_PAX_FLAGS segment should be created with PF_NOMPROTECT
+     flags.  */
+  unsigned int execheap: 1;
+
+  /* TRUE if PT_PAX_FLAGS segment should be created with PF_MPROTECT
+     flags.  */
+  unsigned int noexecheap: 1;
+
   /* TRUE if we should warn when adding a DT_TEXTREL to a shared object.  */
   unsigned int warn_shared_textrel: 1;
 
--- binutils-2.18/include/elf/common.h
+++ binutils-2.18/include/elf/common.h
@@ -309,6 +309,7 @@
 #define PT_GNU_STACK	(PT_LOOS + 0x474e551) /* Stack flags */
 #define PT_GNU_RELRO	(PT_LOOS + 0x474e552) /* Read-only after relocation */
 #define PT_GNU_SHR	(PT_LOOS + 0x474e554) /* Sharable segment */
+#define PT_PAX_FLAGS	(PT_LOOS + 0x5041580) /* PaX flags */
 
 /* Program segment permissions, in program header p_flags field.  */
 
@@ -319,6 +320,21 @@
 #define PF_MASKOS	0x0FF00000	/* New value, Oct 4, 1999 Draft */
 #define PF_MASKPROC	0xF0000000	/* Processor-specific reserved bits */
 
+/* Flags to control PaX behavior.  */
+
+#define PF_PAGEEXEC	(1 << 4)	/* Enable  PAGEEXEC */
+#define PF_NOPAGEEXEC	(1 << 5)	/* Disable PAGEEXEC */
+#define PF_SEGMEXEC	(1 << 6)	/* Enable  SEGMEXEC */
+#define PF_NOSEGMEXEC	(1 << 7)	/* Disable SEGMEXEC */
+#define PF_MPROTECT	(1 << 8)	/* Enable  MPROTECT */
+#define PF_NOMPROTECT	(1 << 9)	/* Disable MPROTECT */
+#define PF_RANDEXEC	(1 << 10)	/* Enable  RANDEXEC */
+#define PF_NORANDEXEC	(1 << 11)	/* Disable RANDEXEC */
+#define PF_EMUTRAMP	(1 << 12)	/* Enable  EMUTRAMP */
+#define PF_NOEMUTRAMP	(1 << 13)	/* Disable EMUTRAMP */
+#define PF_RANDMMAP	(1 << 14)	/* Enable  RANDMMAP */
+#define PF_NORANDMMAP	(1 << 15)	/* Disable RANDMMAP */
+
 /* Values for section header, sh_type field.  */
 
 #define SHT_NULL	0		/* Section header table entry unused */
--- binutils-2.18/ld/emultempl/elf32.em
+++ binutils-2.18/ld/emultempl/elf32.em
@@ -2132,6 +2132,16 @@ fragment <<EOF
 	  link_info.noexecstack = TRUE;
 	  link_info.execstack = FALSE;
 	}
+      else if (strcmp (optarg, "execheap") == 0)
+	{
+	  link_info.execheap = TRUE;
+	  link_info.noexecheap = FALSE;
+	}
+      else if (strcmp (optarg, "noexecheap") == 0)
+	{
+	  link_info.noexecheap = TRUE;
+	  link_info.execheap = FALSE;
+	}
 EOF
 
   if test -n "$COMMONPAGESIZE"; then
@@ -2205,6 +2215,8 @@ fragment <<EOF
   -z defs                     Report unresolved symbols in object files.\n"));
   fprintf (file, _("\
   -z execstack                Mark executable as requiring executable stack\n"));
+  fprintf (file, _("\
+  -z execheap                 Mark executable as requiring executable heap\n"));
   fprintf (file, _("\
   -z initfirst                Mark DSO to be initialized first at runtime\n"));
   fprintf (file, _("\
@@ -2217,6 +2228,8 @@ fragment <<EOF
   -z nodump                   Mark DSO not available to dldump\n"));
   fprintf (file, _("\
   -z noexecstack              Mark executable as not requiring executable stack\n"));
+  fprintf (file, _("\
+  -z noexecheap               Mark executable as not requiring executable heap\n"));
 EOF
 
   if test -n "$COMMONPAGESIZE"; then
--- binutils-2.18/ld/ldgram.y
+++ binutils-2.18/ld/ldgram.y
@@ -1099,6 +1099,8 @@ phdr_type:
 			    $$ = exp_intop (0x6474e550);
 			  else if (strcmp (s, "PT_GNU_STACK") == 0)
 			    $$ = exp_intop (0x6474e551);
+			  else if (strcmp (s, "PT_PAX_FLAGS") == 0)
+			    $$ = exp_intop (0x65041580);
 			  else
 			    {
 			      einfo (_("\



1.1                  src/patchsets/binutils/2.19.51.0.6/65_all_binutils-2.18-amd64-32bit-path.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/65_all_binutils-2.18-amd64-32bit-path.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/65_all_binutils-2.18-amd64-32bit-path.patch?rev=1.1&content-type=text/plain

Index: 65_all_binutils-2.18-amd64-32bit-path.patch
===================================================================
--- binutils/ld/emulparams/elf_i386.sh
+++ binutils/ld/emulparams/elf_i386.sh
@@ -13,3 +13,13 @@
 NO_SMALL_DATA=yes
 SEPARATE_GOTPLT=12
 SHARABLE_SECTIONS=yes
+
+# In Gentoo, we install 32bit libs into /lib32 in an
+# ABI setup with amd64/x86
+case "$target" in
+  x86_64*-linux*)
+    case "$EMULATION_NAME" in
+      *i386*) LIBPATH_SUFFIX=32  ;;
+    esac
+  ;;
+esac



1.1                  src/patchsets/binutils/2.19.51.0.6/66_all_binutils-2.18.50.0.2-warn-textrel.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/66_all_binutils-2.18.50.0.2-warn-textrel.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/66_all_binutils-2.18.50.0.2-warn-textrel.patch?rev=1.1&content-type=text/plain

Index: 66_all_binutils-2.18.50.0.2-warn-textrel.patch
===================================================================
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  <solar@gentoo.org>, Mike Frysinger <vapier@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.

--- bfd/elflink.c
+++ bfd/elflink.c
@@ -8652,14 +8652,12 @@
 	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)
@@ -8702,7 +8702,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
 	      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;
 		}
 	    }
--- ld/ldmain.c
+++ ld/ldmain.c
@@ -282,2 +282,3 @@ main (int argc, char **argv)
   link_info.spare_dynamic_tags = 5;
+  link_info.warn_shared_textrel = TRUE;
   link_info.sharable_sections = FALSE;
--- ld/testsuite/lib/ld-lib.exp
+++ ld/testsuite/lib/ld-lib.exp
@@ -181,6 +181,10 @@ proc default_ld_simple_link { ld target 
     # 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 {



1.1                  src/patchsets/binutils/2.19.51.0.6/76_all_only-use-new-ld-dtags.patch.disabled

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/76_all_only-use-new-ld-dtags.patch.disabled?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/76_all_only-use-new-ld-dtags.patch.disabled?rev=1.1&content-type=text/plain

Index: 76_all_only-use-new-ld-dtags.patch.disabled
===================================================================
Don't generate RPATH if we're going to be generating RUNPATH.

need to ponder what ramifications this has before enabling it

--- binutils/bfd/elflink.c
+++ binutils/bfd/elflink.c
@@ -5382,11 +5382,15 @@
 
 	  indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, rpath,
 				      TRUE);
-	  if (indx == (bfd_size_type) -1
-	      || !_bfd_elf_add_dynamic_entry (info, DT_RPATH, indx))
+	  if (indx == (bfd_size_type) -1)
 	    return FALSE;
 
-	  if  (info->new_dtags)
+	  if (!info->new_dtags)
+	    {
+	      if (!_bfd_elf_add_dynamic_entry (info, DT_RPATH, indx))
+		return FALSE;
+	    }
+	  else
 	    {
 	      _bfd_elf_strtab_addref (elf_hash_table (info)->dynstr, indx);
 	      if (!_bfd_elf_add_dynamic_entry (info, DT_RUNPATH, indx))



1.1                  src/patchsets/binutils/2.19.51.0.6/76_all_use-new-ld-dtags.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/76_all_use-new-ld-dtags.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/76_all_use-new-ld-dtags.patch?rev=1.1&content-type=text/plain

Index: 76_all_use-new-ld-dtags.patch
===================================================================
--- binutils/ld/ldmain.c
+++ binutils/ld/ldmain.c
@@ -296,6 +296,7 @@ main (int argc, char **argv)
 
   link_info.allow_undefined_version = TRUE;
   link_info.keep_memory = TRUE;
+  link_info.new_dtags = TRUE;
   link_info.combreloc = TRUE;
   link_info.strip_discarded = TRUE;
   link_info.callbacks = &link_callbacks;



1.1                  src/patchsets/binutils/2.19.51.0.6/77_all_generate-gnu-hash.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/77_all_generate-gnu-hash.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/77_all_generate-gnu-hash.patch?rev=1.1&content-type=text/plain

Index: 77_all_generate-gnu-hash.patch
===================================================================
--- binutils/ld/ldmain.c
+++ binutils/ld/ldmain.c
@@ -273,2 +273,5 @@ main (int argc, char **argv)
   link_info.emit_hash = TRUE;
+#ifndef __mips__
+  link_info.emit_gnu_hash = TRUE;
+#endif
   link_info.callbacks = &link_callbacks;



1.1                  src/patchsets/binutils/2.19.51.0.6/78_all_use-relro.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/78_all_use-relro.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/78_all_use-relro.patch?rev=1.1&content-type=text/plain

Index: 78_all_use-relro.patch
===================================================================
--- binutils/ld/ldmain.c
+++ binutils/ld/ldmain.c
@@ -293,2 +293,3 @@ main (int argc, char **argv)
   link_info.combreloc = TRUE;
+  link_info.relro = TRUE;
   link_info.strip_discarded = TRUE;



1.1                  src/patchsets/binutils/2.19.51.0.6/91_all_libiberty-pic.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/91_all_libiberty-pic.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/91_all_libiberty-pic.patch?rev=1.1&content-type=text/plain

Index: 91_all_libiberty-pic.patch
===================================================================
--- libiberty/Makefile.in.mps	2004-05-13 15:53:17.000000000 +0200
+++ libiberty/Makefile.in	2004-05-13 15:52:53.000000000 +0200
@@ -224,6 +224,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA
 	  $(AR) $(AR_FLAGS) $(TARGETLIB) \
 	    $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
 	  $(RANLIB) $(TARGETLIB); \
+	  cp $(TARGETLIB) ../ ; \
 	  cd ..; \
 	else true; fi
 



1.1                  src/patchsets/binutils/2.19.51.0.6/README.history

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/README.history?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.19.51.0.6/README.history?rev=1.1&content-type=text/plain

Index: README.history
===================================================================
1.0		29.05.2009
	+ 03_all_binutils-2.15.92.0.2-ppc64-pie.patch
	+ 08_all_binutils-RPATH_ENVVAR-smack.patch
	+ 12_all_sh-targets.patch
	+ 42_all_012_check_ldrunpath_length.patch
	+ 63_all_binutils-2.18-pt-pax-flags-20070828.patch
	+ 65_all_binutils-2.18-amd64-32bit-path.patch
	+ 66_all_binutils-2.18.50.0.2-warn-textrel.patch
	+ 76_all_use-new-ld-dtags.patch
	+ 77_all_generate-gnu-hash.patch
	+ 78_all_use-relro.patch
	+ 91_all_libiberty-pic.patch






^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-05-30  1:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-30  1:59 [gentoo-commits] gentoo commit in src/patchsets/binutils/2.19.51.0.6: 03_all_binutils-2.15.92.0.2-ppc64-pie.patch 08_all_binutils-RPATH_ENVVAR-smack.patch 12_all_sh-targets.patch 42_all_012_check_ldrunpath_length.patch 63_all_binutils-2.18-pt-pax-flags-20070828.patch 65_all_binutils-2.18-amd64-32bit-path.patch 66_all_binutils-2.18.50.0.2-warn-textrel.patch 76_all_only-use-new-ld-dtags.patch.disabled 76_all_use-new-ld-dtags.patch 77_all_generate-gnu-hash.patch 78_all_use-relro.patch 91_all_libiberty-pic.patch README.history Mike Frysinger (vapier)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox