packages: binutils/binutils.spec, binutils/pr14052.patch (NEW), binutils/bi...
baggins
baggins at pld-linux.org
Sat May 5 10:45:52 CEST 2012
Author: baggins Date: Sat May 5 08:45:52 2012 GMT
Module: packages Tag: HEAD
---- Log message:
- rel 3
- official fix for the http://sourceware.org/bugzilla/show_bug.cgi?id=14052
---- Files affected:
packages/binutils:
binutils.spec (1.361 -> 1.362) , pr14052.patch (NONE -> 1.1) (NEW), binutils-fix-i686-kernel.patch (1.1 -> NONE) (REMOVED)
---- Diffs:
================================================================
Index: packages/binutils/binutils.spec
diff -u packages/binutils/binutils.spec:1.361 packages/binutils/binutils.spec:1.362
--- packages/binutils/binutils.spec:1.361 Wed May 2 20:26:07 2012
+++ packages/binutils/binutils.spec Sat May 5 10:45:46 2012
@@ -19,7 +19,7 @@
Summary(uk.UTF-8): Набір інструментів GNU для побудови виконуваних програм
Name: binutils
Version: 2.22.52.0.2
-Release: 2
+Release: 3
Epoch: 3
License: GPL v3+
Group: Development/Tools
@@ -38,7 +38,7 @@
Patch7: %{name}-libtool-m.patch
Patch8: %{name}-build-id.patch
Patch9: %{name}-tooldir.patch
-Patch10: %{name}-fix-i686-kernel.patch
+Patch10: pr14052.patch
URL: http://sources.redhat.com/binutils/
BuildRequires: autoconf >= 2.64
BuildRequires: automake >= 1:1.11
@@ -362,6 +362,10 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.362 2012/05/05 08:45:46 baggins
+- rel 3
+- official fix for the http://sourceware.org/bugzilla/show_bug.cgi?id=14052
+
Revision 1.361 2012/05/02 18:26:07 baggins
- rel 2
================================================================
Index: packages/binutils/pr14052.patch
diff -u /dev/null packages/binutils/pr14052.patch:1.1
--- /dev/null Sat May 5 10:45:52 2012
+++ packages/binutils/pr14052.patch Sat May 5 10:45:46 2012
@@ -0,0 +1,147 @@
+--- a/bfd/bfd-in.h
++++ a/bfd/bfd-in.h
+@@ -703,6 +703,9 @@ _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
+ extern void _bfd_fix_excluded_sec_syms
+ (bfd *, struct bfd_link_info *);
+
++extern void _bfd_keep_sections_with_sym
++ (bfd *, struct bfd_link_info *);
++
+ extern unsigned bfd_m68k_mach_to_features (int);
+
+ extern int bfd_m68k_features_to_mach (unsigned);
+--- a/bfd/bfd-in2.h
++++ a/bfd/bfd-in2.h
+@@ -710,6 +710,9 @@ _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
+ extern void _bfd_fix_excluded_sec_syms
+ (bfd *, struct bfd_link_info *);
+
++extern void _bfd_keep_sections_with_sym
++ (bfd *, struct bfd_link_info *);
++
+ extern unsigned bfd_m68k_mach_to_features (int);
+
+ extern int bfd_m68k_features_to_mach (unsigned);
+--- a/bfd/linker.c
++++ a/bfd/linker.c
+@@ -3198,11 +3198,6 @@ _bfd_nearby_section (bfd *obfd, asection *s, bfd_vma addr)
+ best = prev;
+ }
+
+- /* Refuse to choose a section for which we are out of bounds. */
+- /* ??? This may make most of the above moot. */
+- if (addr < best->vma || addr > best->vma + best->size)
+- best = bfd_abs_section_ptr;
+-
+ return best;
+ }
+
+@@ -3240,6 +3235,36 @@ _bfd_fix_excluded_sec_syms (bfd *obfd, struct bfd_link_info *info)
+ bfd_link_hash_traverse (info->hash, fix_syms, obfd);
+ }
+
++/* Keep sections with symbols. */
++
++static bfd_boolean
++keep_sections_with_sym (struct bfd_link_hash_entry *h, void *data)
++{
++ bfd *obfd = (bfd *) data;
++
++ if (h->type == bfd_link_hash_defined
++ || h->type == bfd_link_hash_defweak)
++ {
++ asection *s = h->u.def.section;
++ if (s != NULL
++ && (s->flags
++ & (SEC_LINKER_CREATED | SEC_EXCLUDE | SEC_KEEP)) == 0
++ && s->output_section != NULL
++ && (s->output_section->flags
++ & (SEC_LINKER_CREATED | SEC_EXCLUDE | SEC_KEEP)) == 0
++ && !bfd_section_removed_from_list (obfd, s->output_section))
++ s->output_section->flags |= SEC_KEEP;
++ }
++
++ return TRUE;
++}
++
++void
++_bfd_keep_sections_with_sym (bfd *obfd, struct bfd_link_info *info)
++{
++ bfd_link_hash_traverse (info->hash, keep_sections_with_sym, obfd);
++}
++
+ /*
+ FUNCTION
+ bfd_generic_define_common_symbol
+--- a/ld/ldlang.c
++++ a/ld/ldlang.c
+@@ -3858,6 +3858,9 @@ strip_excluded_output_sections (void)
+ lang_reset_memory_regions ();
+ }
+
++ if (!link_info.relocatable)
++ _bfd_keep_sections_with_sym (link_info.output_bfd, &link_info);
++
+ for (os = &lang_output_section_statement.head->output_section_statement;
+ os != NULL;
+ os = os->next)
+--- a/ld/testsuite/ld-elf/pr14052.d
++++ a/ld/testsuite/ld-elf/pr14052.d
+@@ -0,0 +1,8 @@
++#source: start.s
++#ld: -T pr14052.t
++#readelf: -s
++
++#failif
++#...
++ +[0-9]+: +[0-9a-f]+ +0 +(OBJECT|NOTYPE) +GLOBAL +DEFAULT +ABS _data_start
++#...
+--- a/ld/testsuite/ld-elf/pr14052.t
++++ a/ld/testsuite/ld-elf/pr14052.t
+@@ -0,0 +1,11 @@
++SECTIONS {
++ .text : {
++ *(.text)
++ }
++ . = ALIGN (0x1000);
++ .data : {
++ _data_start = .;
++ *(.data)
++ }
++ /DISCARD/ : { *(.*) }
++}
+--- a/ld/testsuite/ld-elf/warn2.d
++++ a/ld/testsuite/ld-elf/warn2.d
+@@ -13,5 +13,5 @@
+ # construct and that the symbol still appears as expected.
+
+ #...
+- +[0-9]+: +[0-9a-f]+ +20 +OBJECT +GLOBAL +DEFAULT +ABS Foo
++ +[0-9]+: +[0-9a-f]+ +20 +OBJECT +GLOBAL +DEFAULT +[1-9] Foo
+ #pass
+--- a/ld/testsuite/ld-elf/zerosize1.d
++++ a/ld/testsuite/ld-elf/zerosize1.d
+@@ -1,10 +1,12 @@
+ #source: start.s
+ #source: zerosize1.s
+-#ld:
+-#readelf: -s
++#ld: -T zerosize1.t
++#readelf: -sS --wide
+
+ # Check that xyzzy is not placed in the .text section.
+
+ #...
+- +[0-9]+: +[0-9a-f]+ +0 +(OBJECT|NOTYPE) +GLOBAL +DEFAULT +ABS xyzzy
++ \[[ 2]+\] zerosize[ \t]+PROGBITS[ \t0-9a-f]+WA.*
++#...
++ +[0-9]+: +[0-9a-f]+ +0 +(OBJECT|NOTYPE) +GLOBAL +DEFAULT +2 xyzzy
+ #pass
+--- a/ld/testsuite/ld-elf/zerosize1.t
++++ a/ld/testsuite/ld-elf/zerosize1.t
+@@ -0,0 +1,5 @@
++SECTIONS {
++ .text : { *(.text) }
++ .zerosize : { *(.zerosize) }
++ /DISCARD/ : { *(.*) }
++}
================================================================
---- CVS-web:
http://cvs.pld-linux.org/packages/binutils/binutils.spec?r1=1.361&r2=1.362
More information about the pld-cvs-commit
mailing list