[PATCH v2] firmware: use portable newline escape

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Jul 3 11:55:15 PDT 2023


We want to print `\n' literally into the *.gen.S file, so gas turns it
into a literal new line character. Depending on shell, the current
scheme might not work:

  $ dash -c echo\ '\\\\n'
  \n
  $ bash -c echo\ '\\\\n'
  \\n

Fix this by using printf instead. This fixes a cosmetic issue of non-escaped
`\n' making it into the missing section when building without bash, e.g. on
NixOS.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
v1 -> v2:
  - use printf instead of echo with single quotes as the later behaves
    differently between bash and dash. Edited commit message
    appropriately.
---
 firmware/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/firmware/Makefile b/firmware/Makefile
index d7f35853a404..5853950dfe4e 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -62,7 +62,7 @@ filechk_fwbin = { \
 	echo "\#ifdef __PBL__"					;\
 	echo "    .section .missing_fw,\"a\""			;\
 	echo "_fwname_$(FWSTR):"				;\
-	echo ".ascii \"firmware/$(FWNAME)\\\\n\""		;\
+	printf '.ascii "%s"\n' 'firmware/$(FWNAME)\n'		;\
 	echo "\#endif" 						;\
 }
 
-- 
2.39.2




More information about the barebox mailing list