The behaviour of echo for arguments containing the two-character substring `\0` varies among implementations: in coreutils echo, and in the builtins of ash, bash, busybox sh, csh, and fish, the two characters `\0` are emitted literally; the builtins of tcsh and zsh emit a null character and continue rendering the rest of the string; dash's builtin terminates the string early.
Ubuntu since 6.10 uses dash as /bin/sh, so on such systems, configure misdiagnoses the assembler as unable to optimize eh_frame sections correctly, yielding ultimately an unnecessary use of `--traditional-format` in the driver's invocation of the assembler. diff -ru gcc-4.2.1-orig/gcc/configure gcc-4.2.1/gcc/configure --- gcc-4.2.1-orig/gcc/configure 2007-01-01 22:44:31.000000000 -0500 +++ gcc-4.2.1/gcc/configure 2017-09-19 06:50:48.546060400 -0400 @@ -14076,7 +14076,8 @@ .LSCIE1: .4byte 0x0 .byte 0x1 - .ascii "z\0" + .ascii "z" + .byte 0x0 .byte 0x1 .byte 0x78 .byte 0x1a