Accepting request 85857 from home:tserong:branches:devel:gcc

- Fix --gc-sections failure with symbol versioning [bso#13195] (this indirectly fixes build of openSUSE:Factory:ARM/busybox, BTW)

OBS-URL: https://build.opensuse.org/request/show/85857
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/binutils?expand=0&rev=71
This commit is contained in:
Richard Biener 2011-10-04 09:10:57 +00:00 committed by Git OBS Bridge
parent 0a23a04b2b
commit a5ed0c7d14
31 changed files with 212 additions and 0 deletions

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -303,6 +304,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

107
bso13195.diff Normal file
View File

@ -0,0 +1,107 @@
Index: bfd/elflink.c
===================================================================
--- bfd/elflink.c.orig
+++ bfd/elflink.c
@@ -1238,7 +1238,6 @@ _bfd_elf_merge_symbol (bfd *abfd,
{
h->def_dynamic = 0;
h->ref_dynamic = 1;
- h->dynamic_def = 1;
}
/* FIXME: Should we check type and size for protected symbol? */
h->size = 0;
@@ -4353,7 +4352,6 @@ error_free_dyn:
{
h->def_dynamic = 0;
h->ref_dynamic = 1;
- h->dynamic_def = 1;
}
}
if (! info->executable
@@ -4366,7 +4364,10 @@ error_free_dyn:
if (! definition)
h->ref_dynamic = 1;
else
- h->def_dynamic = 1;
+ {
+ h->def_dynamic = 1;
+ h->dynamic_def = 1;
+ }
if (h->def_regular
|| h->ref_regular
|| (h->u.weakdef != NULL
@@ -11914,8 +11915,9 @@ bfd_elf_gc_mark_dynamic_ref_symbol (stru
&& h->def_regular
&& ELF_ST_VISIBILITY (h->other) != STV_INTERNAL
&& ELF_ST_VISIBILITY (h->other) != STV_HIDDEN
- && !bfd_hide_sym_by_version (info->version_info,
- h->root.root.string))))
+ && (strchr (h->root.root.string, ELF_VER_CHR) != NULL
+ || !bfd_hide_sym_by_version (info->version_info,
+ h->root.root.string)))))
h->root.u.def.section->flags |= SEC_KEEP;
return TRUE;
Index: ld/testsuite/ld-elf/elf.exp
===================================================================
--- ld/testsuite/ld-elf/elf.exp.orig
+++ ld/testsuite/ld-elf/elf.exp
@@ -138,6 +138,11 @@ if ![isnative] {
return
}
+run_cc_link_tests {
+ {"PR ld/13195" "-Wl,--gc-sections" ""
+ {pr13195.c} {} "pr13195"}
+}
+
set array_tests {
{"preinit array" "" "" {preinit.c} "preinit" "preinit.out"}
{"init array" "" "" {init.c} "init" "init.out"}
Index: ld/testsuite/ld-elf/pr13195.c
===================================================================
--- /dev/null
+++ ld/testsuite/ld-elf/pr13195.c
@@ -0,0 +1,5 @@
+int
+main ()
+{
+ return 0;
+}
Index: ld/testsuite/ld-elf/pr13195.d
===================================================================
--- /dev/null
+++ ld/testsuite/ld-elf/pr13195.d
@@ -0,0 +1,10 @@
+#ld: --gc-sections -shared -version-script pr13195.t
+#readelf: -s --wide -D
+#target: *-*-linux* *-*-gnu*
+#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
+#notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-*
+# generic linker targets don't support --gc-sections, nor do a bunch of others
+
+#...
+ +[0-9]+ +[0-9]+: +[0-9a-f]+ +[0-9]+ +FUNC +GLOBAL +DEFAULT +[1-9]+ foo
+#pass
Index: ld/testsuite/ld-elf/pr13195.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-elf/pr13195.s
@@ -0,0 +1,6 @@
+ .section .text.new_foo,"ax",%progbits
+ .globl new_foo
+ .type new_foo, %function
+new_foo:
+ .byte 0
+ .symver new_foo,foo@@VERS_2.0
Index: ld/testsuite/ld-elf/pr13195.t
===================================================================
--- /dev/null
+++ ld/testsuite/ld-elf/pr13195.t
@@ -0,0 +1,6 @@
+VERS_2.0 {
+global:
+ foo;
+local:
+ *;
+};

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Sep 30 11:25:38 UTC 2011 - tserong@suse.com
- Fix --gc-sections failure with symbol versioning [bso#13195]
-------------------------------------------------------------------
Wed Sep 28 13:08:07 UTC 2011 - rguenther@suse.com

View File

@ -90,6 +90,7 @@ Patch11: use-hashtype-both-by-default.diff
Patch14: binutils-build-as-needed.diff
Patch15: fixup-testcase-perturb.diff
Patch18: gold-depend-on-opcodes.diff
Patch19: bso13195.diff
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -275,6 +276,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14
%patch15
%patch18
%patch19
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90