From 5fa5f8f5fe494ba4fe98c11899a5464cd164ec75 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Wed, 18 Sep 2019 13:23:34 +0200 Subject: Introduce new .text.sorted.* sections. gold/ChangeLog: 2019-11-26 Martin Liska * layout.cc (Layout::special_ordering_of_input_section): Add ".text.sorted". * output.cc: Special case ".text.sorted". * testsuite/section_sorting_name.cc: Cover also .text.sorted subsections. * testsuite/section_sorting_name.sh: Likewise. ld/ChangeLog: 2019-11-26 Martin Liska * scripttempl/arclinux.sc: Add .text.sorted.* which is sorted by default. * scripttempl/elf.sc: Likewise. * scripttempl/elf64bpf.sc: Likewise. * scripttempl/nds32elf.sc: Likewise. * testsuite/ld-arm/arm-no-rel-plt.ld: Expect .text.sorted.* in the default linker script. * testsuite/ld-arm/fdpic-main.ld: Likewise. * testsuite/ld-arm/fdpic-shared.ld: Likewise. --- gold/testsuite/section_sorting_name.cc | 43 ++++++++++++++++++++++++++++++++++ gold/testsuite/section_sorting_name.sh | 6 +++++ 2 files changed, 49 insertions(+) (limited to 'gold/testsuite') diff --git a/gold/testsuite/section_sorting_name.cc b/gold/testsuite/section_sorting_name.cc index 3a1d9ba..8270b40 100644 --- a/gold/testsuite/section_sorting_name.cc +++ b/gold/testsuite/section_sorting_name.cc @@ -50,6 +50,49 @@ int hot_foo_0002() return 1; } +extern "C" +__attribute__ ((section(".text.sorted.0002"))) +int sorted_foo_0002() +{ + return 1; +} + +extern "C" +__attribute__ ((section(".text.sorted.0001.abc"))) +int sorted_foo_0001_abc() +{ + return 1; +} + + +extern "C" +__attribute__ ((section(".text.sorted.0001"))) +int sorted_foo_0001() +{ + return 1; +} + +extern "C" +__attribute__ ((section(".text.sorted.0003"))) +int sorted_foo_0003() +{ + return 1; +} + +extern "C" +__attribute__ ((section(".text.sorted.z"))) +int sorted_foo_z() +{ + return 1; +} + +extern "C" +__attribute__ ((section(".text.sorted.y"))) +int sorted_foo_y() +{ + return 1; +} + int vdata_0002 __attribute__((section(".data.0002"))) = 2; int vbss_0002 __attribute__((section(".bss.0002"))) = 0; diff --git a/gold/testsuite/section_sorting_name.sh b/gold/testsuite/section_sorting_name.sh index ae44570..00ad7cc 100755 --- a/gold/testsuite/section_sorting_name.sh +++ b/gold/testsuite/section_sorting_name.sh @@ -59,6 +59,12 @@ END { check section_sorting_name.stdout "hot_foo_0001" "hot_foo_0002" check section_sorting_name.stdout "hot_foo_0002" "hot_foo_0003" +check section_sorting_name.stdout "sorted_foo_0001" "sorted_foo_0001_abc" +check section_sorting_name.stdout "sorted_foo_0001_abc" "sorted_foo_0002" +check section_sorting_name.stdout "sorted_foo_0002" "sorted_foo_0003" +check section_sorting_name.stdout "sorted_foo_0003" "sorted_foo_y" +check section_sorting_name.stdout "sorted_foo_y" "sorted_foo_z" + check section_sorting_name.stdout "vdata_0001" "vdata_0002" check section_sorting_name.stdout "vdata_0002" "vdata_0003" -- cgit v1.1