This switches the /usr/bin/cpp shell script cpp wrapper to tradcpp. As the script sets -traditional by default anything calling this script has been getting traditional semantics.
gcc3 and gcc4 have a builtin preprocessor that is used by default that can be disabled with -no-integrated-cpp in addition to the standalone cpp binary. clang only has an integrated preprocessor and does not have a standalone preprocessor or the option of using one. With this change src and xenocara build fine, I'd be interested to hear how a ports build goes. I get the impression that FreeBSD is using tradcpp for all ports that require an external cpp after looking at "port is required by" on http://www.freshports.org/devel/tradcpp . Index: cpp.sh =================================================================== RCS file: /cvs/src/usr.bin/cpp/cpp.sh,v retrieving revision 1.9 diff -u -p -r1.9 cpp.sh --- cpp.sh 9 Dec 2013 02:35:09 -0000 1.9 +++ cpp.sh 8 Aug 2014 16:52:26 -0000 @@ -47,7 +47,7 @@ set -A OPTS set -A INCS -- "-nostdinc" FOUNDFILES=false -CPP=/usr/libexec/cpp +CPP=/usr/libexec/tradcpp if [ ! -x $CPP ]; then CPP=`cc -print-search-dirs | sed -ne '/^install: /s/install: \(.*\)/\1cpp/p'`; if [ ! -x $CPP ]; then