ld: Print 0 size in B and not in GB
Checks
Commit Message
When using --print-memory-usage, the printed size can be zero and in
that case, the unit should be B and not GB.
ld/
* ldlang.c (lang_print_memory_size) Print 0 B instead of 0 GB.
* testsuite/ld-scripts/print-memory-usage-1.l: Validate emplty region.
* testsuite/ld-scripts/print-memory-usage-1.t: Define empty region.
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
---
ld/ldlang.c | 4 +++-
ld/testsuite/ld-scripts/print-memory-usage-1.l | 1 +
ld/testsuite/ld-scripts/print-memory-usage-1.t | 1 +
3 files changed, 5 insertions(+), 1 deletion(-)
Comments
Hi Torbjörn,
> When using --print-memory-usage, the printed size can be zero and in
> that case, the unit should be B and not GB.
>
> ld/
> * ldlang.c (lang_print_memory_size) Print 0 B instead of 0 GB.
> * testsuite/ld-scripts/print-memory-usage-1.l: Validate emplty region.
> * testsuite/ld-scripts/print-memory-usage-1.t: Define empty region.
Patch approved and applied.
Cheers
Nick
@@ -9921,7 +9921,9 @@ lang_ld_feature (char *str)
static void
lang_print_memory_size (uint64_t sz)
{
- if ((sz & 0x3fffffff) == 0)
+ if (sz == 0)
+ printf (" %10" PRIu64 " B", sz);
+ else if ((sz & 0x3fffffff) == 0)
printf ("%10" PRIu64 " GB", sz >> 30);
else if ((sz & 0xfffff) == 0)
printf ("%10" PRIu64 " MB", sz >> 20);
@@ -1,3 +1,4 @@
Memory region Used Size Region Size %age Used
ROM: 32 B 1 KB 3.1[23]%
RAM: 32 B 256 KB 0.01%
+ FOO: 0 B 1 KB 0.00%
@@ -2,4 +2,5 @@ MEMORY
{
ROM (RX) : ORIGIN = 0x1000, LENGTH = 1K
RAM (W) : ORIGIN = 0x100000, LENGTH = 256K
+ FOO (RX) : ORIGIN = 0x100, LENGTH = 1K
}