This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 3.x development tree".
The branch, master has been updated via c17a3a7d1e6bfac229edfb8408b769897dc436dc (commit) via 7e12f71b42abece4bd2be8bcf0505e4107b7ac7e (commit) from d9dacb2d7c7e964711f69f138c36fbfa0e33043d (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit c17a3a7d1e6bfac229edfb8408b769897dc436dc Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Apr 2 22:59:43 2010 +0200
toolchain: Apply hardening patches to binutils in toolchain.
commit 7e12f71b42abece4bd2be8bcf0505e4107b7ac7e Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Apr 2 22:59:17 2010 +0200
naoki: Some minor fixes.
-----------------------------------------------------------------------
Summary of changes: naoki/__init__.py | 5 +- naoki/chroot.py | 4 +- pkgs/toolchain/binutils-static/patches | 1 + .../patches/binutils-2.19.1-lazy-1.patch.off | 61 --- .../patches/binutils-2.20-pt_pax-1.patch | 411 -------------------- .../patches/binutils-2.19.1-asprintf_fix.patch | 0 .../patches/binutils-2.19.1-lazy-1.patch.off | 61 --- .../patches/binutils-2.19.1-ld_makefile.patch | 0 .../patches/binutils-2.20-ipfire-ld-elf-1.patch | 0 .../binutils/patches/binutils-2.20-objcopy.patch | 0 ...ls-2.20.1-all_dobumen-new-dtags-behaviour.patch | 0 .../binutils-2.20.1-gentoo-flexible-tests.patch | 0 ...binutils-2.20.1-gentoo-rpath_envvar-smack.patch | 0 .../binutils-2.20.1-gentoo-use-new-ld-dtags.patch | 0 .../patches/binutils-2.20.1-gentoo-use-relro.patch | 0 .../binutils-2.20.1-gentoo-warn-textrel.patch | 0 16 files changed, 5 insertions(+), 538 deletions(-) create mode 120000 pkgs/toolchain/binutils-static/patches delete mode 100644 pkgs/toolchain/binutils-static/patches/binutils-2.19.1-lazy-1.patch.off delete mode 100644 pkgs/toolchain/binutils-static/patches/binutils-2.20-pt_pax-1.patch copy pkgs/{core => toolchain}/binutils/patches/binutils-2.19.1-asprintf_fix.patch (100%) delete mode 100644 pkgs/toolchain/binutils/patches/binutils-2.19.1-lazy-1.patch.off copy pkgs/{core => toolchain}/binutils/patches/binutils-2.19.1-ld_makefile.patch (100%) copy pkgs/{core => toolchain}/binutils/patches/binutils-2.20-ipfire-ld-elf-1.patch (100%) copy pkgs/{core => toolchain}/binutils/patches/binutils-2.20-objcopy.patch (100%) copy pkgs/{core => toolchain}/binutils/patches/binutils-2.20.1-all_dobumen-new-dtags-behaviour.patch (100%) copy pkgs/{core => toolchain}/binutils/patches/binutils-2.20.1-gentoo-flexible-tests.patch (100%) copy pkgs/{core => toolchain}/binutils/patches/binutils-2.20.1-gentoo-rpath_envvar-smack.patch (100%) copy pkgs/{core => toolchain}/binutils/patches/binutils-2.20.1-gentoo-use-new-ld-dtags.patch (100%) copy pkgs/{core => toolchain}/binutils/patches/binutils-2.20.1-gentoo-use-relro.patch (100%) copy pkgs/{core => toolchain}/binutils/patches/binutils-2.20.1-gentoo-warn-textrel.patch (100%)
Difference in files: diff --git a/naoki/__init__.py b/naoki/__init__.py index b0ed7e1..bdb12de 100644 --- a/naoki/__init__.py +++ b/naoki/__init__.py @@ -61,7 +61,7 @@ class Naoki(object): def call_toolchain_build(self, args): toolchain = chroot.Toolchain(arches.current["name"])
- return toolchain.build() + return toolchain.build(naoki=self)
def call_toolchain_download(self, args): toolchain = chroot.Toolchain(arches.current["name"]) @@ -280,8 +280,7 @@ Release : %(release)s
packages = backend.parse_package(args.packages, naoki=self) for package in backend.depsolve(packages, recursive=True): - package.naoki = self - package.extract(environ.chrootPath()) + package.getPackage(self).extract(environ.chrootPath())
def call_shell_enter(self, environ, args): return environ.shell() diff --git a/naoki/chroot.py b/naoki/chroot.py index 0bf9145..0d5391c 100644 --- a/naoki/chroot.py +++ b/naoki/chroot.py @@ -455,11 +455,11 @@ class Toolchain(object): def adjust(self, path): self.cmd(["adjust", path])
- def build(self): + def build(self, naoki): self.log.info("Building toolchain...")
packages = backend.get_package_names(toolchain=True) - packages = backend.parse_package(packages, toolchain=True) + packages = backend.parse_package(packages, toolchain=True, naoki=naoki) packages = backend.depsort(packages) for pkg in packages: if os.path.exists(os.path.join(self.path, pkg.name)): diff --git a/pkgs/toolchain/binutils-static/patches b/pkgs/toolchain/binutils-static/patches new file mode 120000 index 0000000..046f17d --- /dev/null +++ b/pkgs/toolchain/binutils-static/patches @@ -0,0 +1 @@ +../binutils/patches/ \ No newline at end of file diff --git a/pkgs/toolchain/binutils-static/patches/binutils-2.19.1-lazy-1.patch.off b/pkgs/toolchain/binutils-static/patches/binutils-2.19.1-lazy-1.patch.off deleted file mode 100644 index e9e8411..0000000 --- a/pkgs/toolchain/binutils-static/patches/binutils-2.19.1-lazy-1.patch.off +++ /dev/null @@ -1,61 +0,0 @@ -Submitted By: Robert Connolly robert@linuxfromscratch.org (ashes) -Date: 2006-08-12 -Initial Package Version: 2.17 -Upstream Status: From Upstream -Origin: http://sourceware.org/ml/binutils/2006-06/msg00218.html - http://sourceware.org/ml/binutils-cvs/2006-06/msg00095.html -Description: This adds -z lazy option, inverse of -z now. - -diff -Naur binutils-2.17.orig/ld/ChangeLog binutils-2.17/ld/ChangeLog ---- binutils-2.17.orig/ld/ChangeLog 2006-06-12 13:07:28.000000000 +0000 -+++ binutils-2.17/ld/ChangeLog 2006-08-13 00:42:29.000000000 +0000 -@@ -1,3 +1,10 @@ -+2006-06-14 Kevin F. Quinn kevquinn@gentoo.org -+ -+ * ld.texinfo: Document new -z lazy option. -+ * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle -+ new option. -+ (gld${EMULATION_NAME}_list_options): Update help text. -+ - 2006-06-12 Fred Fish fnf@specifix.com - - * emulparams/elf32bmip.sh (OTHER_SECTIONS): Keep the -diff -Naur binutils-2.17.orig/ld/emultempl/elf32.em binutils-2.17/ld/emultempl/elf32.em ---- binutils-2.17.orig/ld/emultempl/elf32.em 2006-06-12 13:05:04.000000000 +0000 -+++ binutils-2.17/ld/emultempl/elf32.em 2006-08-13 00:43:21.000000000 +0000 -@@ -1826,6 +1826,11 @@ - link_info.flags |= (bfd_vma) DF_BIND_NOW; - link_info.flags_1 |= (bfd_vma) DF_1_NOW; - } -+ else if (strcmp (optarg, "lazy") == 0) -+ { -+ link_info.flags &= ~(bfd_vma) DF_BIND_NOW; -+ link_info.flags_1 &= ~(bfd_vma) DF_1_NOW; -+ } - else if (strcmp (optarg, "origin") == 0) - { - link_info.flags |= (bfd_vma) DF_ORIGIN; -@@ -1893,6 +1898,7 @@ - fprintf (file, _(" -z execstack\t\tMark executable as requiring executable stack\n")); - fprintf (file, _(" -z initfirst\t\tMark DSO to be initialized first at runtime\n")); - fprintf (file, _(" -z interpose\t\tMark object to interpose all DSOs but executable\n")); -+ fprintf (file, _(" -z lazy\t\tMark object lazy runtime binding (default)\n")); - fprintf (file, _(" -z loadfltr\t\tMark object requiring immediate process\n")); - fprintf (file, _(" -z muldefs\t\tAllow multiple definitions\n")); - fprintf (file, _(" -z nocombreloc\tDon't merge dynamic relocs into one section\n")); -diff -Naur binutils-2.17.orig/ld/ld.texinfo binutils-2.17/ld/ld.texinfo ---- binutils-2.17.orig/ld/ld.texinfo 2006-05-10 13:43:47.000000000 +0000 -+++ binutils-2.17/ld/ld.texinfo 2006-08-13 00:42:56.000000000 +0000 -@@ -962,6 +962,12 @@ - Marks the object that its symbol table interposes before all symbols - but the primary executable. - -+@item lazy -+When generating an executable or shared library, mark it to tell the -+dynamic linker to defer function call resolution to the point when -+the function is called (lazy binding), rather than at load time. -+Lazy binding is the default. -+ - @item loadfltr - Marks the object that its filters be processed immediately at - runtime. diff --git a/pkgs/toolchain/binutils-static/patches/binutils-2.20-pt_pax-1.patch b/pkgs/toolchain/binutils-static/patches/binutils-2.20-pt_pax-1.patch deleted file mode 100644 index 4eee0e6..0000000 --- a/pkgs/toolchain/binutils-static/patches/binutils-2.20-pt_pax-1.patch +++ /dev/null @@ -1,411 +0,0 @@ -diff -Naur binutils-2.19.50.orig/bfd/elf-bfd.h binutils-2.19.50/bfd/elf-bfd.h ---- binutils-2.19.50.orig/bfd/elf-bfd.h 2008-08-20 23:28:58.000000000 +0000 -+++ binutils-2.19.50/bfd/elf-bfd.h 2008-10-05 02:03:46.000000000 +0000 -@@ -1526,6 +1526,9 @@ - /* 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; - -diff -Naur binutils-2.19.50.orig/bfd/elf.c binutils-2.19.50/bfd/elf.c ---- binutils-2.19.50.orig/bfd/elf.c 2008-10-03 09:40:48.000000000 +0000 -+++ binutils-2.19.50/bfd/elf.c 2008-10-05 02:03:46.000000000 +0000 -@@ -1136,6 +1136,7 @@ - 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; -@@ -2436,6 +2437,9 @@ - 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); -@@ -3429,6 +3433,11 @@ - ++segs; - } - -+ { -+ /* We need a PT_PAX_FLAGS segment. */ -+ ++segs; -+ } -+ - for (s = abfd->sections; s != NULL; s = s->next) - { - if ((s->flags & SEC_LOAD) != 0 -@@ -4008,6 +4017,20 @@ - } - } - -+ { -+ 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; - } -@@ -5205,7 +5228,8 @@ - 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 does 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) \ -@@ -5213,6 +5237,7 @@ - && (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 \ -diff -Naur binutils-2.19.50.orig/bfd/elflink.c binutils-2.19.50/bfd/elflink.c ---- binutils-2.19.50.orig/bfd/elflink.c 2008-10-03 09:40:48.000000000 +0000 -+++ binutils-2.19.50/bfd/elflink.c 2008-10-05 02:03:46.000000000 +0000 -@@ -5413,16 +5413,30 @@ - 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) -@@ -5435,7 +5449,11 @@ - 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) -diff -Naur binutils-2.19.50.orig/binutils/readelf.c binutils-2.19.50/binutils/readelf.c ---- binutils-2.19.50.orig/binutils/readelf.c 2008-09-17 07:50:28.000000000 +0000 -+++ binutils-2.19.50/binutils/readelf.c 2008-10-05 02:03:46.000000000 +0000 -@@ -2505,6 +2505,7 @@ - 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)) -diff -Naur binutils-2.19.50.orig/include/bfdlink.h binutils-2.19.50/include/bfdlink.h ---- binutils-2.19.50.orig/include/bfdlink.h 2008-08-17 03:12:50.000000000 +0000 -+++ binutils-2.19.50/include/bfdlink.h 2008-10-05 02:03:46.000000000 +0000 -@@ -319,6 +319,14 @@ - /* 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; - -diff -Naur binutils-2.19.50.orig/include/elf/common.h binutils-2.19.50/include/elf/common.h ---- binutils-2.19.50.orig/include/elf/common.h 2008-08-03 23:20:42.000000000 +0000 -+++ binutils-2.19.50/include/elf/common.h 2008-10-05 02:04:51.000000000 +0000 -@@ -360,6 +360,7 @@ - #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */ - #define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */ - #define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */ -+#define PT_PAX_FLAGS (PT_LOOS + 0x5041580) /* PaX flags */ - - /* Program segment permissions, in program header p_flags field. */ - -@@ -370,6 +371,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 */ -diff -Naur binutils-2.19.50.orig/ld/emultempl/elf32.em binutils-2.19.50/ld/emultempl/elf32.em ---- binutils-2.19.50.orig/ld/emultempl/elf32.em 2008-10-03 09:40:49.000000000 +0000 -+++ binutils-2.19.50/ld/emultempl/elf32.em 2008-10-05 02:03:46.000000000 +0000 -@@ -2123,6 +2123,16 @@ - 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 -@@ -2206,6 +2216,8 @@ - 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")); -@@ -2229,6 +2241,8 @@ - -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 -diff -Naur binutils-2.19.50.orig/ld/ldgram.y binutils-2.19.50/ld/ldgram.y ---- binutils-2.19.50.orig/ld/ldgram.y 2008-07-06 13:38:36.000000000 +0000 -+++ binutils-2.19.50/ld/ldgram.y 2008-10-05 02:03:46.000000000 +0000 -@@ -1112,6 +1112,8 @@ - $$ = 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 (_("\ -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-elf/seg.d binutils-2.19.50/ld/testsuite/ld-elf/seg.d ---- binutils-2.19.50.orig/ld/testsuite/ld-elf/seg.d 2008-02-22 23:10:45.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-elf/seg.d 2008-10-05 02:03:46.000000000 +0000 -@@ -10,5 +10,6 @@ - #... - LOAD .* - LOAD 0x0*001000 0xf*fffff000 0xf*fffff000 0x0*1000 0x0*1000 .* -+ PAX_FLAGS 0x000000 0x00000000 0x00000000 0x00000 0x00000 0x4 - # FRV adds a PT_GNU_STACK header - #... -@@ -17,4 +18,5 @@ - # On MIPS, the first segment is for .reginfo. - #... - 0. reset boot -+ 02 - #pass -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-i386/hidden2.d binutils-2.19.50/ld/testsuite/ld-i386/hidden2.d ---- binutils-2.19.50.orig/ld/testsuite/ld-i386/hidden2.d 2008-03-16 22:26:23.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-i386/hidden2.d 2008-10-05 02:03:46.000000000 +0000 -@@ -8,6 +8,6 @@ - Disassembly of section .text: - - [a-f0-9]+ <bar>: --[ ]*[a-f0-9]+: e8 cf fe ff ff call 0 <bar-0x[a-f0-9]+> -+[ ]*[a-f0-9]+: e8 af fe ff ff call 0 <bar-0x[a-f0-9]+> - [ ]*[a-f0-9]+: c3 ret - #pass -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsbin.rd binutils-2.19.50/ld/testsuite/ld-i386/tlsbin.rd ---- binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsbin.rd 2007-09-30 01:33:14.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-i386/tlsbin.rd 2008-10-05 02:03:46.000000000 +0000 -@@ -44,6 +44,7 @@ - LOAD.* - DYNAMIC.* - TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000 -+ PAX_FLAGS +0x000000 0x00000000 0x00000000 0x00000 0x00000 +0x4 - - Section to Segment mapping: - Segment Sections... -@@ -53,6 +54,7 @@ - 03 +.tdata .dynamic .got .got.plt * - 04 +.dynamic * - 05 +.tdata .tbss * -+ 06 * - - Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: - Offset +Info +Type +Sym.Value +Sym. Name -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsbindesc.rd binutils-2.19.50/ld/testsuite/ld-i386/tlsbindesc.rd ---- binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsbindesc.rd 2008-07-28 18:07:05.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-i386/tlsbindesc.rd 2008-10-05 02:03:46.000000000 +0000 -@@ -42,6 +42,7 @@ - LOAD.* - DYNAMIC.* - TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000 -+ PAX_FLAGS +0x000000 0x00000000 0x00000000 0x00000 0x00000 +0x4 - - Section to Segment mapping: - Segment Sections... -@@ -51,6 +52,7 @@ - 03 +.tdata .dynamic .got .got.plt * - 04 +.dynamic * - 05 +.tdata .tbss * -+ 06 * - - Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: - Offset +Info +Type +Sym.Value +Sym. Name -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsdesc.rd binutils-2.19.50/ld/testsuite/ld-i386/tlsdesc.rd ---- binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsdesc.rd 2007-09-30 01:33:14.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-i386/tlsdesc.rd 2008-10-05 02:03:46.000000000 +0000 -@@ -39,6 +39,7 @@ - LOAD.* - DYNAMIC.* - TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 -+ PAX_FLAGS +0x000000 0x00000000 0x00000000 0x00000 0x00000 +0x4 - - Section to Segment mapping: - Segment Sections... -@@ -46,6 +47,7 @@ - 01 +.tdata .dynamic .got .got.plt * - 02 +.dynamic * - 03 +.tdata .tbss * -+ 04 * - - Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: - Offset +Info +Type +Sym.Value +Sym. Name -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsdesc.sd binutils-2.19.50/ld/testsuite/ld-i386/tlsdesc.sd ---- binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsdesc.sd 2006-10-17 13:41:48.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-i386/tlsdesc.sd 2008-10-05 02:03:46.000000000 +0000 -@@ -14,7 +14,7 @@ - [0-9a-f]+ 6c000000 b4ffffff 4c000000 68000000 .* - [0-9a-f]+ 50000000 70000000 00000000 bcffffff .* - Contents of section .got.plt: -- [0-9a-f]+ b0150000 00000000 00000000 00000000 .* -+ [0-9a-f]+ d0150000 00000000 00000000 00000000 .* - [0-9a-f]+ 20000000 00000000 60000000 00000000 .* - [0-9a-f]+ 00000000 00000000 00000000 00000000 .* - [0-9a-f]+ 40000000 +.* -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsgdesc.rd binutils-2.19.50/ld/testsuite/ld-i386/tlsgdesc.rd ---- binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsgdesc.rd 2007-09-30 01:33:14.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-i386/tlsgdesc.rd 2008-10-05 02:03:46.000000000 +0000 -@@ -36,12 +36,14 @@ - LOAD.* - LOAD.* - DYNAMIC.* -+ PAX_FLAGS +0x000000 0x00000000 0x00000000 0x00000 0x00000 +0x4 - - Section to Segment mapping: - Segment Sections... - 00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text * - 01 +.dynamic .got .got.plt * - 02 +.dynamic * -+ 03 * - - Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 8 entries: - Offset +Info +Type +Sym.Value +Sym. Name -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsnopic.rd binutils-2.19.50/ld/testsuite/ld-i386/tlsnopic.rd ---- binutils-2.19.50.orig/ld/testsuite/ld-i386/tlsnopic.rd 2007-09-30 01:33:14.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-i386/tlsnopic.rd 2008-10-05 02:03:46.000000000 +0000 -@@ -37,6 +37,7 @@ - LOAD.* - DYNAMIC.* - TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+ 0x0+24 R +0x1 -+ PAX_FLAGS +0x000000 0x00000000 0x00000000 0x00000 0x00000 +0x4 - - Section to Segment mapping: - Segment Sections... -@@ -44,6 +45,7 @@ - 01 +.dynamic .got .got.plt * - 02 +.dynamic * - 03 +.tbss * -+ 04 * - - Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: - Offset +Info +Type +Sym.Value +Sym. Name -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-i386/tlspic.rd binutils-2.19.50/ld/testsuite/ld-i386/tlspic.rd ---- binutils-2.19.50.orig/ld/testsuite/ld-i386/tlspic.rd 2007-09-30 01:33:14.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-i386/tlspic.rd 2008-10-05 02:03:46.000000000 +0000 -@@ -40,6 +40,7 @@ - LOAD.* - DYNAMIC.* - TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 -+ PAX_FLAGS +0x000000 0x00000000 0x00000000 0x00000 0x00000 +0x4 - - Section to Segment mapping: - Segment Sections... -@@ -47,6 +48,7 @@ - 01 +.tdata .dynamic .got .got.plt * - 02 +.dynamic * - 03 +.tdata .tbss * -+ 04 * - - Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 26 entries: - Offset +Info +Type +Sym.Value +Sym. Name -diff -Naur binutils-2.19.50.orig/ld/testsuite/ld-scripts/empty-aligned.d binutils-2.19.50/ld/testsuite/ld-scripts/empty-aligned.d ---- binutils-2.19.50.orig/ld/testsuite/ld-scripts/empty-aligned.d 2005-08-18 07:51:07.000000000 +0000 -+++ binutils-2.19.50/ld/testsuite/ld-scripts/empty-aligned.d 2008-10-05 02:03:46.000000000 +0000 -@@ -7,7 +7,9 @@ - Program Headers: - +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg +Align - +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ [RWE ]+ +0x[0-9a-f]+ -+ +PAX_FLAGS +0x000000 0x00000000 0x00000000 0x00000 0x00000 +0x4 - - Section to Segment mapping: - +Segment Sections... - +00 +.text -+ +01 + diff --git a/pkgs/toolchain/binutils/patches/binutils-2.19.1-asprintf_fix.patch b/pkgs/toolchain/binutils/patches/binutils-2.19.1-asprintf_fix.patch new file mode 100644 index 0000000..102ec2e --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.19.1-asprintf_fix.patch @@ -0,0 +1,16 @@ +https://hardened.gentooexperimental.org/trac/secure/raw-attachment/ticket/33... + +--- a/include/libiberty.h.orig 2007-02-09 15:29:21.000000000 +0000 ++++ b/include/libiberty.h 2008-07-25 21:17:25.000000000 +0000 +@@ -554,8 +554,11 @@ + /* Like sprintf but provides a pointer to malloc'd storage, which must + be freed by the caller. */ + ++/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */ ++#ifndef asprintf + extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; + #endif ++#endif + + #if !HAVE_DECL_VASPRINTF + /* Like vsprintf but provides a pointer to malloc'd storage, which diff --git a/pkgs/toolchain/binutils/patches/binutils-2.19.1-lazy-1.patch.off b/pkgs/toolchain/binutils/patches/binutils-2.19.1-lazy-1.patch.off deleted file mode 100644 index e9e8411..0000000 --- a/pkgs/toolchain/binutils/patches/binutils-2.19.1-lazy-1.patch.off +++ /dev/null @@ -1,61 +0,0 @@ -Submitted By: Robert Connolly robert@linuxfromscratch.org (ashes) -Date: 2006-08-12 -Initial Package Version: 2.17 -Upstream Status: From Upstream -Origin: http://sourceware.org/ml/binutils/2006-06/msg00218.html - http://sourceware.org/ml/binutils-cvs/2006-06/msg00095.html -Description: This adds -z lazy option, inverse of -z now. - -diff -Naur binutils-2.17.orig/ld/ChangeLog binutils-2.17/ld/ChangeLog ---- binutils-2.17.orig/ld/ChangeLog 2006-06-12 13:07:28.000000000 +0000 -+++ binutils-2.17/ld/ChangeLog 2006-08-13 00:42:29.000000000 +0000 -@@ -1,3 +1,10 @@ -+2006-06-14 Kevin F. Quinn kevquinn@gentoo.org -+ -+ * ld.texinfo: Document new -z lazy option. -+ * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle -+ new option. -+ (gld${EMULATION_NAME}_list_options): Update help text. -+ - 2006-06-12 Fred Fish fnf@specifix.com - - * emulparams/elf32bmip.sh (OTHER_SECTIONS): Keep the -diff -Naur binutils-2.17.orig/ld/emultempl/elf32.em binutils-2.17/ld/emultempl/elf32.em ---- binutils-2.17.orig/ld/emultempl/elf32.em 2006-06-12 13:05:04.000000000 +0000 -+++ binutils-2.17/ld/emultempl/elf32.em 2006-08-13 00:43:21.000000000 +0000 -@@ -1826,6 +1826,11 @@ - link_info.flags |= (bfd_vma) DF_BIND_NOW; - link_info.flags_1 |= (bfd_vma) DF_1_NOW; - } -+ else if (strcmp (optarg, "lazy") == 0) -+ { -+ link_info.flags &= ~(bfd_vma) DF_BIND_NOW; -+ link_info.flags_1 &= ~(bfd_vma) DF_1_NOW; -+ } - else if (strcmp (optarg, "origin") == 0) - { - link_info.flags |= (bfd_vma) DF_ORIGIN; -@@ -1893,6 +1898,7 @@ - fprintf (file, _(" -z execstack\t\tMark executable as requiring executable stack\n")); - fprintf (file, _(" -z initfirst\t\tMark DSO to be initialized first at runtime\n")); - fprintf (file, _(" -z interpose\t\tMark object to interpose all DSOs but executable\n")); -+ fprintf (file, _(" -z lazy\t\tMark object lazy runtime binding (default)\n")); - fprintf (file, _(" -z loadfltr\t\tMark object requiring immediate process\n")); - fprintf (file, _(" -z muldefs\t\tAllow multiple definitions\n")); - fprintf (file, _(" -z nocombreloc\tDon't merge dynamic relocs into one section\n")); -diff -Naur binutils-2.17.orig/ld/ld.texinfo binutils-2.17/ld/ld.texinfo ---- binutils-2.17.orig/ld/ld.texinfo 2006-05-10 13:43:47.000000000 +0000 -+++ binutils-2.17/ld/ld.texinfo 2006-08-13 00:42:56.000000000 +0000 -@@ -962,6 +962,12 @@ - Marks the object that its symbol table interposes before all symbols - but the primary executable. - -+@item lazy -+When generating an executable or shared library, mark it to tell the -+dynamic linker to defer function call resolution to the point when -+the function is called (lazy binding), rather than at load time. -+Lazy binding is the default. -+ - @item loadfltr - Marks the object that its filters be processed immediately at - runtime. diff --git a/pkgs/toolchain/binutils/patches/binutils-2.19.1-ld_makefile.patch b/pkgs/toolchain/binutils/patches/binutils-2.19.1-ld_makefile.patch new file mode 100644 index 0000000..4624f29 --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.19.1-ld_makefile.patch @@ -0,0 +1,54 @@ +#!/bin/sh -e +## 001_ld_makefile_patch.dpatch +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Description: correct where ld scripts are installed +## DP: Author: Chris Chimelis chris@debian.org +## DP: Upstream status: N/A +## DP: Date: ?? + +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@ +Index: binutils-2.18/ld/Makefile.am +=================================================================== +--- binutils-2.18.orig/ld/Makefile.am 2007-06-28 09:19:34.837940280 +0200 ++++ binutils-2.18/ld/Makefile.am 2007-06-28 09:19:35.795794664 +0200 +@@ -18,7 +18,7 @@ + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +Index: binutils-2.18/ld/Makefile.in +=================================================================== +--- binutils-2.18.orig/ld/Makefile.in 2007-06-28 09:19:34.844939216 +0200 ++++ binutils-2.18/ld/Makefile.in 2007-06-28 09:19:35.796794512 +0200 +@@ -287,7 +287,7 @@ + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include diff --git a/pkgs/toolchain/binutils/patches/binutils-2.20-ipfire-ld-elf-1.patch b/pkgs/toolchain/binutils/patches/binutils-2.20-ipfire-ld-elf-1.patch new file mode 100644 index 0000000..88e539d --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.20-ipfire-ld-elf-1.patch @@ -0,0 +1,15 @@ +diff -Nur a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp +--- a/ld/testsuite/ld-elf/elf.exp 2010-03-17 10:59:03.000000000 +0100 ++++ b/ld/testsuite/ld-elf/elf.exp 2010-03-17 11:00:31.000000000 +0100 +@@ -70,11 +70,8 @@ + + set array_tests { + {"preinit array" "" "" {preinit.c} "preinit" "preinit.out"} +- {"static preinit array" "-static" "" {preinit.c} "preinit" "preinit.out"} + {"init array" "" "" {init.c} "init" "init.out"} +- {"static init array" "-static" "" {init.c} "init" "init.out"} + {"fini array" "" "" {fini.c} "fini" "fini.out"} +- {"static fini array" "-static" "" {fini.c} "fini" "fini.out"} + } + + # NetBSD ELF systems do not currently support the .*_array sections. diff --git a/pkgs/toolchain/binutils/patches/binutils-2.20-objcopy.patch b/pkgs/toolchain/binutils/patches/binutils-2.20-objcopy.patch new file mode 100644 index 0000000..62c90c7 --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.20-objcopy.patch @@ -0,0 +1,24 @@ +diff --git a/binutils/objcopy.c b/binutils/objcopy.c +index 9732b86..dec0feb 100644 +--- a/binutils/objcopy.c ++++ b/binutils/objcopy.c +@@ -2287,6 +2287,18 @@ copy_file (const char *input_filename, const char *output_filename, + + status = 1; + } ++ ++ if (status == 0) ++ { ++ struct stat statbuf; ++ ++ /* No need to check the return value of stat(). It has already ++ been checked in get_file_size(). */ ++ stat (input_filename, &statbuf); ++ ++ /* Try to preserve the permission bits. */ ++ chmod (output_filename, statbuf.st_mode); ++ } + } + + /* Add a name to the section renaming list. */ + diff --git a/pkgs/toolchain/binutils/patches/binutils-2.20.1-all_dobumen-new-dtags-behaviour.patch b/pkgs/toolchain/binutils/patches/binutils-2.20.1-all_dobumen-new-dtags-behaviour.patch new file mode 100644 index 0000000..3587c99 --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.20.1-all_dobumen-new-dtags-behaviour.patch @@ -0,0 +1,16 @@ +Index: binutils-2.19.51.0.5/ld/ld.texinfo +=================================================================== +--- binutils-2.19.51.0.5.orig/ld/ld.texinfo ++++ binutils-2.19.51.0.5/ld/ld.texinfo +@@ -2036,8 +2036,9 @@ This linker can create the new dynamic t + 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 IPFire, 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} diff --git a/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-flexible-tests.patch b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-flexible-tests.patch new file mode 100644 index 0000000..c95e369 --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-flexible-tests.patch @@ -0,0 +1,82 @@ +making some of the address matches more flexible fixes tests when using +pax/relro/hash patches + +--- binutils/ld/testsuite/ld-i386/hidden2.d ++++ binutils/ld/testsuite/ld-i386/hidden2.d +@@ -8,6 +8,6 @@ + Disassembly of section .text: + + [a-f0-9]+ <bar>: +-[ ]*[a-f0-9]+: e8 af fe ff ff call 0 <bar-0x[a-f0-9]+> ++[ ]*[a-f0-9]+: e8 ([a-f0-9]{2} ){2}ff ff call 0 <bar-0x[a-f0-9]+> + [ ]*[a-f0-9]+: c3 ret + #pass +--- binutils/ld/testsuite/ld-x86-64/hidden2.d ++++ binutils/ld/testsuite/ld-x86-64/hidden2.d +@@ -8,6 +8,6 @@ + Disassembly of section .text: + + [a-f0-9]+ <bar>: +-[ ]*[a-f0-9]+: e8 33 fe ff ff callq 0 <bar-0x[a-f0-9]+> ++[ ]*[a-f0-9]+: e8 ([a-f0-9]{2} ){2}ff ff callq 0 <bar-0x[a-f0-9]+> + [ ]*[a-f0-9]+: c3 retq + #pass +--- binutils/ld/testsuite/ld-x86-64/protected3.d ++++ binutils/ld/testsuite/ld-x86-64/protected3.d +@@ -8,6 +8,6 @@ + Disassembly of section .text: + + 0+[a-f0-9]+ <bar>: +-[ ]*[a-f0-9]+: 8b 05 ce 00 20 00 mov 0x[a-f0-9]+(%rip),%eax # [a-f0-9]+ <foo> ++[ ]*[a-f0-9]+: 8b 05 ([a-f0-9]{2} ){2}20 00 mov 0x[a-f0-9]+(%rip),%eax # [a-f0-9]+ <foo> + [ ]*[a-f0-9]+: c3 retq + #pass +--- binutils/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d ++++ binutils/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d +@@ -3,5 +3,5 @@ + #target: x86_64-*-* i?86-*-* + + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*(+0x200|)@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*(+0x[a-f0-9]+|)@plt> + #pass +--- binutils/ld/testsuite/ld-ifunc/ifunc-1-x86.d ++++ binutils/ld/testsuite/ld-ifunc/ifunc-1-x86.d +@@ -3,5 +3,5 @@ + #target: x86_64-*-* i?86-*-* + + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*(+0x220|)@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*(+0x[a-f0-9]+|)@plt> + #pass +--- binutils/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d ++++ binutils/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d +@@ -4,6 +4,6 @@ + #target: x86_64-*-* + + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*+0x220@plt> +-[ \t0-9a-f]+:[ \t0-9a-f]+lea[ \t]+.*(%rip),%rax.*[ \t0-9a-fq]+<*ABS*+0x220@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*+0x[a-f0-9]+@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+lea[ \t]+.*(%rip),%rax.*[ \t0-9a-fq]+<*ABS*+0x[a-f0-9]+@plt> + #pass +--- binutils/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d ++++ binutils/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d +@@ -4,6 +4,6 @@ + #target: x86_64-*-* + + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*+0x220@plt> +-[ \t0-9a-f]+:[ \t0-9a-f]+lea[ \t]+.*(%rip),%rax.*[ \t0-9a-fq]+<*ABS*+0x220@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*+0x[a-f0-9]+@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+lea[ \t]+.*(%rip),%rax.*[ \t0-9a-fq]+<*ABS*+0x[a-f0-9]+@plt> + #pass +--- binutils/ld/testsuite/ld-ifunc/ifunc-3a-x86.d ++++ binutils/ld/testsuite/ld-ifunc/ifunc-3a-x86.d +@@ -4,5 +4,5 @@ + #target: x86_64-*-* i?86-*-* + + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*(+0x258|)@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<*ABS*(+0x[a-f0-9]+|)@plt> + #pass diff --git a/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-rpath_envvar-smack.patch b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-rpath_envvar-smack.patch new file mode 100644 index 0000000..2e90f0c --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-rpath_envvar-smack.patch @@ -0,0 +1,13 @@ +http://sourceware.org/ml/binutils/2007-07/msg00401.html +http://sourceware.org/bugzilla/show_bug.cgi?id=4970 + +--- a/configure ++++ b/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 diff --git a/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-use-new-ld-dtags.patch b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-use-new-ld-dtags.patch new file mode 100644 index 0000000..84e20f7 --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-use-new-ld-dtags.patch @@ -0,0 +1,10 @@ +--- 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; diff --git a/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-use-relro.patch b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-use-relro.patch new file mode 100644 index 0000000..db3276b --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-use-relro.patch @@ -0,0 +1,9 @@ +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; diff --git a/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-warn-textrel.patch b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-warn-textrel.patch new file mode 100644 index 0000000..c8783a2 --- /dev/null +++ b/pkgs/toolchain/binutils/patches/binutils-2.20.1-gentoo-warn-textrel.patch @@ -0,0 +1,85 @@ +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. + +--- binutils/bfd/elflink.c ++++ binutils/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; + } + } +--- binutils/ld/ldmain.c ++++ binutils/ld/ldmain.c +@@ -282,2 +282,3 @@ + link_info.spare_dynamic_tags = 5; ++ link_info.warn_shared_textrel = TRUE; + link_info.sharable_sections = FALSE; +--- binutils/ld/testsuite/lib/ld-lib.exp ++++ binutils/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 "^.*ld-new: warning: creating a DT_TEXTREL in object." $exec_output "\1" exec_output ++ + if [string match "" $exec_output] then { + return 1 + } else { +@@ -899,6 +903,10 @@ + remote_file build delete "ld.tmp" + set cmdret [lindex $cmdret 0] + ++ # Gentoo tweak: ++ # We want to ignore TEXTREL warnings since we force enable them by default ++ regsub -all "^.*ld-new: warning: creating a DT_TEXTREL in object." $comp_output "\1" comp_output ++ + if { $cmdret == 0 && $run_objcopy } { + set infile $objfile + set objfile "tmpdir/dump1" + +this sucks, but the warn test explicitly checks for textrels, and we +change/filter that output with the above hunks + +--- binutils/ld/testsuite/ld-i386/i386.exp ++++ binutils/ld/testsuite/ld-i386/i386.exp +@@ -176,7 +176,7 @@ + run_dump_test "pcrel16" + run_dump_test "pcrel16abs" + run_dump_test "alloc" +-run_dump_test "warn1" ++#run_dump_test "warn1" + run_dump_test "tlsgd2" + run_dump_test "tlsie2" + run_dump_test "tlsie3"
hooks/post-receive -- IPFire 3.x development tree