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 ce0a9c936db28a7cac63dcbb06455c7288b75a27 (commit) via 740298e59ceb7f1ae4adb54903a53d90dbf62aa8 (commit) via a848ed159c050df2a86117a9cf187d729768b24c (commit) via 05c35d87640b27e6c3e0ef9bcbd685c950d9702e (commit) via 46a22b4260923645cd16d73cf7e45d041e04f823 (commit) via 49b8c924e8ab46db2d5b60d3fb9ae55c33da6635 (commit) via 8fcebd664796ff58ee8eae3785d199aea8e65a83 (commit) via d61d76c4ee3d4afece98ef4b2d18d1f357bebabd (commit) via 5b488d34f9fb5473d26db4c39b8fcb587a174dad (commit) from 8beee1803739ba0aa98d27d1121fb16807e7c28c (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 ce0a9c936db28a7cac63dcbb06455c7288b75a27 Merge: 740298e 5b488d3 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Apr 22 01:40:13 2011 +0200
Merge remote-tracking branch 'maniacikarus/dhcp'
commit 740298e59ceb7f1ae4adb54903a53d90dbf62aa8 Merge: a848ed1 d61d76c Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Apr 22 01:40:08 2011 +0200
Merge remote-tracking branch 'maniacikarus/less'
commit a848ed159c050df2a86117a9cf187d729768b24c Merge: 05c35d8 8fcebd6 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Apr 22 01:40:03 2011 +0200
Merge remote-tracking branch 'stevee/satsolver'
commit 05c35d87640b27e6c3e0ef9bcbd685c950d9702e Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Apr 22 01:38:56 2011 +0200
gcc: Fix compilation.
gcc was built without proper SSP and PIE support and the compiler itself was compiled without PIE as well.
commit 46a22b4260923645cd16d73cf7e45d041e04f823 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Apr 22 01:38:11 2011 +0200
binutils: Update to 2.21.51.0.8.
commit 49b8c924e8ab46db2d5b60d3fb9ae55c33da6635 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Apr 22 01:36:54 2011 +0200
build-essentials: Fix bug that missed EXEC binaries and did not find them.
commit 8fcebd664796ff58ee8eae3785d199aea8e65a83 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Apr 21 20:08:35 2011 +0200
libsatsolver: Add patches for shared and versioned libraries.
http://lists.opensuse.org/zypp-devel/2011-04/msg00011.html
commit d61d76c4ee3d4afece98ef4b2d18d1f357bebabd Author: Christian Schmidt maniacikarus@ipfire.org Date: Mon Apr 18 18:52:12 2011 +0200
less: Update to version 443.
Fixes: #184
commit 5b488d34f9fb5473d26db4c39b8fcb587a174dad Author: Christian Schmidt maniacikarus@ipfire.org Date: Mon Apr 18 07:33:07 2011 +0200
dhcp: Update to current version 4.2.1-P1.
Fixes: #171
-----------------------------------------------------------------------
Summary of changes: pkgs/binutils/binutils.nm | 10 +- .../patches/binutils-2.20-ipfire-ld-elf-1.patch | 15 - pkgs/binutils/patches/binutils-2.20-pt_pax-1.patch | 411 ------------------ .../patches/binutils-2.20.51.0.2-build-id.patch | 51 --- .../patches/binutils-2.20.51.0.2-build-id.patch0 | 47 ++ ...inutils-2.20.51.0.2-pt-pax-flags-20091010.patch | 238 +++++++++++ .../patches/binutils-2.20.51.0.2-version.patch | 61 +++ pkgs/build-essentials/build-essentials.nm | 2 +- .../buildsystem-tools/functions-files | 2 +- .../quality-agent/quality-agent.d/050-relro | 3 + pkgs/dhcp/dhcp.nm | 2 +- pkgs/gcc/gcc.nm | 29 +- pkgs/less/less.nm | 4 +- pkgs/libsatsolver/libsatsolver.nm | 2 +- .../patches/0001-Build-only-libraries.patch | 26 ++ ...er-scripts-that-do-only-export-the-needed.patch | 439 ++++++++++++++++++++ ...e-libsatsolver-ext-a-versioned-shared-lib.patch | 94 +++++ .../patches/sat-solver-only-shared-libs.patch | 83 ---- 18 files changed, 944 insertions(+), 575 deletions(-) delete mode 100644 pkgs/binutils/patches/binutils-2.20-ipfire-ld-elf-1.patch delete mode 100644 pkgs/binutils/patches/binutils-2.20-pt_pax-1.patch delete mode 100644 pkgs/binutils/patches/binutils-2.20.51.0.2-build-id.patch create mode 100644 pkgs/binutils/patches/binutils-2.20.51.0.2-build-id.patch0 create mode 100644 pkgs/binutils/patches/binutils-2.20.51.0.2-pt-pax-flags-20091010.patch create mode 100644 pkgs/binutils/patches/binutils-2.20.51.0.2-version.patch create mode 100644 pkgs/libsatsolver/patches/0001-Build-only-libraries.patch create mode 100644 pkgs/libsatsolver/patches/0001-Create-linker-scripts-that-do-only-export-the-needed.patch create mode 100644 pkgs/libsatsolver/patches/0001-Make-libsatsolver-ext-a-versioned-shared-lib.patch delete mode 100644 pkgs/libsatsolver/patches/sat-solver-only-shared-libs.patch
Difference in files: diff --git a/pkgs/binutils/binutils.nm b/pkgs/binutils/binutils.nm index bebdb4d..ca7027d 100644 --- a/pkgs/binutils/binutils.nm +++ b/pkgs/binutils/binutils.nm @@ -25,8 +25,8 @@ include $(PKGROOT)/Include
PKG_NAME = binutils -PKG_VER = 2.20.1 -PKG_REL = 0 +PKG_VER = 2.21.51.0.8 +PKG_REL = 1
PKG_MAINTAINER = Michael Tremer michael.tremer@ipfire.org PKG_GROUPS = Development/Tools @@ -39,9 +39,9 @@ define PKG_DESCRIPTION tools for the manipulation of object code in various object file formats. endef
-PKG_BUILD_DEPS+= dejagnu texinfo zlib-devel +PKG_BUILD_DEPS+= bison dejagnu flex gcc-c++ texinfo zlib-devel
-PKG_TARBALL += $(THISAPP).tar.bz2 +PKG_TARBALL += $(THISAPP).tar.gz
define STAGE_PREPARE_CMDS -mkdir -pv $(DIR_SRC)/binutils-build @@ -50,6 +50,8 @@ define STAGE_PREPARE_CMDS # one is installed later on in the Autoconf instructions: cd $(DIR_APP) && rm -fv etc/standards.info cd $(DIR_APP) && sed -e '/^INFO/s/standards.info //' -i etc/Makefile.in + + cd $(DIR_APP) && sed -i -e 's/%''{release}/$(PKG_RELEASE)/g' bfd/Makefile{.am,.in} endef
BINUTILS_TARGET_PLATFORM = $(subst -gnu,,$(DISTRO_MACHINE)) diff --git a/pkgs/binutils/patches/binutils-2.20-ipfire-ld-elf-1.patch b/pkgs/binutils/patches/binutils-2.20-ipfire-ld-elf-1.patch deleted file mode 100644 index 88e539d..0000000 --- a/pkgs/binutils/patches/binutils-2.20-ipfire-ld-elf-1.patch +++ /dev/null @@ -1,15 +0,0 @@ -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/binutils/patches/binutils-2.20-pt_pax-1.patch b/pkgs/binutils/patches/binutils-2.20-pt_pax-1.patch deleted file mode 100644 index 4eee0e6..0000000 --- a/pkgs/binutils/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/binutils/patches/binutils-2.20.51.0.2-build-id.patch b/pkgs/binutils/patches/binutils-2.20.51.0.2-build-id.patch deleted file mode 100644 index 02abef4..0000000 --- a/pkgs/binutils/patches/binutils-2.20.51.0.2-build-id.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff -rcp ../binutils-2.20.51.0.7.original/bfd/elfcode.h ./bfd/elfcode.h -*** ../binutils-2.20.51.0.7.original/bfd/elfcode.h 2010-04-08 15:29:32.000000000 +0100 ---- ./bfd/elfcode.h 2010-04-08 15:29:39.000000000 +0100 -*************** elf_checksum_contents (bfd *abfd, -*** 1188,1193 **** ---- 1188,1211 ---- - - if (i_shdr.contents) - (*process) (i_shdr.contents, i_shdr.sh_size, arg); -+ else -+ { -+ asection *sec; -+ -+ sec = bfd_section_from_elf_index (abfd, count); -+ if (sec != NULL) -+ { -+ if (sec->contents == NULL) -+ { -+ /* Force rereading from file. */ -+ sec->flags &= ~SEC_IN_MEMORY; -+ if (! bfd_malloc_and_get_section (abfd, sec, & sec->contents)) -+ continue; -+ } -+ if (sec->contents != NULL) -+ (*process) (sec->contents, i_shdr.sh_size, arg); -+ } -+ } - } - - return TRUE; -diff -rcp ../binutils-2.20.51.0.7.original/bfd/section.c ./bfd/section.c -*** ../binutils-2.20.51.0.7.original/bfd/section.c 2010-04-08 15:29:32.000000000 +0100 ---- ./bfd/section.c 2010-04-08 15:29:39.000000000 +0100 -*************** bfd_malloc_and_get_section (bfd *abfd, s -*** 1488,1494 **** - return TRUE; - - p = (bfd_byte *) -! bfd_malloc (sec->rawsize > sec->size ? sec->rawsize : sec->size); - if (p == NULL) - return FALSE; - *buf = p; ---- 1488,1494 ---- - return TRUE; - - p = (bfd_byte *) -! bfd_zmalloc (sec->rawsize > sec->size ? sec->rawsize : sec->size); - if (p == NULL) - return FALSE; - *buf = p; -diff -rcp ../binutils-2.20.51.0.7.original/bfd/section.c.orig ./bfd/section.c.orig diff --git a/pkgs/binutils/patches/binutils-2.20.51.0.2-build-id.patch0 b/pkgs/binutils/patches/binutils-2.20.51.0.2-build-id.patch0 new file mode 100644 index 0000000..f602583 --- /dev/null +++ b/pkgs/binutils/patches/binutils-2.20.51.0.2-build-id.patch0 @@ -0,0 +1,47 @@ +--- bfd/compress.c.jj 2010-12-24 11:40:19.000000000 +0100 ++++ bfd/compress.c 2011-01-28 15:40:19.869777126 +0100 +@@ -174,7 +174,7 @@ bfd_get_full_section_contents (bfd *abfd + case COMPRESS_SECTION_NONE: + if (p == NULL) + { +- p = (bfd_byte *) bfd_malloc (sz); ++ p = (bfd_byte *) bfd_zmalloc (sz); + if (p == NULL) + return FALSE; + } +@@ -214,7 +214,7 @@ bfd_get_full_section_contents (bfd *abfd + if (!ret) + goto fail_compressed; + +- uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size); ++ uncompressed_buffer = (bfd_byte *) bfd_zmalloc (uncompressed_size); + if (uncompressed_buffer == NULL) + goto fail_compressed; + +--- bfd/elfcode.h.jj 2010-12-31 03:43:21.000000000 +0100 ++++ bfd/elfcode.h 2011-01-28 15:34:39.055388479 +0100 +@@ -1158,6 +1158,24 @@ elf_checksum_contents (bfd *abfd, + + if (i_shdr.contents) + (*process) (i_shdr.contents, i_shdr.sh_size, arg); ++ else ++ { ++ asection *sec; ++ ++ sec = bfd_section_from_elf_index (abfd, count); ++ if (sec != NULL) ++ { ++ if (sec->contents == NULL) ++ { ++ /* Force rereading from file. */ ++ sec->flags &= ~SEC_IN_MEMORY; ++ if (! bfd_malloc_and_get_section (abfd, sec, & sec->contents)) ++ continue; ++ } ++ if (sec->contents != NULL) ++ (*process) (sec->contents, i_shdr.sh_size, arg); ++ } ++ } + } + + return TRUE; diff --git a/pkgs/binutils/patches/binutils-2.20.51.0.2-pt-pax-flags-20091010.patch b/pkgs/binutils/patches/binutils-2.20.51.0.2-pt-pax-flags-20091010.patch new file mode 100644 index 0000000..460484b --- /dev/null +++ b/pkgs/binutils/patches/binutils-2.20.51.0.2-pt-pax-flags-20091010.patch @@ -0,0 +1,238 @@ +--- 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 (_("\ diff --git a/pkgs/binutils/patches/binutils-2.20.51.0.2-version.patch b/pkgs/binutils/patches/binutils-2.20.51.0.2-version.patch new file mode 100644 index 0000000..9f728df --- /dev/null +++ b/pkgs/binutils/patches/binutils-2.20.51.0.2-version.patch @@ -0,0 +1,61 @@ +diff -rcp ../binutils-2.20.51.0.7.original/bfd/Makefile.am ./bfd/Makefile.am +*** ../binutils-2.20.51.0.7.original/bfd/Makefile.am 2010-04-08 15:07:55.000000000 +0100 +--- ./bfd/Makefile.am 2010-04-08 15:23:14.000000000 +0100 +*************** bfdver.h: $(srcdir)/version.h $(srcdir)/ +*** 953,964 **** + report_bugs_to=""$(REPORT_BUGS_TO)"" ;\ + if test "x$(RELEASE)" = x ; then \ + bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\ +! bfd_version_string=""$(VERSION).$${bfd_version_date}"" ;\ +! bfd_soversion="$(VERSION).$${bfd_version_date}" ;\ + fi ;\ + sed -e "s,@bfd_version@,$$bfd_version," \ + -e "s,@bfd_version_string@,$$bfd_version_string," \ +! -e "s,@bfd_version_package@,$$bfd_version_package," \ + -e "s,@report_bugs_to@,$$report_bugs_to," \ + < $(srcdir)/version.h > $@; \ + echo "$${bfd_soversion}" > libtool-soversion +--- 953,964 ---- + report_bugs_to=""$(REPORT_BUGS_TO)"" ;\ + if test "x$(RELEASE)" = x ; then \ + bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\ +! bfd_version_string=""$(VERSION)-%{release} $${bfd_version_date}"" ;\ +! bfd_soversion="$(VERSION)-%{release}" ;\ + fi ;\ + sed -e "s,@bfd_version@,$$bfd_version," \ + -e "s,@bfd_version_string@,$$bfd_version_string," \ +! -e "s,@bfd_version_package@,"version "," \ + -e "s,@report_bugs_to@,$$report_bugs_to," \ + < $(srcdir)/version.h > $@; \ + echo "$${bfd_soversion}" > libtool-soversion +diff -rcp ../binutils-2.20.51.0.7.original/bfd/Makefile.in ./bfd/Makefile.in +*** ../binutils-2.20.51.0.7.original/bfd/Makefile.in 2010-04-08 15:07:55.000000000 +0100 +--- ./bfd/Makefile.in 2010-04-08 15:23:14.000000000 +0100 +*************** bfdver.h: $(srcdir)/version.h $(srcdir)/ +*** 1982,1993 **** + report_bugs_to=""$(REPORT_BUGS_TO)"" ;\ + if test "x$(RELEASE)" = x ; then \ + bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\ +! bfd_version_string=""$(VERSION).$${bfd_version_date}"" ;\ +! bfd_soversion="$(VERSION).$${bfd_version_date}" ;\ + fi ;\ + sed -e "s,@bfd_version@,$$bfd_version," \ + -e "s,@bfd_version_string@,$$bfd_version_string," \ +! -e "s,@bfd_version_package@,$$bfd_version_package," \ + -e "s,@report_bugs_to@,$$report_bugs_to," \ + < $(srcdir)/version.h > $@; \ + echo "$${bfd_soversion}" > libtool-soversion +--- 1982,1993 ---- + report_bugs_to=""$(REPORT_BUGS_TO)"" ;\ + if test "x$(RELEASE)" = x ; then \ + bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\ +! bfd_version_string=""$(VERSION)-%{release} $${bfd_version_date}"" ;\ +! bfd_soversion="$(VERSION)-%{release}" ;\ + fi ;\ + sed -e "s,@bfd_version@,$$bfd_version," \ + -e "s,@bfd_version_string@,$$bfd_version_string," \ +! -e "s,@bfd_version_package@,"version "," \ + -e "s,@report_bugs_to@,$$report_bugs_to," \ + < $(srcdir)/version.h > $@; \ + echo "$${bfd_soversion}" > libtool-soversion + diff --git a/pkgs/build-essentials/build-essentials.nm b/pkgs/build-essentials/build-essentials.nm index 5c89979..085b050 100644 --- a/pkgs/build-essentials/build-essentials.nm +++ b/pkgs/build-essentials/build-essentials.nm @@ -26,7 +26,7 @@ include $(PKGROOT)/Include
PKG_NAME = build-essentials PKG_VER = $(DISTRO_VERSION) -PKG_REL = 14 +PKG_REL = 15 PKG_EPOCH = 1 PKG_ARCH = noarch
diff --git a/pkgs/build-essentials/buildsystem-tools/functions-files b/pkgs/build-essentials/buildsystem-tools/functions-files index 41ce3be..05920c8 100644 --- a/pkgs/build-essentials/buildsystem-tools/functions-files +++ b/pkgs/build-essentials/buildsystem-tools/functions-files @@ -179,7 +179,7 @@ function find_elf_files() { for dir in ${dirs}; do dir="${prefix}${dir}" for file in $(find ${dir} -type f 2>/dev/null); do - if file_is_elf ${file} && file_is_shared_object ${file} && ! file_is_static ${file}; then + if file_is_elf ${file} && ! file_is_static ${file}; then files="${files} ${file}" fi done diff --git a/pkgs/build-essentials/quality-agent/quality-agent.d/050-relro b/pkgs/build-essentials/quality-agent/quality-agent.d/050-relro index f011056..e42e8ff 100755 --- a/pkgs/build-essentials/quality-agent/quality-agent.d/050-relro +++ b/pkgs/build-essentials/quality-agent/quality-agent.d/050-relro @@ -16,6 +16,9 @@ function check() { continue fi
+ # Skip all files that are not a shared object. + file_is_shared_object ${file} || continue + if ! file_is_relro_full ${file}; then if [ "${QUALITY_AGENT_PERMIT_NOT_FULL_RELRO}" = "yes" ]; then log_warning " Is not full relro: ${file}" diff --git a/pkgs/dhcp/dhcp.nm b/pkgs/dhcp/dhcp.nm index c209da7..1d4a422 100644 --- a/pkgs/dhcp/dhcp.nm +++ b/pkgs/dhcp/dhcp.nm @@ -25,7 +25,7 @@ include $(PKGROOT)/Include
PKG_NAME = dhcp -PKG_VER = 4.2.1 +PKG_VER = 4.2.1-P1 PKG_REL = 1
PKG_MAINTAINER = diff --git a/pkgs/gcc/gcc.nm b/pkgs/gcc/gcc.nm index e30eff4..5332ff5 100644 --- a/pkgs/gcc/gcc.nm +++ b/pkgs/gcc/gcc.nm @@ -26,7 +26,7 @@ include $(PKGROOT)/Include
PKG_NAME = gcc PKG_VER = 4.6.0 -PKG_REL = 1 +PKG_REL = 2
PKG_MAINTAINER = Michael Tremer michael.tremer@ipfire.org PKG_GROUPS = Development/Compilers @@ -39,9 +39,12 @@ define PKG_DESCRIPTION You'll need this package in order to compile C code. endef
-PKG_BUILD_DEPS+= autogen cloog-devel dejagnu elfutils-devel expect gmp-devel \ - libffi-devel mpc-devel mpfr-devel ppl-devel=0.10.2-0.ip3 texinfo zlib-devel -PKG_DEPS-gcc += binutils libgcc-devel cloog>=0.15 +BINUTILS_VER = 2.21.51.0.8-1 + +PKG_BUILD_DEPS+= autogen binutils>=$(BINUTILS_VER) cloog-devel dejagnu \ + elfutils-devel expect flex gmp-devel libffi-devel mpc-devel mpfr-devel \ + ppl-devel=0.10.2-0.ip3 texinfo zlib-devel +PKG_DEPS-gcc += binutils>=$(BINUTILS_VER) libgcc-devel cloog>=0.15
# Make the GCC target platform GCC_TARGET_PLATFORM = $(subst -gnu,,$(DISTRO_MACHINE)) @@ -61,6 +64,8 @@ CFLAGS := $(subst -m64,,$(CFLAGS)) # Remove -march=i686 CFLAGS := $(subst -march=i686,,$(CFLAGS))
+HARD_CFLAGS = -DEFAULT_PIE_SSP -DEFAULT_RELRO -DEFAULT_BIND_NOW + export CFLAGS export CXXFLAGS = $(subst -Wall,,$(CFLAGS))
@@ -162,6 +167,20 @@ define STAGE_PREPARE_CMDS
cd $(DIR_APP) && sed -i gcc/Makefile.in \ -e "s/-fno-exceptions/& -fno-asynchronous-unwind-tables/" + + # we want to be able to control the pie patch logic via something other + # than ALL_CFLAGS... + cd $(DIR_APP) && sed -i gcc/Makefile.in \ + -e '/^ALL_CFLAGS/iHARD_CFLAGS = ' \ + -e 's|^ALL_CFLAGS = |ALL_CFLAGS = $$(HARD_CFLAGS) |' + + # Enable the GCC hardening by default. + cd $(DIR_APP) && sed -i gcc/Makefile.in \ + -e "s|^HARD_CFLAGS = |HARD_CFLAGS = $(HARD_CFLAGS) |" + + # Compile the compile with -fPIC as well. + cd $(DIR_APP) && sed -i gcc/Makefile.in \ + -e "s|^ESP_NOPIE_CFLAGS = .*|ESP_NOPIE_CFLAGS =|" endef
define STAGE_BUILD @@ -195,7 +214,7 @@ define STAGE_BUILD --enable-linker-build-id \ $(CONFIGURE_ARGS)
- cd $(DIR_SRC)/gcc-build && make $(PARALLELISMFLAGS) + cd $(DIR_SRC)/gcc-build && make profiledbootstrap #$(PARALLELISMFLAGS) endef
#define STAGE_TEST diff --git a/pkgs/less/less.nm b/pkgs/less/less.nm index ef771de..c590f89 100644 --- a/pkgs/less/less.nm +++ b/pkgs/less/less.nm @@ -25,8 +25,8 @@ include $(PKGROOT)/Include
PKG_NAME = less -PKG_VER = 436 -PKG_REL = 0 +PKG_VER = 443 +PKG_REL = 1
PKG_MAINTAINER = PKG_GROUPS = Base Applications/Text diff --git a/pkgs/libsatsolver/libsatsolver.nm b/pkgs/libsatsolver/libsatsolver.nm index 655f3fc..d726cee 100644 --- a/pkgs/libsatsolver/libsatsolver.nm +++ b/pkgs/libsatsolver/libsatsolver.nm @@ -26,7 +26,7 @@ include $(PKGROOT)/Include
PKG_NAME = libsatsolver PKG_VER = 0.16.4 -PKG_REL = 1 +PKG_REL = 2
PKG_MAINTAINER = PKG_GROUPS = System/Libraries diff --git a/pkgs/libsatsolver/patches/0001-Build-only-libraries.patch b/pkgs/libsatsolver/patches/0001-Build-only-libraries.patch new file mode 100644 index 0000000..47e24e4 --- /dev/null +++ b/pkgs/libsatsolver/patches/0001-Build-only-libraries.patch @@ -0,0 +1,26 @@ +diff -Nur old/CMakeLists.txt new/CMakeLists.txt +--- old/CMakeLists.txt 2011-04-10 23:55:09.506257000 +0200 ++++ new/CMakeLists.txt 2011-04-10 23:46:30.612257002 +0200 +@@ -32,7 +32,7 @@ + INCLUDE( ${CMAKE_SOURCE_DIR}/VERSION.cmake ) + + FIND_PACKAGE(EXPAT REQUIRED) +-FIND_PACKAGE(Check REQUIRED) ++#FIND_PACKAGE(Check REQUIRED) + FIND_PACKAGE(ZLIB REQUIRED) + + IF ( FEDORA ) +@@ -190,10 +190,10 @@ + + ADD_SUBDIRECTORY(src) + ADD_SUBDIRECTORY(ext) +-ADD_SUBDIRECTORY(tools) +-ADD_SUBDIRECTORY(tests) +-ADD_SUBDIRECTORY(examples) +-ADD_SUBDIRECTORY(doc) ++#ADD_SUBDIRECTORY(tools) ++#ADD_SUBDIRECTORY(tests) ++#ADD_SUBDIRECTORY(examples) ++#ADD_SUBDIRECTORY(doc) + + MESSAGE(STATUS "version: ${VERSION}") diff --git a/pkgs/libsatsolver/patches/0001-Create-linker-scripts-that-do-only-export-the-needed.patch b/pkgs/libsatsolver/patches/0001-Create-linker-scripts-that-do-only-export-the-needed.patch new file mode 100644 index 0000000..5ba4fa2 --- /dev/null +++ b/pkgs/libsatsolver/patches/0001-Create-linker-scripts-that-do-only-export-the-needed.patch @@ -0,0 +1,439 @@ +>From a42d7e17fa3e39a8306126c19f1b3b54f1fdd79e Mon Sep 17 00:00:00 2001 +From: Michael Tremer michael.tremer@ipfire.org +Date: Thu, 21 Apr 2011 16:40:11 +0200 +Subject: [PATCH] Create linker-scripts that do only export the needed symbols + of libsatsolver{,ext}. + +See these posts for reference: + http://lists.opensuse.org/zypp-devel/2011-04/msg00012.html + http://lists.opensuse.org/zypp-devel/2011-04/msg00014.html + +Signed-off-by: Michael Tremer michael.tremer@ipfire.org +--- + ext/CMakeLists.txt | 1 + + ext/libsatsolverext.ver | 25 ++++ + src/CMakeLists.txt | 1 + + src/libsatsolver.ver | 355 +++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 382 insertions(+), 0 deletions(-) + create mode 100644 ext/libsatsolverext.ver + create mode 100644 src/libsatsolver.ver + +diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt +index 68e1c3c..d51a43b 100644 +--- a/ext/CMakeLists.txt ++++ b/ext/CMakeLists.txt +@@ -21,6 +21,7 @@ SET(libsatsolverext_HEADERS + tools_util.h repo_deb.h sat_xfopen.h) + + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") ++SET(CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS} -Wl,--version-script=${satsolver_SOURCE_DIR}/ext/libsatsolverext.ver") + + INSTALL(FILES ${libsatsolverext_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/satsolver") + INSTALL(TARGETS satsolverext LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) +diff --git a/ext/libsatsolverext.ver b/ext/libsatsolverext.ver +new file mode 100644 +index 0000000..4869d37 +--- /dev/null ++++ b/ext/libsatsolverext.ver +@@ -0,0 +1,25 @@ ++EXT1.0 { ++ global: ++ repo_add_code11_products; ++ repo_add_content; ++ repo_add_deb; ++ repo_add_debdb; ++ repo_add_debpackages; ++ repo_add_debs; ++ repo_add_deltainfoxml; ++ repo_add_helix; ++ repo_add_products; ++ repo_add_releasefile_products; ++ repo_add_repomdxml; ++ repo_add_rpmmd; ++ repo_add_susetags; ++ repo_add_updateinfoxml; ++ repo_add_zyppdb_products; ++ repodata_write; ++ repo_write; ++ repo_write_stdkeyfilter; ++ sat_xfopen; ++ sat_xfopen_fd; ++ local: ++ *; ++}; +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 6a14d10..b54d01d 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -20,6 +20,7 @@ SET(libsatsolver_HEADERS + chksum.h md5.h sha1.h sha2.h ${CMAKE_BINARY_DIR}/src/satversion.h) + + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") ++SET(CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS} -Wl,--version-script=${satsolver_SOURCE_DIR}/src/libsatsolver.ver") + + INSTALL(FILES ${libsatsolver_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/satsolver") + INSTALL(TARGETS satsolver LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) +diff --git a/src/libsatsolver.ver b/src/libsatsolver.ver +new file mode 100644 +index 0000000..dab3576 +--- /dev/null ++++ b/src/libsatsolver.ver +@@ -0,0 +1,355 @@ ++SAT1.0 { ++ global: ++ dataiterator_clonepos; ++ dataiterator_entersub; ++ dataiterator_free; ++ dataiterator_init; ++ dataiterator_init_clone; ++ dataiterator_jump_to_repo; ++ dataiterator_jump_to_solvid; ++ dataiterator_match; ++ dataiterator_prepend_keyname; ++ dataiterator_seek; ++ dataiterator_set_keyname; ++ dataiterator_set_match; ++ dataiterator_setpos; ++ dataiterator_setpos_parent; ++ dataiterator_set_search; ++ dataiterator_skip_attribute; ++ dataiterator_skip_repo; ++ dataiterator_skip_solvable; ++ dataiterator_step; ++ datamatcher_free; ++ datamatcher_init; ++ datamatcher_match; ++ data_read_idarray; ++ data_read_rel_idarray; ++ data_skip_key; ++ dep2str; ++ dirpool_add_dir; ++ dirpool_free; ++ dirpool_init; ++ dirpool_make_dirtraverse; ++ evrcmp; ++ evrmatch; ++ id2str; ++ map_free; ++ map_grow; ++ map_init; ++ map_init_clone; ++ policy_create_obsolete_index; ++ policy_filter_unwanted; ++ policy_findupdatepackages; ++ policy_illegal2str; ++ policy_illegal_archchange; ++ policy_illegal_vendorchange; ++ policy_is_illegal; ++ pool_add_fileconflicts_deps; ++ pool_addfileprovides; ++ pool_addfileprovides_ids; ++ pool_addrelproviders; ++ pool_add_solvable; ++ pool_add_solvable_block; ++ pool_alloctmpspace; ++ pool_arch2color_slow; ++ pool_bin2hex; ++ pool_calc_duchanges; ++ pool_calc_installsizechange; ++ pool_clear_pos; ++ pool_create; ++ pool_create_state_maps; ++ pool_createwhatprovides; ++ pool_debug; ++ pool_free; ++ pool_freeidhashes; ++ pool_free_solvable_block; ++ pool_freetmpspace; ++ pool_freewhatprovides; ++ pool_id2langid; ++ pool_job2str; ++ pool_lookup_bin_checksum; ++ pool_lookup_checksum; ++ pool_lookup_id; ++ pool_lookup_num; ++ pool_lookup_str; ++ pool_lookup_void; ++ pool_match_dep; ++ pool_match_nevr_rel; ++ pool_queuetowhatprovides; ++ pool_search; ++ pool_setarch; ++ pool_setarchpolicy; ++ pool_setdebuglevel; ++ pool_set_installed; ++ pool_set_languages; ++ pool_setvendorclasses; ++ pool_shrink_rels; ++ pool_shrink_strings; ++ pool_tmpappend; ++ pool_tmpjoin; ++ pool_trivial_installable; ++ pool_trivial_installable_noobsoletesmap; ++ pool_vendor2mask; ++ prune_best_arch_name_version; ++ prune_to_best_arch; ++ prune_to_best_version; ++ queue_alloc_one; ++ queue_alloc_one_head; ++ queue_delete; ++ queue_delete2; ++ queue_deleten; ++ queue_free; ++ queue_init; ++ queue_init_buffer; ++ queue_init_clone; ++ queue_insert; ++ queue_insert2; ++ queue_insertn; ++ rel2id; ++ repo_addid; ++ repo_addid_dep; ++ repo_add_poolstr_array; ++ repo_add_repodata; ++ repo_add_solv; ++ repo_add_solv_flags; ++ repo_create; ++ repodata_add_dirnumnum; ++ repodata_add_dirstr; ++ repodata_add_fixarray; ++ repodata_add_flexarray; ++ repodata_add_idarray; ++ repodata_add_poolstr_array; ++ repodata_chk2str; ++ repodata_create; ++ repodata_create_stubs; ++ repodata_delete; ++ repodata_delete_uninternalized; ++ repodata_dir2str; ++ repodata_disable_paging; ++ repodata_empty; ++ repodata_extend; ++ repodata_extend_block; ++ repodata_filelistfilter_matches; ++ repodata_free; ++ repodata_freedata; ++ repodata_free_schemahash; ++ repodata_globalize_id; ++ repodata_initdata; ++ repodata_internalize; ++ repodata_key2id; ++ repodata_localize_id; ++ repodata_lookup_bin_checksum; ++ repodata_lookup_id; ++ repodata_lookup_idarray; ++ repodata_lookup_num; ++ repodata_lookup_str; ++ repodata_lookup_type; ++ repodata_lookup_void; ++ repodata_merge_attrs; ++ repodata_merge_some_attrs; ++ repodata_new_handle; ++ repodata_schema2id; ++ repodata_search; ++ repodata_set_binary; ++ repodata_set_bin_checksum; ++ repodata_set_checksum; ++ repodata_set_constant; ++ repodata_set_constantid; ++ repodata_set_id; ++ repodata_set_idarray; ++ repodata_set_location; ++ repodata_set_num; ++ repodata_set_poolstr; ++ repodata_setpos_kv; ++ repodata_set_str; ++ repodata_set_void; ++ repodata_shrink; ++ repodata_str2dir; ++ repodata_stringify; ++ repo_disable_paging; ++ repo_empty; ++ repo_fix_conflicts; ++ repo_fix_supplements; ++ repo_free; ++ repo_freeallrepos; ++ repo_free_solvable_block; ++ repo_internalize; ++ repo_last_repodata; ++ repo_lookup_bin_checksum; ++ repo_lookup_checksum; ++ repo_lookup_id; ++ repo_lookup_idarray; ++ repo_lookup_num; ++ repo_lookup_str; ++ repo_lookup_type; ++ repo_lookup_void; ++ repo_matchvalue; ++ repopagestore_compress_page; ++ repopagestore_disable_paging; ++ repopagestore_free; ++ repopagestore_init; ++ repopagestore_load_page_range; ++ repopagestore_read_or_setup_pages; ++ repo_reserve_ids; ++ repo_search; ++ repo_set_id; ++ repo_set_num; ++ repo_set_poolstr; ++ repo_set_str; ++ repo_sidedata_create; ++ repo_sidedata_extend; ++ sat_bin2hex; ++ sat_calloc; ++ sat_chksum_add; ++ sat_chksum_create; ++ sat_chksum_create_from_bin; ++ sat_chksum_free; ++ sat_chksum_get; ++ sat_chksum_get_type; ++ sat_chksum_isfinished; ++ sat_chksum_str2type; ++ sat_chksum_type2str; ++ sat_dupappend; ++ sat_dupjoin; ++ sat_free; ++ sat_hex2bin; ++ sat_malloc; ++ sat_malloc2; ++ sat_MD5_Final; ++ sat_MD5_Init; ++ sat_MD5_Update; ++ sat_oom; ++ sat_realloc; ++ sat_realloc2; ++ sat_SHA1_Final; ++ sat_SHA1_Init; ++ sat_SHA1_Update; ++ sat_SHA256_Data; ++ sat_SHA256_End; ++ sat_SHA256_Final; ++ sat_SHA256_Init; ++ sat_SHA256_Update; ++ sat_SHA384_Data; ++ sat_SHA384_End; ++ sat_SHA384_Final; ++ sat_SHA384_Init; ++ sat_SHA384_Update; ++ sat_SHA512_Data; ++ sat_SHA512_End; ++ sat_SHA512_Final; ++ sat_SHA512_Init; ++ sat_SHA512_Update; ++ sat_sort; ++ sat_timems; ++ sat_version; ++ sat_version_major; ++ sat_version_minor; ++ sat_version_patch; ++ solvable2str; ++ solvable_get_location; ++ solvable_identical; ++ solvable_lookup_bin_checksum; ++ solvable_lookup_bool; ++ solvable_lookup_checksum; ++ solvable_lookup_id; ++ solvable_lookup_idarray; ++ solvable_lookup_num; ++ solvable_lookup_str; ++ solvable_lookup_str_lang; ++ solvable_lookup_str_poollang; ++ solvable_lookup_void; ++ solvable_selfprovidedep; ++ solvable_trivial_installable_map; ++ solvable_trivial_installable_queue; ++ solvable_trivial_installable_repo; ++ solver_addchoicerules; ++ solver_addduprules; ++ solver_addinfarchrules; ++ solver_addrpmrulesforsolvable; ++ solver_addrpmrulesforupdaters; ++ solver_addrpmrulesforweak; ++ solver_addrule; ++ solver_addupdaterule; ++ solver_allruleinfos; ++ solver_calc_duchanges; ++ solver_calc_installsizechange; ++ solver_calculate_noobsmap; ++ solver_create; ++ solver_create_decisions_obsoletesmap; ++ solver_createdupmaps; ++ solver_dep_installed; ++ solver_disablechoicerules; ++ solver_disablepolicyrules; ++ solver_disableproblem; ++ solver_enableproblem; ++ solver_findallproblemrules; ++ solver_findproblemrule; ++ solver_free; ++ solver_freedupmaps; ++ solver_next_problem; ++ solver_next_solution; ++ solver_next_solutionelement; ++ solver_prepare_solutions; ++ solver_printallsolutions; ++ solver_printcompleteprobleminfo; ++ solver_printdecisionq; ++ solver_printdecisions; ++ solver_printproblem; ++ solver_printprobleminfo; ++ solver_printproblemruleinfo; ++ solver_printrule; ++ solver_printruleclass; ++ solver_printruleelement; ++ solver_printsolution; ++ solver_printtransaction; ++ solver_printtrivial; ++ solver_printwatches; ++ solver_problem_count; ++ solver_problemruleinfo; ++ solver_problemruleinfo2str; ++ solver_reenablepolicyrules; ++ solver_reset; ++ solver_ruleinfo; ++ solver_run_sat; ++ solver_samerule; ++ solver_select2str; ++ solver_solution_count; ++ solver_solutionelement2str; ++ solver_solutionelement_count; ++ solver_solve; ++ solver_splitprovides; ++ solver_take_solution; ++ solver_take_solutionelement; ++ solver_trivial_installable; ++ solver_unifyrules; ++ str2id; ++ strn2id; ++ stringpool_clone; ++ stringpool_free; ++ stringpool_freehash; ++ stringpool_init; ++ stringpool_init_empty; ++ stringpool_shrink; ++ stringpool_str2id; ++ stringpool_strn2id; ++ transaction_add_obsoleted; ++ transaction_all_obs_pkgs; ++ transaction_calc_duchanges; ++ transaction_calc_installsizechange; ++ transaction_calculate; ++ transaction_check_order; ++ transaction_classify; ++ transaction_classify_pkgs; ++ transaction_free; ++ transaction_free_orderdata; ++ transaction_init; ++ transaction_init_clone; ++ transaction_installedresult; ++ transaction_obs_pkg; ++ transaction_order; ++ transaction_order_add_choices; ++ transaction_type; ++ vercmp; ++ local: ++ *; ++}; +-- +1.7.4.4 + diff --git a/pkgs/libsatsolver/patches/0001-Make-libsatsolver-ext-a-versioned-shared-lib.patch b/pkgs/libsatsolver/patches/0001-Make-libsatsolver-ext-a-versioned-shared-lib.patch new file mode 100644 index 0000000..449275c --- /dev/null +++ b/pkgs/libsatsolver/patches/0001-Make-libsatsolver-ext-a-versioned-shared-lib.patch @@ -0,0 +1,94 @@ +>From 1f9659b55013f222046b9d161fd5a0f2fc399cb8 Mon Sep 17 00:00:00 2001 +From: Michael Tremer michael.tremer@ipfire.org +Date: Thu, 21 Apr 2011 12:48:41 +0200 +Subject: [PATCH] Make libsatsolver{,ext} a versioned shared lib. + +Most distributions only do accept shared libraries because of +relro and hardening stuff. + +Previously, libsatsolver was statically compiled because the ABI +was assumed to be changed from time to time but has now become +very stable. + +Signed-off-by: Michael Tremer michael.tremer@ipfire.org +--- + ext/CMakeLists.txt | 6 +++++- + src/CMakeLists.txt | 6 +++++- + tools/CMakeLists.txt | 12 ++++++------ + 3 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt +index 8e71eee..68e1c3c 100644 +--- a/ext/CMakeLists.txt ++++ b/ext/CMakeLists.txt +@@ -8,7 +8,11 @@ SET(libsatsolverext_SRCS + ${libsatsolverext_SRCS} pool_fileconflicts.c repo_rpmdb.c) + ENDIF (NOT DEBIAN) + +-ADD_LIBRARY(satsolverext STATIC ${libsatsolverext_SRCS}) ++ADD_LIBRARY(satsolverext SHARED ${libsatsolverext_SRCS}) ++SET_TARGET_PROPERTIES(satsolverext PROPERTIES ++ VERSION "${LIBSATSOLVER_MAJOR}.${LIBSATSOLVER_MINOR}" ++ SOVERSION "${LIBSATSOLVER_MAJOR}" ++) + + SET(libsatsolverext_HEADERS + pool_fileconflicts.h repo_content.h repo_deltainfoxml.h repo_helix.h repo_products.h +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 9bd0fde..6a14d10 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -6,7 +6,11 @@ SET(libsatsolver_SRCS + transaction.c rules.c problems.c + chksum.c md5.c sha1.c sha2.c satversion.c) + +-ADD_LIBRARY(satsolver STATIC ${libsatsolver_SRCS}) ++ADD_LIBRARY(satsolver SHARED ${libsatsolver_SRCS}) ++SET_TARGET_PROPERTIES(satsolver PROPERTIES ++ VERSION "${LIBSATSOLVER_MAJOR}.${LIBSATSOLVER_MINOR}" ++ SOVERSION "${LIBSATSOLVER_MAJOR}" ++) + + SET(libsatsolver_HEADERS + bitmap.h evr.h hash.h policy.h poolarch.h poolvendor.h pool.h +diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt +index 79d4890..7696612 100644 +--- a/tools/CMakeLists.txt ++++ b/tools/CMakeLists.txt +@@ -20,19 +20,19 @@ ADD_EXECUTABLE(rpmmd2solv rpmmd2solv.c) + TARGET_LINK_LIBRARIES(rpmmd2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(helix2solv helix2solv.c) +-TARGET_LINK_LIBRARIES(helix2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) ++TARGET_LINK_LIBRARIES(helix2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(susetags2solv susetags2solv.c) +-TARGET_LINK_LIBRARIES(susetags2solv toolstuff satsolverext satsolver ${ZLIB_LIBRARY}) ++TARGET_LINK_LIBRARIES(susetags2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(updateinfoxml2solv updateinfoxml2solv.c) +-TARGET_LINK_LIBRARIES(updateinfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) ++TARGET_LINK_LIBRARIES(updateinfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(deltainfoxml2solv deltainfoxml2solv.c) +-TARGET_LINK_LIBRARIES(deltainfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) ++TARGET_LINK_LIBRARIES(deltainfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(repomdxml2solv repomdxml2solv.c) +-TARGET_LINK_LIBRARIES(repomdxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) ++TARGET_LINK_LIBRARIES(repomdxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(installcheck installcheck.c) + TARGET_LINK_LIBRARIES(installcheck satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) +@@ -44,7 +44,7 @@ ADD_EXECUTABLE(dumpsolv dumpsolv.c ) + TARGET_LINK_LIBRARIES(dumpsolv satsolver) + + ADD_EXECUTABLE(mergesolv mergesolv.c ) +-TARGET_LINK_LIBRARIES(mergesolv toolstuff satsolverext satsolver) ++TARGET_LINK_LIBRARIES(mergesolv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + install(TARGETS + mergesolv +-- +1.7.4.4 + diff --git a/pkgs/libsatsolver/patches/sat-solver-only-shared-libs.patch b/pkgs/libsatsolver/patches/sat-solver-only-shared-libs.patch deleted file mode 100644 index ee9a92e..0000000 --- a/pkgs/libsatsolver/patches/sat-solver-only-shared-libs.patch +++ /dev/null @@ -1,83 +0,0 @@ -diff -Nur old/CMakeLists.txt new/CMakeLists.txt ---- old/CMakeLists.txt 2011-04-10 23:55:09.506257000 +0200 -+++ new/CMakeLists.txt 2011-04-10 23:46:30.612257002 +0200 -@@ -32,7 +32,7 @@ - INCLUDE( ${CMAKE_SOURCE_DIR}/VERSION.cmake ) - - FIND_PACKAGE(EXPAT REQUIRED) --FIND_PACKAGE(Check REQUIRED) -+#FIND_PACKAGE(Check REQUIRED) - FIND_PACKAGE(ZLIB REQUIRED) - - IF ( FEDORA ) -@@ -190,10 +190,10 @@ - - ADD_SUBDIRECTORY(src) - ADD_SUBDIRECTORY(ext) --ADD_SUBDIRECTORY(tools) --ADD_SUBDIRECTORY(tests) --ADD_SUBDIRECTORY(examples) --ADD_SUBDIRECTORY(doc) -+#ADD_SUBDIRECTORY(tools) -+#ADD_SUBDIRECTORY(tests) -+#ADD_SUBDIRECTORY(examples) -+#ADD_SUBDIRECTORY(doc) - - MESSAGE(STATUS "version: ${VERSION}") - -diff -Nur old/ext/CMakeLists.txt new/ext/CMakeLists.txt ---- old/ext/CMakeLists.txt 2011-04-10 23:55:09.530257000 +0200 -+++ new/ext/CMakeLists.txt 2011-04-10 18:51:42.217487001 +0200 -@@ -8,7 +8,7 @@ - ${libsatsolverext_SRCS} pool_fileconflicts.c repo_rpmdb.c) - ENDIF (NOT DEBIAN) - --ADD_LIBRARY(satsolverext STATIC ${libsatsolverext_SRCS}) -+ADD_LIBRARY(satsolverext SHARED ${libsatsolverext_SRCS}) - - SET(libsatsolverext_HEADERS - pool_fileconflicts.h repo_content.h repo_deltainfoxml.h repo_helix.h repo_products.h -@@ -16,7 +16,7 @@ - repo_susetags.h repo_updateinfoxml.h repo_write.h repo_zyppdb.h - tools_util.h repo_deb.h sat_xfopen.h) - --SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") -+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -lexpat") - - INSTALL(FILES ${libsatsolverext_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/satsolver") - INSTALL(TARGETS satsolverext LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) -Binärdateien old/.git/index and new/.git/index sind verschieden. -diff -Nur old/src/CMakeLists.txt new/src/CMakeLists.txt ---- old/src/CMakeLists.txt 2011-04-10 23:55:09.536257000 +0200 -+++ new/src/CMakeLists.txt 2011-04-10 23:52:01.689257003 +0200 -@@ -6,7 +6,7 @@ - transaction.c rules.c problems.c - chksum.c md5.c sha1.c sha2.c satversion.c) - --ADD_LIBRARY(satsolver STATIC ${libsatsolver_SRCS}) -+ADD_LIBRARY(satsolver SHARED ${libsatsolver_SRCS}) - - SET(libsatsolver_HEADERS - bitmap.h evr.h hash.h policy.h poolarch.h poolvendor.h pool.h -diff -Nur old/tools/CMakeLists.txt new/tools/CMakeLists.txt ---- old/tools/CMakeLists.txt 2011-04-10 23:55:10.679257000 +0200 -+++ new/tools/CMakeLists.txt 2011-04-10 23:53:42.340257007 +0200 -@@ -28,8 +28,8 @@ - ADD_EXECUTABLE(updateinfoxml2solv updateinfoxml2solv.c) - TARGET_LINK_LIBRARIES(updateinfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) - --ADD_EXECUTABLE(deltainfoxml2solv deltainfoxml2solv.c) --TARGET_LINK_LIBRARIES(deltainfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) -+#ADD_EXECUTABLE(deltainfoxml2solv deltainfoxml2solv.c) -+#TARGET_LINK_LIBRARIES(deltainfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) - - ADD_EXECUTABLE(repomdxml2solv repomdxml2solv.c) - TARGET_LINK_LIBRARIES(repomdxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) -@@ -53,7 +53,6 @@ - helix2solv - rpmmd2solv - updateinfoxml2solv -- deltainfoxml2solv - repomdxml2solv - installcheck - DESTINATION ${BIN_INSTALL_DIR})
hooks/post-receive -- IPFire 3.x development tree