Re: sdhci.c:undefined reference to `mmc_can_gpio_cd'

From: Randy Dunlap
Date: Thu Feb 11 2021 - 23:58:57 EST


On 2/11/21 1:44 AM, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 291009f656e8eaebbdfd3a8d99f6b190a9ce9deb
> commit: e65bb38824711559844ba932132f417bc5a355e2 mmc: sdhci: do not enable card detect interrupt for gpio cd type
> date: 11 months ago
> config: powerpc-randconfig-r032-20210210 (attached as .config)
> compiler: powerpc-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e65bb38824711559844ba932132f417bc5a355e2
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout e65bb38824711559844ba932132f417bc5a355e2
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/wimax/op-msg.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/wimax/op-reset.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/wimax/op-rfkill.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/wimax/op-state-get.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/wimax/stack.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/wimax/debugfs.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/bat_algo.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/bat_iv_ogm.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/bitarray.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/fragmentation.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/gateway_client.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/gateway_common.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/hard-interface.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/hash.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/log.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/main.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/netlink.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/originator.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/routing.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/send.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/soft-interface.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/tp_meter.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/translation-table.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/batman-adv/tvlv.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/core.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/netlink.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/af_nfc.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/rawsock.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/llcp_core.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/llcp_commands.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/llcp_sock.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/nci/core.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/nci/data.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/nci/lib.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/nci/ntf.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/nci/rsp.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/nci/hci.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/nci/spi.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/hci/core.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/hci/hcp.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/hci/command.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/hci/llc.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/hci/llc_nop.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/nfc/hci/llc_shdlc.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/vmw_vsock/af_vsock.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/vmw_vsock/af_vsock_tap.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/vmw_vsock/vsock_addr.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/mpls/mpls_gso.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/hsr/hsr_main.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/hsr/hsr_framereg.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/hsr/hsr_device.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/hsr/hsr_netlink.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/hsr/hsr_slave.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/hsr/hsr_forward.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `net/hsr/hsr_debugfs.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/argv_split.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/bootconfig.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/bug.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/cmdline.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/cpumask.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/dec_and_lock.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/decompress.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/decompress_unlzma.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/dump_stack.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/extable.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt_ro.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt_rw.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt_wip.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/flex_proportions.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/idr.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/ioremap.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/is_single_threaded.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/klist.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/kobject.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/kobject_uevent.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/logic_pio.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/memcat_p.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/plist.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/radix-tree.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/ratelimit.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/rbtree.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/seq_buf.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/sha1.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/show_mem.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/siphash.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/string.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/timerqueue.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/vsprintf.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: warning: orphan section `.ctors.65435' from `lib/xarray.o' being placed in section `.ctors.65435'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_alloc_host':
> (.text+0x25d0): undefined reference to `mmc_alloc_host'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_free_host':
> (.text+0x2ce4): undefined reference to `mmc_free_host'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_get_cd':
> sdhci.c:(.text+0x10894): undefined reference to `mmc_gpio_get_cd'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_check_ro':
> sdhci.c:(.text+0x119a8): undefined reference to `mmc_can_gpio_ro'
> powerpc-linux-ld: sdhci.c:(.text+0x119f0): undefined reference to `mmc_gpio_get_ro'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_set_card_detection':
>>> sdhci.c:(.text+0x11f50): undefined reference to `mmc_can_gpio_cd'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_remove_host':
> (.text+0x1271c): undefined reference to `mmc_remove_host'
> powerpc-linux-ld: (.text+0x12c9c): undefined reference to `mmc_remove_host'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `__sdhci_add_host':
> (.text+0x13564): undefined reference to `mmc_add_host'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_request_done':
> sdhci.c:(.text+0x17540): undefined reference to `mmc_request_done'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_thread_irq':
> sdhci.c:(.text+0x187d4): undefined reference to `mmc_detect_change'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_start_signal_voltage_switch':
> (.text+0x1a608): undefined reference to `mmc_regulator_set_vqmmc'
> powerpc-linux-ld: (.text+0x1a7e8): undefined reference to `mmc_regulator_set_vqmmc'
> powerpc-linux-ld: (.text+0x1a9c8): undefined reference to `mmc_regulator_set_vqmmc'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_setup_host':
> (.text+0x1c3d8): undefined reference to `mmc_regulator_get_supply'
> powerpc-linux-ld: (.text+0x20fe0): undefined reference to `mmc_gpio_get_cd'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_finish_command':
> sdhci.c:(.text+0x273f4): undefined reference to `mmc_command_done'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_irq':
> sdhci.c:(.text+0x28e4c): undefined reference to `sdio_signal_irq'
> powerpc-linux-ld: sdhci.c:(.text+0x29d4c): undefined reference to `mmc_request_done'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_set_power':
> (.text+0x2b560): undefined reference to `mmc_regulator_set_ocr'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_set_ios':
> (.text+0x2bd04): undefined reference to `mmc_detect_change'
> powerpc-linux-ld: (.text+0x2d884): undefined reference to `mmc_regulator_set_ocr'
> powerpc-linux-ld: drivers/mmc/host/sdhci.o: in function `sdhci_abort_tuning':
> (.text+0x2ec4c): undefined reference to `mmc_abort_tuning'
>
> Kconfig warnings: (for reference only)
> WARNING: unmet direct dependencies detected for MMC_SDHCI
> Depends on MMC && HAS_DMA
> Selected by
> - AKEBONO && PPC_47x
> WARNING: unmet direct dependencies detected for MMC_SDHCI_PLTFM
> Depends on MMC && MMC_SDHCI
> Selected by
> - AKEBONO && PPC_47x
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
>

Fixed in powerpc (some future/next branch) by:

commit 665d8d58761cba41147fe7e98e2ceed1cbf603a2
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Mon Feb 1 12:25:03 2021 +1100

powerpc/akebono: Fix unmet dependency errors

The AKEBONO config has various selects under it, including some with
user-selectable dependencies, which means those dependencies can be
disabled. This leads to warnings from Kconfig.


--
~Randy