ld: Print 0 size in B and not in GB

Message ID 20231217211607.270091-1-torbjorn.svensson@foss.st.com
State New
Headers
Series ld: Print 0 size in B and not in GB |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_binutils_check--master-arm success Testing passed

Commit Message

Torbjorn SVENSSON Dec. 17, 2023, 9:16 p.m. UTC
  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

Nick Clifton Dec. 18, 2023, 12:33 p.m. UTC | #1
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
  

Patch

diff --git a/ld/ldlang.c b/ld/ldlang.c
index 566c2b8326f..105404adcfb 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -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);
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-1.l b/ld/testsuite/ld-scripts/print-memory-usage-1.l
index e666a632c96..c59722059fd 100644
--- a/ld/testsuite/ld-scripts/print-memory-usage-1.l
+++ b/ld/testsuite/ld-scripts/print-memory-usage-1.l
@@ -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%
diff --git a/ld/testsuite/ld-scripts/print-memory-usage-1.t b/ld/testsuite/ld-scripts/print-memory-usage-1.t
index 97065b30c52..56484f451c5 100644
--- a/ld/testsuite/ld-scripts/print-memory-usage-1.t
+++ b/ld/testsuite/ld-scripts/print-memory-usage-1.t
@@ -2,4 +2,5 @@  MEMORY
 {
   ROM (RX) : ORIGIN = 0x1000, LENGTH = 1K
   RAM (W)  : ORIGIN = 0x100000, LENGTH = 256K
+  FOO (RX) : ORIGIN = 0x100, LENGTH = 1K
 }