Message ID | 20230102132446.2056889-1-kevin.brodsky@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [boot-wrapper] model.lds.S: Quote file paths | expand |
On Mon, Jan 02, 2023 at 01:24:46PM +0000, Kevin Brodsky wrote: > 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@arm.com> Thanks; applied. Mark. > --- > 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 >
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
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@arm.com> --- model.lds.S | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)