Re: linux-next: build failure after merge of the regulator tree

From: Bartosz Golaszewski
Date: Tue Sep 03 2019 - 02:46:18 EST


wt., 3 wrz 2019 o 06:26 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> napisaÅ(a):
>
> Hi all,
>
> After merging the regulator tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
>
> ld: drivers/ata/ahci.o:(.opd+0x150): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/ata/ahci.o: in function `.regulator_bulk_set_supply_names':
> ahci.c:(.text+0x1780): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/ata/libahci.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x84a0): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/ata/libahci.o:(.opd+0x5d0): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/ata/sata_mv.o:(.opd+0x690): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/ata/sata_mv.o: in function `.regulator_bulk_set_supply_names':
> sata_mv.c:(.text+0xb9b0): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/common/common.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x7d0): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/common/common.o:(.opd+0x120): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/core/usb.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x17d0): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/core/usb.o:(.opd+0x348): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/core/hub.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x2610): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/core/hub.o:(.opd+0x378): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/core/hcd.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x3020): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/core/hcd.o:(.opd+0x378): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/core/message.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x2350): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/core/message.o:(.opd+0x240): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/core/phy.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x700): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/core/phy.o:(.opd+0xc0): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/core/of.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x2f0): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/core/of.o:(.opd+0x48): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/phy/of.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x120): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/phy/of.o:(.opd+0x18): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/host/ehci-hcd.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x11830): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/host/ehci-hcd.o:(.opd+0x8d0): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/usb/host/ohci-hcd.o: in function `.regulator_bulk_set_supply_names':
> (.text+0xe8d0): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/usb/host/ohci-hcd.o:(.opd+0x570): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
> ld: drivers/of/platform.o: in function `.regulator_bulk_set_supply_names':
> (.text+0x1180): multiple definition of `.regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.text+0x2390): first defined here
> ld: drivers/of/platform.o:(.opd+0x180): multiple definition of `regulator_bulk_set_supply_names'; drivers/phy/phy-core.o:(.opd+0x3f0): first defined here
>
> Caused by commit
>
> d0087e72710c ("regulator: provide regulator_bulk_set_supply_names()")
>
> I applied the following patch for today.
>
> From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Date: Tue, 3 Sep 2019 14:23:17 +1000
> Subject: [PATCH] regulator: stubs in header files should be static inline
>
> Fixes: d0087e72710c ("regulator: provide regulator_bulk_set_supply_names()")
> Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> ---
> include/linux/regulator/consumer.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h
> index 6d2181a76987..fe9bdf37c296 100644
> --- a/include/linux/regulator/consumer.h
> +++ b/include/linux/regulator/consumer.h
> @@ -586,7 +586,7 @@ static inline int regulator_list_voltage(struct regulator *regulator, unsigned s
> return -EINVAL;
> }
>
> -void regulator_bulk_set_supply_names(struct regulator_bulk_data *consumers,
> +static inline void regulator_bulk_set_supply_names(struct regulator_bulk_data *consumers,
> const char *const *supply_names,
> unsigned int num_supplies)
> {
> --
> 2.23.0.rc1
>
> --
> Cheers,
> Stephen Rothwell

Hi Stephen,

a patch for this was already on the list: https://lkml.org/lkml/2019/9/2/668

Bart