Follow-up Comment #3, bug #56764 (project make): [comment #2 comment #2:] > When make invokes printf it's assuming a POSIX shell, and running the /usr/bin/printf executable not the bash builtin.
Look ma, no /usr/bin/printf: mad@shuttle:~/tmp/make-56764$ strace -f make 2>&1 | grep exec execve("/usr/bin/make", ["make"], [/* 42 vars */]) = 0 [pid 31739] execve("/bin/sh", ["/bin/sh", "-c", "printf '\\x00\\x00\\x8f\\x60' > gene"...], [/* 45 vars */] <unfinished ...> [pid 31739] <... execve resumed> ) = 0 mad@shuttle:~/tmp/make-56764$ hexdump -C generated_file.bin 00000000 5c 78 30 30 5c 78 30 30 5c 78 38 66 5c 78 36 30 |\x00\x00\x8f\x60| 00000010 mad@shuttle:~/tmp/make-56764$ That's using exactly the OP's makefile. If I'd have been posting the bug report, I'd have written the makefile on one line, to avoid problems with tabs in emails: mad@shuttle:~/tmp/make-56764$ cat Makefile.martind generated_file: ; @printf '\x00\x00\x8f\x60' mad@shuttle:~/tmp/make-56764$ make -f Makefile.martind | hexdump -C 00000000 00 00 8f 60 |...`| 00000004 mad@shuttle:~/tmp/make-56764$ Oh dear, the problem's gone away, but what's this: mad@shuttle:~/tmp/make-56764$ strace -f make -f Makefile.martind 2>&1 | grep exec execve("/usr/bin/make", ["make", "-f", "Makefile.martind"], [/* 42 vars */]) = 0 [pid 31938] execve("/usr/local/bin/printf", ["printf", "\\x00\\x00\\x8f\\x60"], [/* 45 vars */]) = -1 ENOENT (No such file or directory) [pid 31938] execve("/usr/bin/printf", ["printf", "\\x00\\x00\\x8f\\x60"], [/* 45 vars */]) = 0 mad@shuttle:~/tmp/make-56764$ Now it's executed /usr/bin/printf, as Paul suggested it would, but, on this computer, Debian Stretch's coreutils' /usr/bin/printf supports these non-standard escapes. I think it's the OP's > which stops make from executing /usr/bin/printf directly. I have no dispute with anything else Paul wrote. Ugh, octal, I wish we could let the 1970s go. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?56764> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make