2019-04-20 07:43:39

by kernel test robot

[permalink] [raw]
Subject: arch/sh/kernel/cpu/sh2/clock-sh7619.o:undefined reference to `followparent_recalc'

Hi Randy,

It's probably a bug fix that unveils the link errors.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 371dd432ab39f7bc55d6ec77d63b430285627e04
commit: acaf892ecbf5be7710ae05a61fd43c668f68ad95 sh: fix multiple function definition build errors
date: 2 weeks ago
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout acaf892ecbf5be7710ae05a61fd43c668f68ad95
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sh

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>


All errors (new ones prefixed by >>):

>> arch/sh/kernel/cpu/sh2/clock-sh7619.o:(.data+0x1c): undefined reference to `followparent_recalc'

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (1.13 kB)
.config.gz (49.73 kB)
Download all attachments

2019-04-20 19:39:12

by Randy Dunlap

[permalink] [raw]
Subject: Re: arch/sh/kernel/cpu/sh2/clock-sh7619.o:undefined reference to `followparent_recalc'

On 4/20/19 12:40 AM, kbuild test robot wrote:
> Hi Randy,
>
> It's probably a bug fix that unveils the link errors.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 371dd432ab39f7bc55d6ec77d63b430285627e04
> commit: acaf892ecbf5be7710ae05a61fd43c668f68ad95 sh: fix multiple function definition build errors
> date: 2 weeks ago
> config: sh-allmodconfig (attached as .config)
> compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout acaf892ecbf5be7710ae05a61fd43c668f68ad95
> # save the attached .config to linux build tree
> GCC_VERSION=7.2.0 make.cross ARCH=sh

Hi,

Once again, the question is the validity of the SH2 .config file in this case
(that was attached).

I don't believe that it is valid because CONFIG_SH_DEVICE_TREE=y,
which selects COMMON_CLK, and there is no followparent_recalc() in the
COMMON_CLK API.

Also, while CONFIG_HAVE_CLK=y, drivers/sh/Makefile prevents that from
building clk/core.c, which could provide followparent_recalc():

ifneq ($(CONFIG_COMMON_CLK),y)
obj-$(CONFIG_HAVE_CLK) += clk/
endif

Hm, maybe that's where the problem is. I'll look into that more.



It would be Good if someone from the SuperH area could/would comment.

Thanks.


> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <[email protected]>
>
>
> All errors (new ones prefixed by >>):
>
>>> arch/sh/kernel/cpu/sh2/clock-sh7619.o:(.data+0x1c): undefined reference to `followparent_recalc'
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>


--
~Randy

2019-04-21 14:08:45

by Yoshinori Sato

[permalink] [raw]
Subject: Re: arch/sh/kernel/cpu/sh2/clock-sh7619.o:undefined reference to `followparent_recalc'

On Sun, 21 Apr 2019 04:34:36 +0900,
Randy Dunlap wrote:
>
> On 4/20/19 12:40 AM, kbuild test robot wrote:
> > Hi Randy,
> >
> > It's probably a bug fix that unveils the link errors.
> >
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head: 371dd432ab39f7bc55d6ec77d63b430285627e04
> > commit: acaf892ecbf5be7710ae05a61fd43c668f68ad95 sh: fix multiple function definition build errors
> > date: 2 weeks ago
> > config: sh-allmodconfig (attached as .config)
> > compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
> > reproduce:
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > git checkout acaf892ecbf5be7710ae05a61fd43c668f68ad95
> > # save the attached .config to linux build tree
> > GCC_VERSION=7.2.0 make.cross ARCH=sh
>
> Hi,
>
> Once again, the question is the validity of the SH2 .config file in this case
> (that was attached).
>
> I don't believe that it is valid because CONFIG_SH_DEVICE_TREE=y,
> which selects COMMON_CLK, and there is no followparent_recalc() in the
> COMMON_CLK API.
>
> Also, while CONFIG_HAVE_CLK=y, drivers/sh/Makefile prevents that from
> building clk/core.c, which could provide followparent_recalc():
>
> ifneq ($(CONFIG_COMMON_CLK),y)
> obj-$(CONFIG_HAVE_CLK) += clk/
> endif
>
> Hm, maybe that's where the problem is. I'll look into that more.
>

Yes.
Selected target (CONFIG_SH_7619_SOLUTION_ENGINE) is non devicetree
and used superh specific clk modules.
So allyesconfig output is incorrect.

I fixed Kconfig to output the correct config.

>
>
> It would be Good if someone from the SuperH area could/would comment.
>
> Thanks.
>
>
> > If you fix the issue, kindly add following tag
> > Reported-by: kbuild test robot <[email protected]>
> >
> >
> > All errors (new ones prefixed by >>):
> >
> >>> arch/sh/kernel/cpu/sh2/clock-sh7619.o:(.data+0x1c): undefined reference to `followparent_recalc'
> >
> > ---
> > 0-DAY kernel test infrastructure Open Source Technology Center
> > https://lists.01.org/pipermail/kbuild-all Intel Corporation
> >
>
>
> --
> ~Randy

--
Yosinori Sato

2019-04-21 15:28:38

by Randy Dunlap

[permalink] [raw]
Subject: Re: arch/sh/kernel/cpu/sh2/clock-sh7619.o:undefined reference to `followparent_recalc'

On 4/21/19 6:52 AM, Yoshinori Sato wrote:
> On Sun, 21 Apr 2019 04:34:36 +0900,
> Randy Dunlap wrote:
>>
>> On 4/20/19 12:40 AM, kbuild test robot wrote:
>>> Hi Randy,
>>>
>>> It's probably a bug fix that unveils the link errors.
>>>
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>> head: 371dd432ab39f7bc55d6ec77d63b430285627e04
>>> commit: acaf892ecbf5be7710ae05a61fd43c668f68ad95 sh: fix multiple function definition build errors
>>> date: 2 weeks ago
>>> config: sh-allmodconfig (attached as .config)
>>> compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
>>> reproduce:
>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>> chmod +x ~/bin/make.cross
>>> git checkout acaf892ecbf5be7710ae05a61fd43c668f68ad95
>>> # save the attached .config to linux build tree
>>> GCC_VERSION=7.2.0 make.cross ARCH=sh
>>
>> Hi,
>>
>> Once again, the question is the validity of the SH2 .config file in this case
>> (that was attached).
>>
>> I don't believe that it is valid because CONFIG_SH_DEVICE_TREE=y,
>> which selects COMMON_CLK, and there is no followparent_recalc() in the
>> COMMON_CLK API.
>>
>> Also, while CONFIG_HAVE_CLK=y, drivers/sh/Makefile prevents that from
>> building clk/core.c, which could provide followparent_recalc():
>>
>> ifneq ($(CONFIG_COMMON_CLK),y)
>> obj-$(CONFIG_HAVE_CLK) += clk/
>> endif
>>
>> Hm, maybe that's where the problem is. I'll look into that more.
>>
>
> Yes.
> Selected target (CONFIG_SH_7619_SOLUTION_ENGINE) is non devicetree
> and used superh specific clk modules.
> So allyesconfig output is incorrect.
>
> I fixed Kconfig to output the correct config.

Thanks for that.
The patch fixes this problem in my builds.

However, now I see these build errors:

ERROR: "__ashiftrt_r4_28" [fs/udf/udf.ko] undefined!
ERROR: "__ashiftrt_r4_26" [drivers/rtc/rtc-x1205.ko] undefined!
ERROR: "__ashiftrt_r4_25" [drivers/rtc/rtc-pcf2123.ko] undefined!
ERROR: "__ashiftrt_r4_28" [drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko] undefined!
ERROR: "__ashiftrt_r4_25" [drivers/input/tablet/gtco.ko] undefined!
ERROR: "__ashiftrt_r4_26" [drivers/input/mouse/psmouse.ko] undefined!
ERROR: "__ashiftrt_r4_28" [drivers/input/mouse/psmouse.ko] undefined!
ERROR: "__ashiftrt_r4_25" [drivers/iio/pressure/bmp280.ko] undefined!
ERROR: "__ashiftrt_r4_26" [drivers/iio/dac/ad5764.ko] undefined!
ERROR: "__ashiftrt_r4_26" [drivers/iio/accel/mma7660.ko] undefined!
ERROR: "__ashiftrt_r4_25" [drivers/iio/accel/dmard06.ko] undefined!
ERROR: "__ashiftrt_r4_26" [drivers/iio/accel/bma220_spi.ko] undefined!
ERROR: "__ashiftrt_r4_25" [drivers/crypto/hisilicon/sec/hisi_sec.ko] undefined!

Is this just a toolchain problem?

I am using the gcc 8.1.0 tools from
https://mirrors.edge.kernel.org/pub/tools/crosstool/


thanks.
--
~Randy

2019-04-22 07:55:23

by Yoshinori Sato

[permalink] [raw]
Subject: Re: arch/sh/kernel/cpu/sh2/clock-sh7619.o:undefined reference to `followparent_recalc'

