nathanchance wrote: For what it's worth, this breaks building the Linux kernel for `ARCH=arm64` pretty badly, with errors in several drivers:
``` $ make -skj"$(nrpoc)" ARCH=arm64 LLVM=1 mrproper defconfig all ... drivers/clk/qcom/gcc-ipq6018.c:896:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it 896 | F(533000000, P_GPLL0, 1.5, 0, 0), | ^ drivers/clk/qcom/clk-rcg.h:10:41: note: expanded from macro 'F' 10 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) } | ^ ... In file included from drivers/gpu/drm/msm/adreno/a2xx_gpu.c:4: In file included from drivers/gpu/drm/msm/adreno/a2xx_gpu.h:13: drivers/gpu/drm/msm/adreno/a2xx.xml.h:1849:24: error: 'A2XX_PA_CL_VPORT_XSCALE' requires 'float' type support, but ABI 'aapcs' does not support it 1849 | static inline uint32_t A2XX_PA_CL_VPORT_XSCALE(float val) | ^ drivers/gpu/drm/msm/adreno/a2xx.xml.h:1849:24: note: 'A2XX_PA_CL_VPORT_XSCALE' defined here drivers/gpu/drm/msm/adreno/a2xx.xml.h:1857:24: error: 'A2XX_PA_CL_VPORT_XOFFSET' requires 'float' type support, but ABI 'aapcs' does not support it 1857 | static inline uint32_t A2XX_PA_CL_VPORT_XOFFSET(float val) | ^ drivers/gpu/drm/msm/adreno/a2xx.xml.h:1857:24: note: 'A2XX_PA_CL_VPORT_XOFFSET' defined here drivers/gpu/drm/msm/adreno/a2xx.xml.h:1865:24: error: 'A2XX_PA_CL_VPORT_YSCALE' requires 'float' type support, but ABI 'aapcs' does not support it 1865 | static inline uint32_t A2XX_PA_CL_VPORT_YSCALE(float val) | ^ drivers/gpu/drm/msm/adreno/a2xx.xml.h:1865:24: note: 'A2XX_PA_CL_VPORT_YSCALE' defined here ... ``` I suspect this may be related to the kernel's use of `-mgeneral-regs-only`? Up until this point though, there have been no reported issues with code generation or runtime time impact with `clang`-built kernels. https://github.com/llvm/llvm-project/pull/74460 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits