Description
Description
During crossbuild of 7.0-preview7 with clang-14 on Alpine Linux, build fails with the following error on multiple files:
clang-14: error: unknown argument: '-gcc-toolchain'
This is due to clang-14 removing parsing of -gcc-toolchain in favor or --gcc-toolchain=
Reproduction Steps
Clone tag v7.0.0-preview.7.22375.6
Build using ROOTFS_DIR="$CBUILDROOT" ./build.sh -arch arm64 -c Release -cross -clang
where CBUILDROOT is your ROOTFS_DIR (in Alpine's case, $HOME/sysroot-arm64)
Expected behavior
--gcc-toolchain= should be used
Actual behavior
-gcc-toolchain used instead
Regression?
This also affects runtime v6.0.8
Known Workarounds
On v6.0.8, the following workaround was used:
- let build fail
- execute following to replace bad arguments
_sedlist="
pal/src/libunwind/src/CMakeFiles/libunwind.dir/build.make
pal/src/CMakeFiles/coreclrpal.dir/build.make
vm/wks/CMakeFiles/cee_wks_core.dir/build.make
dlls/mscordac/CMakeFiles/mscordaccore.dir/build.make
debug/di/CMakeFiles/cordbdi.dir/build.make
debug/createdump/CMakeFiles/createdump.dir/build.make
debug/ee/wks/CMakeFiles/cordbee_wks_obj.dir/build.make
dlls/mscordbi/CMakeFiles/mscordbi.dir/build.make
"
for i in $_sedlist; do
sed 's| -gcc-toolchain | --gcc-toolchain=|' -i artifacts/obj/coreclr/Linux.*.Release/$i || true
done
- start build again
Unfortunately, this does not work on version 7.0.0-preview.7, as build.make seems to be regenerated every build.
Configuration
Alpine Edge w/ clang 14 + cmake 3.23.1
Crossbuild x86_64 -» aarc64
Tested runtime versions 6.0.8 + 7.0.0-preview.7
Other information
I have not found the reason why some build.make
files use the deprecated argument. Granted, I am a layman at clang + cmake.