[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMuHMdUsD=xGa97tHmHZhohHiEqn5eD0QaOEwGNW7DGibkhB+g@mail.gmail.com>
Date: Thu, 28 May 2020 09:04:38 +0200
From: Geert Uytterhoeven <geert@...ux-m68k.org>
To: kbuild test robot <lkp@...el.com>
Cc: "Paul E. McKenney" <paulmck@...nel.org>, kbuild-all@...ts.01.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [rcu:dev.2020.05.26a 56/72] refperf.c:undefined reference to `__umoddi3'
On Thu, May 28, 2020 at 5:26 AM kbuild test robot <lkp@...el.com> wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2020.05.26a
> head: 63fdce1252f16032c9e1eb7244bb674ba4f84855
> commit: bd5b16d6c88da451a46d068a25fafad8e83d14a6 [56/72] refperf: Allow decimal nanoseconds
> config: m68k-allyesconfig (attached as .config)
> compiler: m68k-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
> git checkout bd5b16d6c88da451a46d068a25fafad8e83d14a6
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kbuild test robot <lkp@...el.com>
>
> All errors (new ones prefixed by >>, old ones prefixed by <<):
>
> m68k-linux-ld: kernel/rcu/refperf.o: in function `main_func':
> >> refperf.c:(.text+0x762): undefined reference to `__umoddi3'
> >> m68k-linux-ld: refperf.c:(.text+0x8f2): undefined reference to `__udivdi3'
> m68k-linux-ld: refperf.c:(.text+0x97c): undefined reference to `__udivdi3'
| --- a/kernel/rcu/refperf.c
| +++ b/kernel/rcu/refperf.c
| @@ -375,7 +375,7 @@ static int main_func(void *arg)
| if (torture_must_stop())
| goto end;
|
| - reader_tasks[exp].result_avg =
process_durations(exp) / ((exp + 1) * loops);
| + reader_tasks[exp].result_avg = 1000 *
process_durations(exp) / ((exp + 1) * loops);
div64_ul() for 64-by-unsigned-long division
| }
|
| // Print the average of all experiments
| @@ -386,7 +386,7 @@ static int main_func(void *arg)
| strcat(buf, "Threads\tTime(ns)\n");
|
| for (exp = 0; exp < nreaders; exp++) {
| - sprintf(buf1, "%d\t%llu\n", exp + 1,
reader_tasks[exp].result_avg);
| + sprintf(buf1, "%d\t%llu.%03d\n", exp + 1,
reader_tasks[exp].result_avg / 1000,
(int)(reader_tasks[exp].result_avg % 1000));
do_div() for 64-by-32 division/modulo
| strcat(buf, buf1);
| }
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Powered by blists - more mailing lists