Re: [PATCH] certs: buffer stderr from openssl unless error

From: Liu, Yujie
Date: Thu Jun 08 2023 - 05:59:14 EST


Hi Nick,

On Thu, 2023-05-18 at 15:36 -0700, Nick Desaulniers wrote:
> On Thu, May 18, 2023 at 3:23 AM kernel test robot <lkp@xxxxxxxxx> wrote:
> >
> > Hi,
> >
> > kernel test robot noticed the following build errors:
> >
> > [auto build test ERROR on f1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6]
> >
> > url:    https://github.com/intel-lab-lkp/linux/commits/ndesaulniers-google-com/certs-buffer-stderr-from-openssl-unless-error/20230518-004753
> > base:   f1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6
> > patch link:    https://lore.kernel.org/r/20230517-genkey-v1-1-b887424da4a8%40google.com
> > patch subject: [PATCH] certs: buffer stderr from openssl unless error
> > config: csky-randconfig-m041-20230517
> > compiler: csky-linux-gcc (GCC) 12.1.0
> > reproduce (this is a W=1 build):
> >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>
> ^ should encourage `mkdir ~/bin`; the debian docker container doesn't
> have `~/bin`.
>
> >         chmod +x ~/bin/make.cross
> >         # https://github.com/intel-lab-lkp/linux/commit/0e437a41fdb41c84834de6776bf38951b197792a
> >         git remote add linux-review https://github.com/intel-lab-lkp/linux
> >         git fetch --no-tags linux-review ndesaulniers-google-com/certs-buffer-stderr-from-openssl-unless-error/20230518-004753
>
> ^ holy crap that takes forever. maybe recommend `b4 shazam <lore link>`?
>
> >         git checkout 0e437a41fdb41c84834de6776bf38951b197792a
> >         # save the config file
> >         mkdir build_dir && cp config build_dir/.config
> >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=csky olddefconfig
>
> ^ should use `~/bin/make.cross` since `~/bin` may not exist in $PATH.
>
> >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=csky SHELL=/bin/bash

We've updated the "reproduce" section in bot's reports to be more
precise. Thanks a lot for the inputs.

> Hi Philip,
> I've run into some issues with make.cross when trying to install the
> csky toolchain. Maybe you can help?
>
> ```
> $ COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0
> ~/bin/make.cross W=1 O=build_dir ARCH=csky olddefconfig
> Compiler will be installed in /root/0day
> make: gcc: No such file or directory
> lftpget -c https://download.01.org/0day-ci/cross-package/./gcc-12.1.0-nolibc/x86_64-gcc-12.1.0-nolibc_csky-linux.tar.xz
> /linux
> tar Jxf /root/0day/gcc-12.1.0-nolibc/x86_64-gcc-12.1.0-nolibc_csky-linux.tar.xz
> -C /root/0day
> Please update: libc6 or glibc
> ldd /root/0day/gcc-12.1.0-nolibc/csky-linux/bin/csky-linux-gcc
> /root/0day/gcc-12.1.0-nolibc/csky-linux/bin/csky-linux-gcc:
> /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found
> (required by /root/0day/gcc-12.1.0-nolibc/csky-linux/bin/csky-linux-gcc)
> /root/0day/gcc-12.1.0-nolibc/csky-linux/bin/csky-linux-gcc:
> /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found
> (required by /root/0day/gcc-12.1.0-nolibc/csky-linux/bin/csky-linux-gcc)
> setup_crosstool failed
>
> $ ldd -v /lib/x86_64-linux-gnu/libc.so.6
> /lib64/ld-linux-x86-64.so.2 (0x00007f11f3478000)
> linux-vdso.so.1 (0x00007ffcf45b2000)
>
> Version information:
> /lib/x86_64-linux-gnu/libc.so.6:
> ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
> ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
>
> $ cat /etc/debian_version
> 11.6
> ```
> Perhaps I MUST update my debian container to 11.7?
>
> Are the 0day toolchains not statically linked?
> Can they use the ones from kernel.org which are?
> https://mirrors.edge.kernel.org/pub/tools/crosstool/

Please follow below steps to use the toolchains provided by kernel.org.
We've tested this and it can work in a debian 11.6 docker env.

$ cat /etc/debian_version
11.6

$ ldd -v /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

$ export URL=https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64

$ COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 ./make.cross W=1 ARCH=csky olddefconfig
Compiler will be installed in /root/0day
lftpget -c https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/./12.1.0/x86_64-gcc-12.1.0-nolibc-csky-linux.tar.xz
/root/linux
tar Jxf /root/0day/12.1.0/x86_64-gcc-12.1.0-nolibc-csky-linux.tar.xz -C /root/0day
make --keep-going CONFIG_OF_ALL_DTBS=y CONFIG_DTC=y CROSS_COMPILE=/root/0day/gcc-12.1.0-nolibc/csky-linux/bin/csky-linux- --jobs=144 W=1 ARCH=csky olddefconfig
...


Thanks a lot for the suggestions. We will further improve the 0day
make.cross tool such as:

* Provide statically linked toolchains that don't depend on the libc in
the distribution
* Add hint to help user decide whether to use 0day or kernel.org
toolchains.

Best Regards,
Yujie

> >
> > If you fix the issue, kindly add following tag where applicable
> > > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > > Closes: https://lore.kernel.org/oe-kbuild-all/202305181712.xjvv1fbD-lkp@xxxxxxxxx/
> >
> > All errors (new ones prefixed by >>):
> >
> >    At main.c:152:
> >    - SSL error:FFFFFFFF80000002:system library::No such file or directory: ../crypto/bio/bss_file.c:67
> >    - SSL error:10000080:BIO routines::no such file: ../crypto/bio/bss_file.c:75
> > > > extract-cert: certs/signing_key.pem: No such file or directory
> >
> > --
> > 0-DAY CI Kernel Test Service
> > https://github.com/intel/lkp-tests/wiki
>
>
>