Kernel does not compile: /usr/src/linux $ sudo LANG=en LC_ALL=C nice make -j3 CHK include/linux/version.h CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-x86 CALL scripts/checksyscalls.sh CHK include/linux/compile.h # @-chmod -f 500 /boot # @-chmod -f 500 /lib/modules # @-chmod -f 700 . # @echo ' grsec: protected kernel image paths' CC drivers/pci/intel-iommu.o drivers/pci/intel-iommu.c: In function `__iommu_calculate_agaw': drivers/pci/intel-iommu.c:452: sorry, unimplemented: inlining failed in call to 'width_to_agaw': function body not available drivers/pci/intel-iommu.c:460: sorry, unimplemented: called from here make[2]: *** [drivers/pci/intel-iommu.o] Error 1 make[1]: *** [drivers/pci] Error 2 make[1]: *** Waiting for unfinished jobs.... Reproducible: Always
Created attachment 239659 [details] config used to build the kernel Attaching the kernel config
Looks like GCC3 does not like forward declarations with inline. Moving the function body to line 452 (including the referenced #define) makes the source compile. Using: gcc-Version 3.4.6 (Gentoo Hardened 3.4.6-r2 p1.5, ssp-3.4.6-1.0, pie-8.7.10)
The current hardened compiler is gcc-4.3.4. We are also working to stabilize gcc-4.4.4-r1. Can you use one of those? We'll be keeping gcc-3.4.6 around for reference, I'm not sure we want to deal with bugs related to it. If the problem persists with gcc-4.X, then we need to address it. My suspicion is that inlining is better handled by gcc-4.X. You may find that you hit the same bug with vanilla sources using gcc-3.4.6.
OT but related: (In reply to comment #3) > The current hardened compiler is gcc-4.3.4. We are also working to stabilize > gcc-4.4.4-r1. Can you use one of those? Can I upgrade from gcc3 to gcc4 without recompiling the whole system or breaking installed software? It's a production system and I would looking forward moving to gcc4 but I fear the consequences...
Closing this one because there is no issue between the current stable compile and kernel.