public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo commit in src/patchsets/binutils/2.21.52.0.1: 03_all_binutils-2.15.92.0.2-ppc64-pie.patch 08_all_binutils-RPATH_ENVVAR-smack.patch 12_all_sh-targets.patch 20_all_ld-sysroot.patch 63_all_binutils-2.20.51.0.2-pt-pax-flags-20091010.patch 65_all_binutils-2.20-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
@ 2011-06-09  3:15 Mike Frysinger (vapier)
  0 siblings, 0 replies; only message in thread
From: Mike Frysinger (vapier) @ 2011-06-09  3:15 UTC (permalink / raw
  To: gentoo-commits

vapier      11/06/09 03:15:17

  Added:                03_all_binutils-2.15.92.0.2-ppc64-pie.patch
                        08_all_binutils-RPATH_ENVVAR-smack.patch
                        12_all_sh-targets.patch 20_all_ld-sysroot.patch
                        63_all_binutils-2.20.51.0.2-pt-pax-flags-20091010.patch
                        65_all_binutils-2.20-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.21.52.0.1 patchset based on last 2.21.51.0.9 patchset

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

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/03_all_binutils-2.15.92.0.2-ppc64-pie.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/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.21.52.0.1/08_all_binutils-RPATH_ENVVAR-smack.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/08_all_binutils-RPATH_ENVVAR-smack.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/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.21.52.0.1/12_all_sh-targets.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/12_all_sh-targets.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/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).

--- a/configure
+++ b/configure
@@ -1495,7 +1495,7 @@
   mips*-*-*)
     noconfigdirs="$noconfigdirs gprof"
     ;;
-  sh-*-* | sh64-*-*)
+  sh*-*-* | sh64-*-*)
     case "${target}" in
       sh*-*-elf)
          ;;
--- a/configure.ac
+++ b/configure.ac
@@ -712,7 +712,7 @@
   mips*-*-*)
     noconfigdirs="$noconfigdirs gprof"
     ;;
-  sh-*-* | sh64-*-*)
+  sh*-*-* | sh64-*-*)
     case "${target}" in
       sh*-*-elf)
          ;;



1.1                  src/patchsets/binutils/2.21.52.0.1/20_all_ld-sysroot.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/20_all_ld-sysroot.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/20_all_ld-sysroot.patch?rev=1.1&content-type=text/plain

Index: 20_all_ld-sysroot.patch
===================================================================
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>

Always try to prepend the sysroot prefix to absolute filenames first.

http://bugs.gentoo.org/275666
http://sourceware.org/bugzilla/show_bug.cgi?id=10340

--- ld/ldfile.c
+++ ld/ldfile.c
@@ -308,18 +308,24 @@
      directory first.  */
   if (! entry->is_archive)
     {
-      if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename))
+      /* For absolute pathnames, try to always open the file in the
+	 sysroot first. If this fails, try to open the file at the
+	 given location. */
+      entry->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
+      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
 	{
 	  char *name = concat (ld_sysroot, entry->filename,
 			       (const char *) NULL);
 	  if (ldfile_try_open_bfd (name, entry))
 	    {
 	      entry->filename = name;
+	      entry->sysrooted = TRUE;
 	      return TRUE;
 	    }
 	  free (name);
 	}
-      else if (ldfile_try_open_bfd (entry->filename, entry))
+
+      if (ldfile_try_open_bfd (entry->filename, entry))
 	{
 	  entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
 	    && is_sysrooted_pathname (entry->filename, TRUE);



1.1                  src/patchsets/binutils/2.21.52.0.1/63_all_binutils-2.20.51.0.2-pt-pax-flags-20091010.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/63_all_binutils-2.20.51.0.2-pt-pax-flags-20091010.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/63_all_binutils-2.20.51.0.2-pt-pax-flags-20091010.patch?rev=1.1&content-type=text/plain

Index: 63_all_binutils-2.20.51.0.2-pt-pax-flags-20091010.patch
===================================================================
--- binutils-2.20/bfd/elf-bfd.h
+++ binutils-2.20/bfd/elf-bfd.h
@@ -1527,6 +1527,9 @@ struct elf_obj_tdata
   /* Segment flags for the PT_GNU_STACK segment.  */
   unsigned int stack_flags;
 
+  /* Segment flags for the PT_PAX_FLAGS segment.  */
+  unsigned int pax_flags;
+
   /* Symbol version definitions in external objects.  */
   Elf_Internal_Verdef *verdef;
 
--- binutils-2.20/bfd/elf.c
+++ binutils-2.20/bfd/elf.c
@@ -1081,6 +1081,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;
@@ -2379,6 +2380,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int index)
     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);