On Mon, 22 Apr 2019 00:24:21 +0900,
Randy Dunlap wrote:
>
> On 4/21/19 6:52 AM, Yoshinori Sato wrote:
> > On Sun, 21 Apr 2019 04:34:36 +0900,
> > Randy Dunlap wrote:
> >>
> >> On 4/20/19 12:40 AM, kbuild test robot wrote:
> >>> Hi Randy,
> >>>
> >>> It's probably a bug fix that unveils the link errors.
> >>>
> >>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> >>> head: 371dd432ab39f7bc55d6ec77d63b430285627e04
> >>> commit: acaf892ecbf5be7710ae05a61fd43c668f68ad95 sh: fix multiple function definition build errors
> >>> date: 2 weeks ago
> >>> config: sh-allmodconfig (attached as .config)
> >>> compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
> >>> reproduce:
> >>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >>> chmod +x ~/bin/make.cross
> >>> git checkout acaf892ecbf5be7710ae05a61fd43c668f68ad95
> >>> # save the attached .config to linux build tree
> >>> GCC_VERSION=7.2.0 make.cross ARCH=sh
> >>
> >> Hi,
> >>
> >> Once again, the question is the validity of the SH2 .config file in this case
> >> (that was attached).
> >>
> >> I don't believe that it is valid because CONFIG_SH_DEVICE_TREE=y,
> >> which selects COMMON_CLK, and there is no followparent_recalc() in the
> >> COMMON_CLK API.
> >>
> >> Also, while CONFIG_HAVE_CLK=y, drivers/sh/Makefile prevents that from
> >> building clk/core.c, which could provide followparent_recalc():
> >>
> >> ifneq ($(CONFIG_COMMON_CLK),y)
> >> obj-$(CONFIG_HAVE_CLK) += clk/
> >> endif
> >>
> >> Hm, maybe that's where the problem is. I'll look into that more.
> >>
> >
> > Yes.
> > Selected target (CONFIG_SH_7619_SOLUTION_ENGINE) is non devicetree
> > and used superh specific clk modules.
> > So allyesconfig output is incorrect.
> >
> > I fixed Kconfig to output the correct config.
>
> Thanks for that.
> The patch fixes this problem in my builds.

OK. Thanks.

> However, now I see these build errors:
>
> ERROR: "__ashiftrt_r4_28" [fs/udf/udf.ko] undefined!
> ERROR: "__ashiftrt_r4_26" [drivers/rtc/rtc-x1205.ko] undefined!
> ERROR: "__ashiftrt_r4_25" [drivers/rtc/rtc-pcf2123.ko] undefined!
> ERROR: "__ashiftrt_r4_28" [drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko] undefined!
> ERROR: "__ashiftrt_r4_25" [drivers/input/tablet/gtco.ko] undefined!
> ERROR: "__ashiftrt_r4_26" [drivers/input/mouse/psmouse.ko] undefined!
> ERROR: "__ashiftrt_r4_28" [drivers/input/mouse/psmouse.ko] undefined!
> ERROR: "__ashiftrt_r4_25" [drivers/iio/pressure/bmp280.ko] undefined!
> ERROR: "__ashiftrt_r4_26" [drivers/iio/dac/ad5764.ko] undefined!
> ERROR: "__ashiftrt_r4_26" [drivers/iio/accel/mma7660.ko] undefined!
> ERROR: "__ashiftrt_r4_25" [drivers/iio/accel/dmard06.ko] undefined!
> ERROR: "__ashiftrt_r4_26" [drivers/iio/accel/bma220_spi.ko] undefined!
> ERROR: "__ashiftrt_r4_25" [drivers/crypto/hisilicon/sec/hisi_sec.ko] undefined!
>
> Is this just a toolchain problem?
>
> I am using the gcc 8.1.0 tools from
> https://mirrors.edge.kernel.org/pub/tools/crosstool/
>

It looks libgcc function.
sh port using private build libgcc. It missing this function.
We need added __ashiftrt_r4 variant.

>
> thanks.
> --
> ~Randy

--
Yosinori Sato