Yay for the syntax error! Usually they are the simplest of problems, you forgot a semi-colon, or left off a parenthesis. But while I was building my OpenEmbedded build environment I ran into the error listed in the title here, but it seems far from simple. It is nested deeply within many layers of build systems:
make TARGETS=oneprocess SHELL=”/usr/bin/tcsh” CC=”ccache gcc” CFLAGS=” -isystem/home/hans/code/openembedded/stuff/tmp/staging/i686-linux/usr/include -Os -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-error -DHAVE_CONFIG_H -DGENERATOR_FILE” LDFLAGS=”" LIBERTY=”/home/hans/code/openembedded/stuff/tmp/work/i686-linux/gcc-native-3.4.6-r9/gcc-3.4.6/build.i686-linux.i686-linux/gcc/../libiberty/libiberty.a” install-bin
make[2]: Entering directory `/home/hans/code/openembedded/stuff/tmp/work/i686-linux/gcc-native-3.4.6-r9/gcc-3.4.6/build.i686-linux.i686-linux/gcc/fixinc’
/usr/bin/tcsh /home/hans/code/openembedded/stuff/tmp/work/i686-linux/gcc-native-3.4.6-r9/gcc-3.4.6/gcc/fixinc/genfixes machname.h
SHELL=/bin/sh: Command not found.
export: Command not found.
if: Expression Syntax.
make[2]: *** [machname.h] Error 1
make[2]: Leaving directory `/home/hans/code/openembedded/stuff/tmp/work/i686-linux/gcc-native-3.4.6-r9/gcc-3.4.6/build.i686-linux.i686-linux/gcc/fixinc’
make[1]: *** [fixinc.sh] Error 2
make[1]: Leaving directory `/home/hans/code/openembedded/stuff/tmp/work/i686-linux/gcc-native-3.4.6-r9/gcc-3.4.6/build.i686-linux.i686-linux/gcc’
make: *** [all-gcc] Error 2
FATAL: oe_runmake failed
After much searching around, I found that this bug can be found in the original sources of gcc-3.4.6: NetBSD Problem Report #33238. Hmm, well, it looks like the root of the problem is this:
SHELL=/bin/sh: Command not found.
export: Command not found.
This is Bourne Shell (sh, bash, ksh, etc.) syntax and I am weird, old stickler for tcsh. So I ran bash, like basically everyone does these days, and voila, no more problem…