I'm trying to fix a port which absolutely will not build with clang, since clang does not support the gcc extension used by this port. I set USE_GCC=4.2+, which is the lowest version of GCC which will work, but it doesn't properly override CC=clang.
wxs@ack spamdyke % env CC=clang make test-gcc | grep -E "^(CC|USE_GCC)" USE_GCC=4.2+ CC=clang - CXX=c++ - CPP=cpp - CFLAGS="-O2 -pipe -fno-strict-aliasing" wxs@ack spamdyke % I understand this is probably an acceptable behavior, since if the user sets CC=clang they are explicitly asking to build with clang. However, in the case of a port known to not work with clang, and more importantly not able to be fixed, I was hoping there was a knob I could set that would forcible override any compiler related environment variables which may be set. I didn't find one, so I came up with this quick (and poorly tested) patch to do so. The patch allows ports to set GCC_REQUIRED=yes which will forcible override the environment variables. Maybe it makes sense to spit out a warning message saying "I know you asked me to use clang, but this port is known to be broken with clang, and will never be fixed so I'm altering your choice." Here's the output with the patch applied: wxs@ack spamdyke % env CC=clang make test-gcc | grep -E "^(CC|USE_GCC)" USE_GCC=4.2+ CC=gcc42 - CXX=g++42 - CPP=cpp42 - CFLAGS="-O2 -pipe -Wl,-rpath=/usr/local/lib/gcc42 -fno-strict-aliasing" wxs@ack spamdyke % -- WXS
Index: bsd.gcc.mk =================================================================== RCS file: /ncvs/ports/Mk/bsd.gcc.mk,v retrieving revision 1.62 diff -u -r1.62 bsd.gcc.mk --- bsd.gcc.mk 12 Nov 2011 22:03:55 -0000 1.62 +++ bsd.gcc.mk 9 Jan 2012 01:58:55 -0000 @@ -181,7 +181,7 @@ # dependencies, CC, CXX, CPP, and flags. .for v in ${GCCVERSIONS} . if ${_USE_GCC} == ${_GCCVERSION_${v}_V} -. if ${OSVERSION} < ${_GCCVERSION_${v}_L} || ${OSVERSION} > ${_GCCVERSION_${v}_R} +. if ${OSVERSION} < ${_GCCVERSION_${v}_L} || ${OSVERSION} > ${_GCCVERSION_${v}_R} || defined(GCC_REQUIRED) V:= ${_GCCVERSION_${v}_V:S/.//} _GCC_BUILD_DEPENDS:= gcc${V} _GCC_PORT_DEPENDS:= gcc${V}
_______________________________________________ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"