aboutsummaryrefslogtreecommitdiff
path: root/gold/testsuite/section_sorting_name.cc
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2013-05-30 23:01:11 +0000
committerCary Coutant <ccoutant@google.com>2013-05-30 23:01:11 +0000
commit6934001a98509d5f40ececbd9aa793b8969e27a3 (patch)
treee6b29c40e30acd5c3601df19a9fc5609fd618bd4 /gold/testsuite/section_sorting_name.cc
parent067ec077d717e716b0dba87b9ebfa25074cd5453 (diff)
downloadgdb-6934001a98509d5f40ececbd9aa793b8969e27a3.zip
gdb-6934001a98509d5f40ececbd9aa793b8969e27a3.tar.gz
gdb-6934001a98509d5f40ececbd9aa793b8969e27a3.tar.bz2
2013-05-30 Alexander Ivchenko <alexander.ivchenko@intel.com>
Sriraman Tallam <tmsriram@google.com> * options.h (sort_section): New option. * output.h (Input_section_sort_section_prefix_special_ordering_compare): Rename from Input_section_sort_section_name_special_ordering_compare. (Input_section_sort_section_name_compare): New struct. * output.cc (Output_section::Input_section_sort_section_name_compare:: operator()): New function. (Output_section::sort_attached_input_sections): Use new sort function for .text if --sort-section=name is specified. * layout.cc (Layout::make_output_section): Add sorting by name when --sort-section=name is specified. * testsuite/Makefile.am (text_section_grouping): Test option --sort-section=name. * testsuite/Makefile.in: Regenerate. * testsuite/section_sorting_name.cc: New file. * testsuite/section_sorting_name.sh: New file.
Diffstat (limited to 'gold/testsuite/section_sorting_name.cc')
-rw-r--r--gold/testsuite/section_sorting_name.cc59
1 files changed, 59 insertions, 0 deletions
diff --git a/gold/testsuite/section_sorting_name.cc b/gold/testsuite/section_sorting_name.cc
new file mode 100644
index 0000000..e89c1ed
--- /dev/null
+++ b/gold/testsuite/section_sorting_name.cc
@@ -0,0 +1,59 @@
+// section_sorting_name.cc -- a test case for gold
+
+// Copyright 2013 Free Software Foundation, Inc.
+// Written by Alexander Ivchenko <alexander.ivchenko@intel.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// The goal of this program is to verify that when using --sort-section=name
+// option all .text, .data and .bss sections are sorted by name
+
+extern "C"
+__attribute__ ((section(".text.hot0001")))
+int hot_foo_0001()
+{
+ return 1;
+}
+
+int vdata_0003 __attribute__((section(".data.0003"))) = 3;
+int vbss_0003 __attribute__((section(".bss.0003"))) = 0;
+
+extern "C"
+__attribute__ ((section(".text.hot0003")))
+int hot_foo_0003()
+{
+ return 1;
+}
+
+int vdata_0001 __attribute__((section(".data.0001"))) = 1;
+int vbss_0001 __attribute__((section(".bss.0001"))) = 0;
+
+extern "C"
+__attribute__ ((section(".text.hot0002")))
+int hot_foo_0002()
+{
+ return 1;
+}
+
+int vdata_0002 __attribute__((section(".data.0002"))) = 2;
+int vbss_0002 __attribute__((section(".bss.0002"))) = 0;
+
+int main()
+{
+ return 1;
+}