aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-scripts
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2015-06-05 15:09:31 +0200
committerTristan Gingold <gingold@adacore.com>2015-06-12 11:24:36 +0200
commit3604cb1f8ca4a926039a9540d03bb224d84af3e1 (patch)
tree962d40b3cb6bd43d06960653b70af6d73a207e66 /ld/testsuite/ld-scripts
parentdb7858e227f3951c665410314fca62c77349ac24 (diff)
downloadgdb-3604cb1f8ca4a926039a9540d03bb224d84af3e1.zip
gdb-3604cb1f8ca4a926039a9540d03bb224d84af3e1.tar.gz
gdb-3604cb1f8ca4a926039a9540d03bb224d84af3e1.tar.bz2
Add new ld option: --print-memory-usage
ld/ * NEWS: Mention new option. * lexsup.c (parse_args): Handle --print-memory-usage. (ld_options): Add --print-memory-usage. * ldmain.c (main): Call lang_print_memory_usage. * ldlex.h (enum option_values): Add OPTION_PRINT_MEMORY_USAGE. * ldlang.h: Add prototype of lang_print_memory_usage. * ldlang.c (lang_print_memory_size, lang_print_memory_usage): New functions. * ld.texinfo (Options): Document --print-memory-usage. * ld.h (args_type): Add print_memory_usage field. ld/testsuite/ * ld-scripts/print-memory-usage-1.t, * ld-scripts/print-memory-usage-1.s, * ld-scripts/print-memory-usage-1.l, * ld-scripts/print-memory-usage-2.t, * ld-scripts/print-memory-usage-2.l, * ld-scripts/print-memory-usage-3.s, * ld-scripts/print-memory-usage-3.t, * ld-scripts/print-memory-usage-3.l, * ld-scripts/print-memory-usage.t: New tests. * ld-scripts/print-memory-usage.exp: Run them.
Diffstat (limited to 'ld/testsuite/ld-scripts')
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage-1.l3
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage-1.s8
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage-1.t5
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage-2.l1
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage-2.t14
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage-3.l3
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage-3.s8
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage-3.t5
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage.exp69
-rw-r--r--ld/testsuite/ld-scripts/print-memory-usage.t14
10 files changed, 130 insertions, 0 deletions
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-1.l b/ld/testsuite/ld-scripts/print-memory-usage-1.l
new file mode 100644
index 0000000..34bc895
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage-1.l
@@ -0,0 +1,3 @@
+Memory region Used Size Region Size %age Used
+ ROM: 32 B 1 KB 3.12%
+ RAM: 32 B 256 KB 0.01%
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-1.s b/ld/testsuite/ld-scripts/print-memory-usage-1.s
new file mode 100644
index 0000000..ccb94bf
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage-1.s
@@ -0,0 +1,8 @@
+ .text
+ .globl text_symbol
+text_symbol:
+ .space 32
+ .data
+ .globl data_symbol
+data_symbol:
+ .space 32
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-1.t b/ld/testsuite/ld-scripts/print-memory-usage-1.t
new file mode 100644
index 0000000..97065b3
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage-1.t
@@ -0,0 +1,5 @@
+MEMORY
+{
+ ROM (RX) : ORIGIN = 0x1000, LENGTH = 1K
+ RAM (W) : ORIGIN = 0x100000, LENGTH = 256K
+}
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-2.l b/ld/testsuite/ld-scripts/print-memory-usage-2.l
new file mode 100644
index 0000000..8797120
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage-2.l
@@ -0,0 +1 @@
+Memory region Used Size Region Size %age Used
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-2.t b/ld/testsuite/ld-scripts/print-memory-usage-2.t
new file mode 100644
index 0000000..11ce1ba
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage-2.t
@@ -0,0 +1,14 @@
+SECTIONS
+{
+ .text 0x1000 :
+ {
+ *(.text)
+ *(.pr)
+ }
+
+ .data :
+ {
+ *(.data)
+ *(.rw)
+ }
+}
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-3.l b/ld/testsuite/ld-scripts/print-memory-usage-3.l
new file mode 100644
index 0000000..1044101
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage-3.l
@@ -0,0 +1,3 @@
+Memory region Used Size Region Size %age Used
+ ROM: 256 KB 1 MB 25.00%
+ RAM: 32 B 2 GB 0.00%
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-3.s b/ld/testsuite/ld-scripts/print-memory-usage-3.s
new file mode 100644
index 0000000..917ff20
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage-3.s
@@ -0,0 +1,8 @@
+ .text
+ .globl text_symbol
+text_symbol:
+ .space 256*1024
+ .data
+ .globl data_symbol
+data_symbol:
+ .space 32
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-3.t b/ld/testsuite/ld-scripts/print-memory-usage-3.t
new file mode 100644
index 0000000..eff51b6
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage-3.t
@@ -0,0 +1,5 @@
+MEMORY
+{
+ ROM (RX) : ORIGIN = 0x100000, LENGTH = 1M
+ RAM (W) : ORIGIN = 0x1000000, LENGTH = 2048M
+}
diff --git a/ld/testsuite/ld-scripts/print-memory-usage.exp b/ld/testsuite/ld-scripts/print-memory-usage.exp
new file mode 100644
index 0000000..bbae75f
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage.exp
@@ -0,0 +1,69 @@
+# Test --print-memory-usage linker functionality
+# By Tristan Gingold, AdaCore
+# Copyright (C) 2015 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# 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.
+
+# Mips adds MIPS.abiflags section.
+# Spu, pdp11 memory is too small.
+# Tic30 needs a special linker script.
+# Tic54x interpret space values in bits.
+# XCOFF has garbage collection
+if { [istarget mips*-*-*]
+ || [istarget spu*-*-*]
+ || [istarget pdp11*-*-*]
+ || [istarget tic30*-*-*]
+ || [istarget tic54x*-*-*]
+ || [istarget *-*-aix*]
+ || [istarget *-*-xcoff*] } {
+ return
+}
+
+run_ld_link_tests {
+ {
+ "print-memory-usage-1"
+ "-T print-memory-usage-1.t -T print-memory-usage.t --print-memory-usage"
+ ""
+ ""
+ { "print-memory-usage-1.s" }
+ { { ld "print-memory-usage-1.l" } }
+ "print-memory-usage-1"
+ }
+
+ {
+ "print-memory-usage-2"
+ "-T print-memory-usage-2.t --print-memory-usage"
+ ""
+ ""
+ { "print-memory-usage-1.s" }
+ { { ld "print-memory-usage-2.l" } }
+ "print-memory-usage-2"
+ }
+
+ {
+ "print-memory-usage-3"
+ "-T print-memory-usage-3.t -T print-memory-usage.t --print-memory-usage"
+ ""
+ ""
+ { "print-memory-usage-3.s" }
+ { { ld "print-memory-usage-3.l" } }
+ "print-memory-usage-3"
+ }
+
+}
+
diff --git a/ld/testsuite/ld-scripts/print-memory-usage.t b/ld/testsuite/ld-scripts/print-memory-usage.t
new file mode 100644
index 0000000..5ff057a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/print-memory-usage.t
@@ -0,0 +1,14 @@
+SECTIONS
+{
+ .text :
+ {
+ *(.text)
+ *(.pr)
+ }
+
+ .data :
+ {
+ *(.data)
+ *(.rw)
+ }
+}