"echo -e" is a GNU extension. When cross-compiling the kernel on a BSD-like operating system (Mac OS X in my case), this doesn't work. One could install a GNU version of echo, put that in the $PATH before the system echo and use "/usr/bin/env echo", but the solution with printf is simpler. Since it is no disadvantage on Linux, I hope that gets accepted even if cross-compiling the Linux kernel on another Unix operating system is quite a rare use case.
Showing the changes to scripts (1 of 1 file). Show all
Unified · Split
| @@ -104,7 +104,7 @@ as-option = $(call try-run,\ · 103 unmodified lines | ||
| 104 | 104 | # Usage: cflags-y += $(call as-instr,instr,option1,option2) |
| 105 | 105 | |
| 106 | 106 | as-instr = $(call try-run,\ |
| 107 | − /bin/echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3)) | |
| 107 | + printf "%b\n" "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3)) | |
| 108 | 108 | |
| 109 | 109 | # cc-option |
| 110 | 110 | # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) |