From fd91f0024caec4cbca0c53a175cfaa9bc2c5dc5a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 9 Mar 2016 08:27:03 -0800 Subject: [PATCH] Workaround a C++ bug in GCC 4.2 in gold test G++ in GCC 4.2 silently ignores --- __attribute__ ((section(".rodata.v1_a2"))) const short rodata_item1 = 101; --- which leads to plugin_layout_with_alignment test failure with Expected 12 sections, found 8 sections since 4 .rodata sections are missing. As a workaround, this patch changes plugin_layout_with_alignment test from C++ to C. * testsuite/plugin_layout_with_alignment.cc: Renamed to .. * testsuite/plugin_layout_with_alignment.c: This. * testsuite/Makefile.am (plugin_layout_with_alignment.o): Updated. (plugin_layout_with_alignment): Likewise. * testsuite/Makefile.in: Regenerated. --- gold/ChangeLog | 8 ++++++++ gold/testsuite/Makefile.am | 6 +++--- gold/testsuite/Makefile.in | 6 +++--- ...t_with_alignment.cc => plugin_layout_with_alignment.c} | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) rename gold/testsuite/{plugin_layout_with_alignment.cc => plugin_layout_with_alignment.c} (99%) diff --git a/gold/ChangeLog b/gold/ChangeLog index e1748b18971..d2b64338436 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,11 @@ +2016-03-09 H.J. Lu + + * testsuite/plugin_layout_with_alignment.cc: Renamed to .. + * testsuite/plugin_layout_with_alignment.c: This. + * testsuite/Makefile.am (plugin_layout_with_alignment.o): Updated. + (plugin_layout_with_alignment): Likewise. + * testsuite/Makefile.in: Regenerated. + 2016-03-08 Cary Coutant PR 19751 diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am index 2920587bac7..f5528d12a07 100644 --- a/gold/testsuite/Makefile.am +++ b/gold/testsuite/Makefile.am @@ -2110,10 +2110,10 @@ plugin_section_order.o: plugin_section_order.c check_SCRIPTS += plugin_layout_with_alignment.sh check_DATA += plugin_layout_with_alignment.stdout MOSTLYCLEANFILES += plugin_layout_with_alignment -plugin_layout_with_alignment.o: plugin_layout_with_alignment.cc - $(CXXCOMPILE) -O0 -c -ffunction-sections -fdata-sections -g -o $@ $< +plugin_layout_with_alignment.o: plugin_layout_with_alignment.c + $(COMPILE) -O0 -c -ffunction-sections -fdata-sections -g -o $@ $< plugin_layout_with_alignment: plugin_layout_with_alignment.o plugin_section_alignment.so gcctestdir/ld - $(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_alignment.so" plugin_layout_with_alignment.o + $(LINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_alignment.so" plugin_layout_with_alignment.o plugin_layout_with_alignment.stdout: plugin_layout_with_alignment $(TEST_NM) -n --synthetic plugin_layout_with_alignment > plugin_layout_with_alignment.stdout diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in index 4eafa543d0b..988d6f7c36f 100644 --- a/gold/testsuite/Makefile.in +++ b/gold/testsuite/Makefile.in @@ -6146,10 +6146,10 @@ uninstall-am: @GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@ $(LINK) -Bgcctestdir/ -shared plugin_section_order.o @GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_section_order.o: plugin_section_order.c @GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@ $(COMPILE) -O0 -c -fpic -o $@ $< -@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_layout_with_alignment.o: plugin_layout_with_alignment.cc -@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@ $(CXXCOMPILE) -O0 -c -ffunction-sections -fdata-sections -g -o $@ $< +@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_layout_with_alignment.o: plugin_layout_with_alignment.c +@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@ $(COMPILE) -O0 -c -ffunction-sections -fdata-sections -g -o $@ $< @GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_layout_with_alignment: plugin_layout_with_alignment.o plugin_section_alignment.so gcctestdir/ld -@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@ $(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_alignment.so" plugin_layout_with_alignment.o +@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@ $(LINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_alignment.so" plugin_layout_with_alignment.o @GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_layout_with_alignment.stdout: plugin_layout_with_alignment @GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@ $(TEST_NM) -n --synthetic plugin_layout_with_alignment > plugin_layout_with_alignment.stdout diff --git a/gold/testsuite/plugin_layout_with_alignment.cc b/gold/testsuite/plugin_layout_with_alignment.c similarity index 99% rename from gold/testsuite/plugin_layout_with_alignment.cc rename to gold/testsuite/plugin_layout_with_alignment.c index 0824d74a912..5d6ff1f7e2d 100644 --- a/gold/testsuite/plugin_layout_with_alignment.cc +++ b/gold/testsuite/plugin_layout_with_alignment.c @@ -66,7 +66,7 @@ struct blah { union { double d; char c; } u; } bss_item3; __attribute__ ((section(".bss.v4_a1"))) char bss_item4[3]; -int main () +int main (void) { return 0; } -- 2.30.2