From b8ff982870858c54e09105458b6955b391cc0a11 Mon Sep 17 00:00:00 2001 From: Rahul Chaudhry Date: Fri, 21 Oct 2016 16:34:06 -0700 Subject: gold: make icf respect section alignment requirements. Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=628795 The upstream bug is https://sourceware.org/bugzilla/show_bug.cgi?id=17704 This patch is backported from upstream - commit ac423761af22f7858a1413cda5df3e1d5e88d4e4 Author: Gergely Nagy Date: Fri Oct 21 11:08:20 2016 -0700 Fix PR 17704. This fix keeps the section with the highest alignment when folding sections with ICF. PR gold/17704 * icf.cc (match_sections): Add new parameter section_addraligns. Check section alignment and keep the section with the strictest alignment. (find_identical_sections): New local variable section_addraligns. Store each section's alignment. * testsuite/pr17704a_test.s: New file. * testsuite/Makefile.am (pr17704a_test): New test. * testsuite/Makefile.in: Regenerate. --- binutils-2.25/gold/testsuite/Makefile.am | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'binutils-2.25/gold/testsuite/Makefile.am') diff --git a/binutils-2.25/gold/testsuite/Makefile.am b/binutils-2.25/gold/testsuite/Makefile.am index ce1af05a..e2477295 100644 --- a/binutils-2.25/gold/testsuite/Makefile.am +++ b/binutils-2.25/gold/testsuite/Makefile.am @@ -976,6 +976,16 @@ endif FN_PTRS_IN_SO_WITHOUT_PIC endif TLS +if DEFAULT_TARGET_X86_64 + +check_PROGRAMS += pr17704a_test +pr17704a_test.o: pr17704a_test.s + $(TEST_AS) --64 -o $@ $< +pr17704a_test: pr17704a_test.o gcctestdir/ld + gcctestdir/ld --icf=all -o $@ $< + +endif DEFAULT_TARGET_X86_64 + if DEFAULT_TARGET_I386 check_SCRIPTS += i386_mov_to_lea.sh -- cgit v1.2.3