@@ -3393,6 +3397,11 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info)
       ++segs;
     }
 
+    {
+      /* We need a PT_PAX_FLAGS segment.  */
+      ++segs;
+    }
+
   for (s = abfd->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LOAD) != 0
@@ -3972,6 +3981,20 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
 	    }
 	}
 
+    {
+      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;
     }
@@ -5176,7 +5199,8 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
        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)	\
@@ -5184,6 +5208,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
      && (section->flags & SEC_ALLOC) != 0)				\
     || IS_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.20/bfd/elflink.c
+++ binutils-2.20/bfd/elflink.c
@@ -5465,16 +5465,30 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
     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)
@@ -5487,7 +5501,11 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
 	  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.20/binutils/readelf.c
+++ binutils-2.20/binutils/readelf.c
@@ -2556,6 +2556,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.20/include/bfdlink.h
+++ binutils-2.20/include/bfdlink.h
@@ -319,6 +319,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.20/include/elf/common.h
+++ binutils-2.20/include/elf/common.h
@@ -422,6 +422,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.  */
 
@@ -432,6 +433,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.20/ld/emultempl/elf32.em
+++ binutils-2.20/ld/emultempl/elf32.em
@@ -2159,6 +2159,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
@@ -2237,6 +2247,8 @@ fragment <<EOF
   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, _("\
   -z interpose                Mark object to interpose all DSOs but executable\n"));
@@ -2260,6 +2272,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.20/ld/ldgram.y
+++ binutils-2.20/ld/ldgram.y
@@ -1116,6 +1116,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.21.52.0.1/65_all_binutils-2.20-amd64-32bit-path.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/65_all_binutils-2.20-amd64-32bit-path.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/65_all_binutils-2.20-amd64-32bit-path.patch?rev=1.1&content-type=text/plain

Index: 65_all_binutils-2.20-amd64-32bit-path.patch
===================================================================
--- binutils/ld/emulparams/elf_i386.sh
+++ binutils/ld/emulparams/elf_i386.sh
@@ -13,3 +13,13 @@
 SEPARATE_GOTPLT=12
 IREL_IN_PLT=
 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.21.52.0.1/66_all_binutils-2.18.50.0.2-warn-textrel.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/66_all_binutils-2.18.50.0.2-warn-textrel.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/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.21.52.0.1/76_all_only-use-new-ld-dtags.patch.disabled

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/76_all_only-use-new-ld-dtags.patch.disabled?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/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.21.52.0.1/76_all_use-new-ld-dtags.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/76_all_use-new-ld-dtags.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/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;
--- binutils/ld/ld.texinfo
+++ binutils/ld/ld.texinfo
@@ -2036,8 +2036,9 @@
 systems may not understand them. If you specify
 @option{--enable-new-dtags}, the dynamic tags will be created as needed.
 If you specify @option{--disable-new-dtags}, no new dynamic tags will be
-created. By default, the new dynamic tags are not created. Note that
-those options are only available for ELF systems.
+created. On Gentoo, by default, the new dynamic tags are created (this
+differs from upstream behaviour). Note that those options are only
+available for ELF systems.
 
 @kindex --hash-size=@var{number}
 @item --hash-size=@var{number}



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

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/77_all_generate-gnu-hash.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/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.21.52.0.1/78_all_use-relro.patch

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

Index: 78_all_use-relro.patch
===================================================================
background:
http://www.airs.com/blog/archives/189

--- 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.21.52.0.1/91_all_libiberty-pic.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/91_all_libiberty-pic.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/binutils/2.21.52.0.1/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.21.52.0.1/README.history

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

Index: README.history
===================================================================
1.0		08.06.2011
	+ 03_all_binutils-2.15.92.0.2-ppc64-pie.patch
	+ 08_all_binutils-RPATH_ENVVAR-smack.patch
	+ 12_all_sh-targets.patch
	+ 20_all_ld-sysroot.patch
	+ 63_all_binutils-2.20.51.0.2-pt-pax-flags-20091010.patch
	+ 65_all_binutils-2.20-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:[~2011-06-09  3:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-09  3:15 [gentoo-commits] gentoo commit in src/patchsets/binutils/2.21.52.0.1: 03_all_binutils-2.15.92.0.2-ppc64-pie.patch 08_all_binutils-RPATH_ENVVAR-smack.patch 12_all_sh-targets.patch 20_all_ld-sysroot.patch 63_all_binutils-2.20.51.0.2-pt-pax-flags-20091010.patch 65_all_binutils-2.20-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