2022-10-08 09:42:20

by kernel test robot

[permalink] [raw]
Subject: [selftests/nolibc] 362aecb2d8: kernel-selftests.nolibc.make_fail

Greeting,

FYI, we noticed the following commit:

commit: 362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb ("selftests/nolibc: add basic infrastructure to ease creation of nolibc tests")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master

in testcase: kernel-selftests
version: kernel-selftests-x86_64-700a8991-1_20220823
with following parameters:

group: group-02

test-description: The kernel contains a set of "self tests" under the tools/testing/selftests/ directory. These are intended to be small unit tests to exercise individual code paths in the kernel.
test-url: https://www.kernel.org/doc/Documentation/kselftest.txt

on test machine: 4 threads Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz (Skylake) with 16G memory

caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):


2022-10-02 10:04:53 make TARGETS=nolibc
make[1]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
CC nolibc-test
/usr/bin/ld: /tmp/cccOWbdp.o: in function `printf':
nolibc-test.c:(.text+0x369): undefined reference to `strlen'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:31: nolibc-test] Error 1
make[1]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
make: *** [Makefile:155: all] Error 2
2022-10-02 10:04:53 make -C nolibc
make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
CC nolibc-test
/usr/bin/ld: /tmp/lkp/ccP4fovP.o: in function `printf':
nolibc-test.c:(.text+0x369): undefined reference to `strlen'
collect2: error: ld returned 1 exit status
make: *** [Makefile:31: nolibc-test] Error 1
make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
2022-10-02 10:04:54 make quicktest=1 run_tests -C nolibc
make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
make: *** No rule to make target 'run_tests'. Stop.
make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'


This error only happens when build with gcc-12, while gcc-11 and gcc-9
build fine. We are not sure whether this is a compiler issue or a kernel
code issue, so we send this report FYI. Below link may be helpful for
analysis:

https://www.spinics.net/lists/fedora-devel/msg296395.html


If you fix the issue, kindly add following tag
| Reported-by: kernel test robot <[email protected]>
| Link: https://lore.kernel.org/r/[email protected]


To reproduce:

git clone https://github.com/intel/lkp-tests.git
cd lkp-tests
sudo bin/lkp install job.yaml # job file is attached in this email
bin/lkp split-job --compatible job.yaml # generate the yaml file for lkp run
sudo bin/lkp run generated-yaml-file

# if come across any failure that blocks the test,
# please remove ~/.lkp and /lkp dir to run from a clean state.


--
0-DAY CI Kernel Test Service
https://01.org/lkp


Attachments:
(No filename) (3.36 kB)
config-6.0.0-rc1-00004-g362aecb2d8cf (170.79 kB)
job-script (6.99 kB)
dmesg.xz (62.75 kB)
kernel-selftests (73.41 kB)
job.yaml (5.89 kB)
reproduce (1.37 kB)
Download all attachments

2022-10-09 15:41:00

by Willy Tarreau

[permalink] [raw]
Subject: Re: [selftests/nolibc] 362aecb2d8: kernel-selftests.nolibc.make_fail

Hi,

On Sat, Oct 08, 2022 at 04:57:43PM +0800, kernel test robot wrote:
(...)
> 2022-10-02 10:04:53 make TARGETS=nolibc
> make[1]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
> CC nolibc-test
> /usr/bin/ld: /tmp/cccOWbdp.o: in function `printf':
> nolibc-test.c:(.text+0x369): undefined reference to `strlen'
> collect2: error: ld returned 1 exit status
> make[1]: *** [Makefile:31: nolibc-test] Error 1
> make[1]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
> make: *** [Makefile:155: all] Error 2
> 2022-10-02 10:04:53 make -C nolibc
> make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
> CC nolibc-test
> /usr/bin/ld: /tmp/lkp/ccP4fovP.o: in function `printf':
> nolibc-test.c:(.text+0x369): undefined reference to `strlen'
> collect2: error: ld returned 1 exit status
> make: *** [Makefile:31: nolibc-test] Error 1
> make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
> 2022-10-02 10:04:54 make quicktest=1 run_tests -C nolibc
> make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
> make: *** No rule to make target 'run_tests'. Stop.
> make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-8.3-kselftests-362aecb2d8cfad0268d6c0ae5f448e9b6eee7ffb/tools/testing/selftests/nolibc'
>
>
> This error only happens when build with gcc-12, while gcc-11 and gcc-9
> build fine. We are not sure whether this is a compiler issue or a kernel
> code issue, so we send this report FYI. Below link may be helpful for
> analysis:
>
> https://www.spinics.net/lists/fedora-devel/msg296395.html
(...)

Many thanks for the detailed report and hints. Since we're only providing
include files we don't always have the luxury of enforcing build options
on the caller, so it took me quite some trial and error but I finally
found a way around it. I'm sending a updated patch to Paul for merging.

Thanks again,
Willy