forked from Imagelibrary/binutils-gdb
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.
This commit is contained in:
3
ld/testsuite/ld-scripts/print-memory-usage-1.l
Normal file
3
ld/testsuite/ld-scripts/print-memory-usage-1.l
Normal file
@@ -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%
|
||||
8
ld/testsuite/ld-scripts/print-memory-usage-1.s
Normal file
8
ld/testsuite/ld-scripts/print-memory-usage-1.s
Normal file
@@ -0,0 +1,8 @@
|
||||
.text
|
||||
.globl text_symbol
|
||||
text_symbol:
|
||||
.space 32
|
||||
.data
|
||||
.globl data_symbol
|
||||
data_symbol:
|
||||
.space 32
|
||||
5
ld/testsuite/ld-scripts/print-memory-usage-1.t
Normal file
5
ld/testsuite/ld-scripts/print-memory-usage-1.t
Normal file
@@ -0,0 +1,5 @@
|
||||
MEMORY
|
||||
{
|
||||
ROM (RX) : ORIGIN = 0x1000, LENGTH = 1K
|
||||
RAM (W) : ORIGIN = 0x100000, LENGTH = 256K
|
||||
}
|
||||
1
ld/testsuite/ld-scripts/print-memory-usage-2.l
Normal file
1
ld/testsuite/ld-scripts/print-memory-usage-2.l
Normal file
@@ -0,0 +1 @@
|
||||
Memory region Used Size Region Size %age Used
|
||||
14
ld/testsuite/ld-scripts/print-memory-usage-2.t
Normal file
14
ld/testsuite/ld-scripts/print-memory-usage-2.t
Normal file
@@ -0,0 +1,14 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x1000 :
|
||||
{
|
||||
*(.text)
|
||||
*(.pr)
|
||||
}
|
||||
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.rw)
|
||||
}
|
||||
}
|
||||
3
ld/testsuite/ld-scripts/print-memory-usage-3.l
Normal file
3
ld/testsuite/ld-scripts/print-memory-usage-3.l
Normal file
@@ -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%
|
||||
8
ld/testsuite/ld-scripts/print-memory-usage-3.s
Normal file
8
ld/testsuite/ld-scripts/print-memory-usage-3.s
Normal file
@@ -0,0 +1,8 @@
|
||||
.text
|
||||
.globl text_symbol
|
||||
text_symbol:
|
||||
.space 256*1024
|
||||
.data
|
||||
.globl data_symbol
|
||||
data_symbol:
|
||||
.space 32
|
||||
5
ld/testsuite/ld-scripts/print-memory-usage-3.t
Normal file
5
ld/testsuite/ld-scripts/print-memory-usage-3.t
Normal file
@@ -0,0 +1,5 @@
|
||||
MEMORY
|
||||
{
|
||||
ROM (RX) : ORIGIN = 0x100000, LENGTH = 1M
|
||||
RAM (W) : ORIGIN = 0x1000000, LENGTH = 2048M
|
||||
}
|
||||
69
ld/testsuite/ld-scripts/print-memory-usage.exp
Normal file
69
ld/testsuite/ld-scripts/print-memory-usage.exp
Normal file
@@ -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"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
14
ld/testsuite/ld-scripts/print-memory-usage.t
Normal file
14
ld/testsuite/ld-scripts/print-memory-usage.t
Normal file
@@ -0,0 +1,14 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text :
|
||||
{
|
||||
*(.text)
|
||||
*(.pr)
|
||||
}
|
||||
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.rw)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user