Broken kernel options

This test was conducted with targets/x86_64 starting from make allyesconfig disabling each broken config. Note that the patch-queue of LLVMLinux was applied.


New run 12/2014: currently 5

Compared to the last run with >18 broken options, we are now down to 7 (10/2014.

12/2014

For compiling the kernel

aes_ctrby8_avx-x86_64.c

 AS      arch/x86/crypto/aes_ctrby8_avx-x86_64.o
arch/x86/crypto/aes_ctrby8_avx-x86_64.S: Assembler messages:
arch/x86/crypto/aes_ctrby8_avx-x86_64.S:518: Error: bad expression
arch/x86/crypto/aes_ctrby8_avx-x86_64.S:518: Error: junk at end of line, first unrecognized character is `x'
https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg11049.html

CONFIG_CRYPTO_AES_NI_INTEL

(duplicate of aes_ctrby8_avx-x86_64.c)

CONFIG_XEN

CONFIG_XEN=n

  • VLAIS
 CC      arch/x86/xen/mmu.o
arch/x86/xen/mmu.c:1343:18: error: fields must have a constant size:
     'variable length array in structure' extension will never be
     supported
               DECLARE_BITMAP(mask, num_processors);
                              ^
include/linux/types.h:10:16: note: expanded from macro 'DECLARE_BITMAP'
       unsigned long name[BITS_TO_LONGS(bits)]
                     ^
1 error generated.

QUESTION: do we really need num_processors or would NR_CPUS (else case) not just do the trick (defined by CONFIG_NR_CPUS and thus fixed)?


BUILD_DOCSRC

 HOSTLD  Documentation/vDSO/vdso_standalone_test_x86
Documentation/vDSO/vdso_standalone_test_x86.o: In function `c_main':
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/Documentation /vDSO/vdso_standalone_test_x86.c:(.text+0x21b): undefined reference to `memcpy'
clang-3.6: error: linker command failed with exit code 1 (use -v to see invocation)
scripts/Makefile.host:100: recipe for target 'Documentation/vDSO /vdso_standalone_test_x86' failed
make[5]: *** [Documentation/vDSO/vdso_standalone_test_x86] Error 1

CONFIG_GCOV_KERNEL

No implementation for clang in the kernel (or need of compiler-rt).

From LPC 2014: CONFIG_GCOV_KERNEL - would typically be resolved in Compiler RT

ArndB: Don't link against compilerRT, make your own implementations

CONFIG_RANDOMIZE_BASE

In file included from linux/arch/x86/boot/compressed/aslr.c:8:
In file included from linux/include/linux/module.h:16:
In file included from linux/include/linux/kobject.h:21:
linux/include/linux/sysfs.h:457:37: warning: passing
     'const unsigned char *' to parameter of type 'const char *' converts  between pointers to
     integer types with different sign [-Wpointer-sign]
       return kernfs_find_and_get(parent, name);
                                          
linux/include/linux/kernfs.h:411:57: note: passing
     argument to parameter 'name' here
kernfs_find_and_get(struct kernfs_node *kn, const char *name)
                                                       ^
linux/arch/x86/boot/compressed/aslr.c:97:6: error: 
     ambiguous instructions require an explicit suffix (could be 'mulb',  'mulw', 'mull', or
     'mulq')
       asm("mul %3"
           ^
<inline asm>:1:2: note: instantiated into assembly here
       mul .LCPI0_0(%rip)
       ^
3 warnings and 1 error generated.

For booting the kernel

[...]

10/2014

aes_ctrby8_avx-x86_64.c

 AS      arch/x86/crypto/aes_ctrby8_avx-x86_64.o
arch/x86/crypto/aes_ctrby8_avx-x86_64.S: Assembler messages:
arch/x86/crypto/aes_ctrby8_avx-x86_64.S:518: Error: bad expression
arch/x86/crypto/aes_ctrby8_avx-x86_64.S:518: Error: junk at end of line, first unrecognized character is `x'
https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg11049.html


Workaround + "!CONFIG_CRYPTO_AES_NI_INTEL":
diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile
index d551165..dc01a92 100644
--- a/arch/x86/crypto/Makefile
+++ b/arch/x86/crypto/Makefile
@@ -78,7 +78,8 @@ ifeq ($(avx2_supported),yes)
 endif

 aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o fpu.o
-aesni-intel-$(CONFIG_64BIT) += aesni-intel_avx-x86_64.o aes_ctrby8_avx-x86_64.o
+aesni-intel-$(CONFIG_64BIT) += aesni-intel_avx-x86_64.o
+# aes_ctrby8_avx-x86_64.o


CONFIG_XEN

CONFIG_XEN=n

  • VLAIS
 CC      arch/x86/xen/mmu.o
arch/x86/xen/mmu.c:1343:18: error: fields must have a constant size:
     'variable length array in structure' extension will never be
     supported
               DECLARE_BITMAP(mask, num_processors);
                              ^
include/linux/types.h:10:16: note: expanded from macro 'DECLARE_BITMAP'
       unsigned long name[BITS_TO_LONGS(bits)]
                     ^
1 error generated.


STAGING RTLLIB

RTLLIB COMPILATION BROKEN


MODULES_SIG & CONFIG_INTEGRITY_SIGNATURE

MPILIB COMPILATION BROKEN (patch pending)

MODULES_SIG=n CONFIG_INTEGRITY_SIGNATURE=n CONFIG_ASYMMETRIC_KEY_TYPE=n

 LD      lib/mpi/mpi.o
lib/mpi/generic_mpih-mul1.o: In function `mpihelp_add_1':
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/lib/mpi/mpi-inline.h:45:  multiple definition of `mpihelp_add_1'
lib/mpi/generic_mpih-lshift.o:/home/dl9pf/llvmlinux/targets/x86_64/src/linux  /lib/mpi/mpi-inline.h:45: first defined here

lib/mpi/generic_mpih-mul1.o: In function `mpihelp_add':

/home/dl9pf/llvmlinux/targets/x86_64/src/linux/lib/mpi/mpi-inline.h:67:  multiple definition of `mpihelp_add'
lib/mpi/generic_mpih-lshift.o:/home/dl9pf/llvmlinux/targets/x86_64/src/linux /lib/mpi/mpi-inline.h:67: first defined here
lib/mpi/generic_mpih-mul1.o: In function `mpihelp_sub_1':
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/lib/mpi/mpi-inline.h:85:  multiple definition of `mpihelp_sub_1'


CONFIG_GCOV_KERNEL

We cannot fix as gcda is part of the "external" compiler library compiler-rt (and we don't want to build/link with it)

CONFIG_GCOV_KERNEL=n

  • symbols are part of compiler-rt (which we do not use)
drivers/built-in.o: In function `__llvm_gcov_writeout':
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/drivers/gpu/drm /udl/udl_modeset.c:364: undefined reference to `llvm_gcda_start_file'
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/drivers/gpu/drm /udl/udl_modeset.c:364: undefined reference to `llvm_gcda_emit_function'
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/drivers/gpu/drm /udl/udl_modeset.c:364: undefined reference to `llvm_gcda_emit_arcs'

CONFIG_MISDN

CONFIG_MISDN=n


drivers/isdn/mISDN/layer2.c:(.text+0x1f02a7f): undefined reference to `transmit_enquiry'
drivers/built-in.o: In function `l2_st8_tout_200':
drivers/isdn/mISDN/layer2.c:(.text+0x1f02b2f): undefined reference to `transmit_enquiry'
drivers/built-in.o: In function `l2_st7_tout_203':
drivers/isdn/mISDN/layer2.c:(.text+0x1f02ba5): undefined reference to `transmit_enquiry'
drivers/built-in.o: In function `hfcmulti_init':
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49e08): undefined reference to `vpm_in'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49e31): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49e47): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49e5d): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49e74): undefined reference to `vpm_in'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49e89): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49e9e): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49eb3): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49ec8): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49ef8): undefined reference to `vpm_out'
drivers/built-in.o:drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49f29): more undefined references to `vpm_out' follow
drivers/built-in.o: In function `hfcmulti_init':
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49f61): undefined reference to `vpm_in'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49f8a): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f49fe3): undefined reference to `vpm_out'
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f4a00a): undefined reference to `vpm_out'
drivers/built-in.o: In function `hfcmulti_leds':
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f4d83e): undefined reference to `vpm_out'
drivers/built-in.o: In function `hfcm_bctrl':
drivers/isdn/hardware/mISDN/hfcmulti.c:(.text+0x1f4f55e): undefined reference to `vpm_out'


CONFIG_SCSI_QLA_FC & CONFIG_TCM_QLA2XXX

CONFIG_SCSI_QLA_FC=n CONFIG_TCM_QLA2XXX=n

drivers/built-in.o: In function `qla24xx_start_scsi':
(.text+0x8e245e): undefined reference to `qla24xx_build_scsi_iocbs'
drivers/built-in.o: In function `qla82xx_start_scsi':
(.text+0x8e397c): undefined reference to `qla24xx_build_scsi_iocbs'

STATE UP TO THIS POINT

Right now, it builds - but does not boot.

NEXT

Project Hosting

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More about the foundation...