Bug 205771 - UML: allyesconfig doesn't build/boot
Summary: UML: allyesconfig doesn't build/boot
Status: NEW
Alias: None
Product: Tools
Classification: Unclassified
Component: KUnit (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Tools/KUnit virtual default assignee
URL:
Keywords:
Depends on:
Blocks: 205223
  Show dependency tree
 
Reported: 2019-12-04 21:55 UTC by Brendan Higgins
Modified: 2019-12-05 22:31 UTC (History)
1 user (show)

See Also:
Kernel Version: kselftest/test (5.4)
Tree: Mainline
Regression: No


Attachments

Description Brendan Higgins 2019-12-04 21:55:04 UTC
Forked from: https://bugzilla.kernel.org/show_bug.cgi?id=205223

Heidi Fahim discovered that allyesconfig is broken for UML.

I tracked down all the offending configs and it appears to be quite a few:

CONFIG_STATIC_LINK=y
CONFIG_UML_NET_VECTOR=y
CONFIG_UML_NET_VDE=y
CONFIG_UML_NET_PCAP=y
CONFIG_NET_PTP_CLASSIFY=y
CONFIG_IP_VS=y
CONFIG_BRIDGE_EBT_BROUTE=y
CONFIG_BRIDGE_EBT_T_FILTER=y
CONFIG_BRIDGE_EBT_T_NAT=y
CONFIG_MTD_NAND_CADENCE=y
CONFIG_MTD_NAND_NANDSIM=y
CONFIG_BLK_DEV_NULL_BLK=y
CONFIG_BLK_DEV_RAM=y
CONFIG_SCSI_DEBUG=y
CONFIG_NET_VENDOR_XILINX=y
CONFIG_NULL_TTY=y
CONFIG_PTP_1588_CLOCK=y
CONFIG_PINCTRL_EQUILIBRIUM=y
CONFIG_DMABUF_SELFTESTS=y
CONFIG_COMEDI=y
CONFIG_XIL_AXIS_FIFO=y
CONFIG_EXFAT_FS=y
CONFIG_STM_DUMMY=y
CONFIG_FSI_MASTER_ASPEED=y
CONFIG_JFS_FS=y
CONFIG_UBIFS_FS=y
CONFIG_CRAMFS=y
CONFIG_CRYPTO_DEV_SAFEXCEL=y
CONFIG_CRYPTO_DEV_AMLOGIC_GXL=y
CONFIG_KCOV=y
CONFIG_LKDTM=y
CONFIG_REED_SOLOMON_TEST=y
CONFIG_TEST_RHASHTABLE=y
CONFIG_TEST_MEMINIT=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y

Some of these prevent UML from building, others cause UML to crash before reaching the end of init.

One important note: It is not clear that CONFIG_NULL_TTY=y is actually broken on UML; however, it does cause the null TTY it creates to become console, which prevents UML from printing output after it is initialized.
Comment 1 Brendan Higgins 2019-12-04 22:30:19 UTC
CONFIG_UML_NET_VECTOR=y
CONFIG_UML_NET_VDE=y
CONFIG_UML_NET_PCAP=y

all appear to be just very very broken. We should probably just delete them.

CONFIG_EXFAT_FS=y

appears to be broken on multiple architectures. It has a symbol name conflict with hostfs:

ld: drivers/staging/exfat/exfat_core.o: in function `rename_file':
/usr/local/google/home/brendanhiggins/gbmc-linux/drivers/staging/exfat/exfat_core.c:2327: multiple definition of `rename_file'; fs/hostfs/hostfs_user.o:/usr/local/google/home/brendanhiggins/gbmc-linux/fs/hostfs/hostfs_user.c:350: first defined here
make: *** [Makefile:1077: vmlinux] Error 1

CONFIG_LKDTM=y

doesn't seem to work with UML due to undefined symbols:

drivers/misc/lkdtm/bugs.c: In function ‘lkdtm_UNSET_SMEP’:
drivers/misc/lkdtm/bugs.c:288:8: error: implicit declaration of function ‘native_read_cr4’ [-Werror=implicit-function-declaration]
  cr4 = native_read_cr4();
        ^~~~~~~~~~~~~~~
drivers/misc/lkdtm/bugs.c:290:13: error: ‘X86_CR4_SMEP’ undeclared (first use in this function); did you mean ‘X86_FEATURE_SMEP’?
  if ((cr4 & X86_CR4_SMEP) != X86_CR4_SMEP) {
             ^~~~~~~~~~~~
             X86_FEATURE_SMEP
drivers/misc/lkdtm/bugs.c:290:13: note: each undeclared identifier is reported only once for each function it appears in
drivers/misc/lkdtm/bugs.c:297:2: error: implicit declaration of function ‘native_write_cr4’; did you mean ‘direct_write_cr4’? [-Werror=implicit-function-declaration]
  native_write_cr4(cr4);
  ^~~~~~~~~~~~~~~~
  direct_write_cr4
Comment 2 Brendan Higgins 2019-12-04 22:42:01 UTC
CONFIG_PINCTRL_EQUILIBRIUM=y
CONFIG_MTD_NAND_CADENCE=y
CONFIG_FSI_MASTER_ASPEED=y
CONFIG_CRYPTO_DEV_SAFEXCEL=y
CONFIG_XIL_AXIS_FIFO=y
CONFIG_CRYPTO_DEV_AMLOGIC_GXL=y
CONFIG_XILINX_AXI_EMAC=y

all have the issue that they depend on devm_platform_ioremap_resource which is not defined when CONFIG_HAS_IOMEM is not set (like on UML):

/usr/bin/ld: drivers/pinctrl/pinctrl-equilibrium.o: in function `eqbr_pinctrl_probe':
/usr/local/google/home/brendanhiggins/gbmc-linux/drivers/pinctrl/pinctrl-equilibrium.c:908: undefined reference to `devm_platform_ioremap_resource'
/usr/bin/ld: /usr/local/google/home/brendanhiggins/gbmc-linux/drivers/pinctrl/pinctrl-equilibrium.c:223: undefined reference to `devm_ioremap_resource'
/usr/bin/ld: drivers/mtd/nand/raw/cadence-nand-controller.o: in function `cadence_nand_dt_probe.cold.31':
/usr/local/google/home/brendanhiggins/gbmc-linux/drivers/mtd/nand/raw/cadence-nand-controller.c:2969: undefined reference to `devm_platform_ioremap_resource'
/usr/bin/ld: /usr/local/google/home/brendanhiggins/gbmc-linux/drivers/mtd/nand/raw/cadence-nand-controller.c:2977: undefined reference to `devm_ioremap_resource'
/usr/bin/ld: drivers/net/ethernet/xilinx/xilinx_axienet_main.o: in function `axienet_probe':
/usr/local/google/home/brendanhiggins/gbmc-linux/drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1680: undefined reference to `devm_ioremap_resource'
/usr/bin/ld: /usr/local/google/home/brendanhiggins/gbmc-linux/drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1779: undefined reference to `devm_ioremap_resource'
/usr/bin/ld: /usr/local/google/home/brendanhiggins/gbmc-linux/drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1789: undefined reference to `devm_ioremap_resource'
/usr/bin/ld: drivers/crypto/inside-secure/safexcel.o: in function `safexcel_probe':
/usr/local/google/home/brendanhiggins/gbmc-linux/drivers/crypto/inside-secure/safexcel.c:1692: undefined reference to `devm_platform_ioremap_resource'
/usr/bin/ld: drivers/crypto/amlogic/amlogic-gxl-core.o: in function `meson_crypto_probe':
/usr/local/google/home/brendanhiggins/gbmc-linux/drivers/crypto/amlogic/amlogic-gxl-core.c:240: undefined reference to `devm_platform_ioremap_resource'
/usr/bin/ld: drivers/staging/axis-fifo/axis-fifo.o: in function `axis_fifo_probe':
/usr/local/google/home/brendanhiggins/gbmc-linux/drivers/staging/axis-fifo/axis-fifo.c:809: undefined reference to `devm_ioremap_resource'
/usr/bin/ld: drivers/fsi/fsi-master-aspeed.o: in function `fsi_master_aspeed_probe':
/usr/local/google/home/brendanhiggins/gbmc-linux/drivers/fsi/fsi-master-aspeed.c:436: undefined reference to `devm_ioremap_resource'
Comment 3 Brendan Higgins 2019-12-04 22:52:59 UTC
(In reply to Brendan Higgins from comment #1)

> CONFIG_EXFAT_FS=y
> 
> appears to be broken on multiple architectures. It has a symbol name
> conflict with hostfs:
> 
> ld: drivers/staging/exfat/exfat_core.o: in function `rename_file':
> /usr/local/google/home/brendanhiggins/gbmc-linux/drivers/staging/exfat/
> exfat_core.c:2327: multiple definition of `rename_file';
> fs/hostfs/hostfs_user.o:/usr/local/google/home/brendanhiggins/gbmc-linux/fs/
> hostfs/hostfs_user.c:350: first defined here
> make: *** [Makefile:1077: vmlinux] Error 1

Actually, CONFIG_HOSTFS appears to only be available on UML. So EXFAT is only broken on UML.

Note You need to log in before you can comment on or make changes to this bug.