[boot-wrapper PATCH] model.lds.S: Quote file paths

Kevin Brodsky kevin.brodsky at arm.com
Mon Jan 2 05:24:46 PST 2023


Inserting arbitrary paths in a linker script verbatim can be
problematic, even if they don't contain whitespaces, as ld has a
special interpretation for certain special characters (such as @).

Fix this by quoting all user-provided paths in model.lds.S using the
preprocessor.

Signed-off-by: Kevin Brodsky <kevin.brodsky at arm.com>
---
 model.lds.S | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/model.lds.S b/model.lds.S
index dacaa25ba9fd..e07cbc04b9fa 100644
--- a/model.lds.S
+++ b/model.lds.S
@@ -7,6 +7,9 @@
  * found in the LICENSE.txt file.
  */
 
+#define _STR(s) #s
+#define STR(s) _STR(s)
+
 #ifdef BOOTWRAPPER_32
 OUTPUT_FORMAT("elf32-littlearm")
 OUTPUT_ARCH(arm)
@@ -17,13 +20,13 @@ OUTPUT_ARCH(aarch64)
 TARGET(binary)
 
 #ifdef XEN
-INPUT(XEN)
+INPUT(STR(XEN))
 #endif
-INPUT(KERNEL)
+INPUT(STR(KERNEL))
 INPUT(./fdt.dtb)
 
 #ifdef USE_INITRD
-INPUT(FILESYSTEM)
+INPUT(STR(FILESYSTEM))
 #endif
 
 ENTRY(_start)
@@ -36,14 +39,14 @@ SECTIONS
 	 */
 	.kernel (PHYS_OFFSET + KERNEL_OFFSET): {
 		kernel__start = .;
-		KERNEL
+		STR(KERNEL)
 		kernel__end = .;
 	}
 
 #ifdef XEN
 	.xen (PHYS_OFFSET + XEN_OFFSET): {
 		xen__start = .;
-		XEN
+		STR(XEN)
 		xen__end = .;
 	}
 
@@ -62,7 +65,7 @@ SECTIONS
 #ifdef USE_INITRD
 	.filesystem (PHYS_OFFSET + FS_OFFSET): {
 		filesystem__start = .;
-		FILESYSTEM
+		STR(FILESYSTEM)
 		filesystem__end = .;
 	}
 #endif
-- 
2.38.1




More information about the linux-arm-kernel mailing list