Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ==== Ports That Redefine CC / CPP / CXX ==== Some ports hardcode which version they want by redefining the //CC// and/or //CPP// and/or //CXX// Makevars. In [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229626|PR 229626]] MarkLinimon claims that this is a bad implementation, and that the values instead should be passed via environment variables. However, that PR as yet has not received any attention. The problem is that each of these ports generates extra output lines at the end of any bulk poudriere run on any GCC-based arch (see more complete list below). Example from a powerpc64 build: <code> /bin/sh: clang60: not found make[2]: "/usr/ports/Mk/Uses/compiler.mk" line 78: warning: "clang60 --version" returned non-zero status make[2]: "/usr/ports/Mk/Uses/compiler.mk" line 133: warning: "clang++60 -### /dev/null 2>&1" returned non-zero status </code> This is annoying. The usage ought to be discouraged. :!: Even if the port correctly parameterizes the version, this is **still** not the correct way to do things. Wrong: <code> CC= ${LOCALBASE}/bin/clang${LLVM_VER} CXX= ${LOCALBASE}/bin/clang++${LLVM_VER} </code> Correct (certain ports): <code> CONFIGURE_ENV+= CC=${LOCALBASE}/bin/clang${LLVM_VER} \ CXX=${LOCALBASE}/bin/clang++${LLVM_VER} \ LLVM_CONFIG=${LOCALBASE}/bin/llvm-config${LLVM_VER} </code> Correct (gmake-based ports): <code> MAKE_ENV+= CC=${LOCALBASE}/bin/clang${LLVM_VER} \ CXX=${LOCALBASE}/bin/clang++${LLVM_VER} \ LLVM_CONFIG=${LOCALBASE}/bin/llvm-config${LLVM_VER} </code> Correct (cmake-based ports): <code> CMAKE_ARGS= -DLLVM_CONFIG_EXECUTABLE:PATH=${LOCALBASE}/bin/llvm-config${LLVM_VER} \ </code> :!: TODO some ports ignore the passed parameters. These ports are multiply broken and must be fixed. | portname | redefinition | implied version | technology | patch available? | | Mk/bsd.gecko.mk | ${LOCALBASE}/bin/clang${LLVM_DEFAULT}, or 80 | | | | | comms/gnuradio | clang${LLVM_DEFAULT} | | cmake | yes | | devel/ikos | clang${LLVM_VERSION} | 80 | cmake | yes | | devel/linux_libusb | ${LINUXBASE}/usr/bin/gcc | | | | | devel/mingw32-libffi | ${PKGNAMEPREFIX}gcc | | | | | devel/mingw32-libyaml | ${PKGNAMEPREFIX}gcc | | | | | devel/oclgrind | clang${LLVM_DEFAULT}, or 80 | | cmake | | | emulators/virtualbox-ose | ${LOCALBASE}/bin/clang${VBOX_LLVM_VER} | 60 | CONFIGURE_ARGS | | | graphics/darktable | clang${LLVM_VER} | 60 | cmake | yes | | graphics/pcl-pointclouds | clang${LLVM_DEFAULT} | | cmake | yes | | lang/ldc | clang70, llvm80 | | cmake | | | lang/ponyc | ${LOCALBASE}/bin/clang${LLVM_VERSION} | 70 | MAKE_ENV | yes | | mail/openemm2013 | clang | | MAKE_ENV | (expiring: ignore) | | mail/openemm2015 | clang | | MAKE_ENV (patch under test) | yes | | math/blis | clang${LLVM_VER} | 60 | CONFIGURE_ARGS | yes | | math/libpgmath | ${LOCALBASE}/llvm60/bin/clang | | cmake | yes | | math/mingw32-libgmp | ${PKGNAMEPREFIX}gcc | | | | | math/saga | clang${LLVM_VER} | 80 | CONFIGURE_ARGS | yes | | misc/veles | clang${LLVM_DEFAULT} | | cmake | yes | | science/agrum | clang${LLVM_DEFAULT} | | cmake | yes | | science/erkale | clang${LLVM_DEFAULT} | | cmake | yes | ==== Example Annoying Results ==== As of 20191021: <code> [00:06:03] Cleaning restricted packages sh: clang70: not found sh: clang: not found sh: mingw32-gcc: not found sh: clang: not found sh: clang80: not found make[2]: "/usr/ports/Mk/Uses/compiler.mk" line 78: warning: "clang80 --version" returned non-zero status make[2]: "/usr/ports/Mk/Uses/compiler.mk" line 133: warning: "clang++80 -### /dev/null 2>&1" returned non-zero status sh: /compat/linux/usr/bin/gcc: not found sh: mingw32-gcc: not found sh: mingw32-gcc: not found sh: clang: not found sh: clang80: not found make[2]: "/usr/ports/Mk/Uses/compiler.mk" line 78: warning: "clang80 --version" returned non-zero status make[2]: "/usr/ports/Mk/Uses/compiler.mk" line 133: warning: "clang++80 -### /dev/null 2>&1" returned non-zero status </code> ---- {{tag>Ports Todo}} hardcodedccversions.txt Last modified: 2019/12/04 19:14by MarkLinimon