lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1c4d1da4-36a9-c83b-1a8a-95334aa62ce3@meinberg.de>
Date:   Tue, 18 Aug 2020 18:09:00 +0200
From:   Martin Burnicki <martin.burnicki@...nberg.de>
To:     linux-kernel@...r.kernel.org
Subject: Kernel build system broken in 5.8?

Hi,

I'm the maintainer of a driver package for some PCI cards (GPS receiver
cards, etc.). A read-only git repo of the driver package can be found here:
https://git.meinbergglobal.com/mbgtools-lx.git

The kernel driver from that package is compiled as out-of-tree module,
and runs fine on kernels 2.6, 3.x, 4.x, and 5.x up to 5.7, actually
5.7.15 on Ubuntu.

However, if I try this on kernel 5.8.1, I get strange errors related to
autoconf.h, which make it impossible to compile or install the kernel
module.

I usually build the kernel module as standard user, and only install the
new module as root, e.g.:

  git checkout devel   # The 'devel' branch is appropriate for testing
  cd mbgclock          # the subdirectory of the kernel module
  git clean -fd; make  # or make V=1 for verbose output
  sudo make install

Also, I was under the impression that the kernel source tree should be
read-only, and kept clean, but this doesn't seem to be the case anymore.


For example:

On Ubuntu 19.10 with kernel 5.8.1-050801-generic from
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8.1/

'make' completes without error, even if run as normal user without write
permissions in the kernel source tree.

'sudo insmod ./mbgclock.ko' loads the module successfully, and the PCI
card can be accessed as usually, e.g. using the 'mbgstatus' program, so
the compiled kernel module  is OK.

BUT: Once I run 'sudo make install', which calls the kernel build system
to make 'modules_install', I immediately get an error:

-------------------------------------------------------------------------
Calling kernel build system to make "modules_install"
make[1]: Entering directory '/usr/src/linux-headers-5.8.1-050801-generic'

  ERROR: Kernel configuration is invalid.
         include/generated/autoconf.h or include/config/auto.conf are
missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.

make[1]: *** [Makefile:719: include/config/auto.conf] Error 1
make[1]: Leaving directory '/usr/src/linux-headers-5.8.1-050801-generic'
make: *** [/home/martin/projects/mbgtools-lx/mbgclock/../Makefile:834:
install_module] Error 2
-------------------------------------------------------------------------

And once this has happened, this problem persists, i.e., if I run the
same commands

  git clean -fd; make

once more, as normal user as mentioned above, I get the error above
every time.

Also, If I initially try to build the kernel kernel module as root, with
'sudo':

  git clean -fd; sudo make

I immediately get this error, and the module is not built. Only after I
have re-installed the kernel headers package, I can compile the module
again.


A diff between the kernel header files before and after the kernel build
system has been messed up shows that the following files have changed:

include/generated/autoconf.h
scripts/basic/.fixdep.cmd
scripts/basic/fixdep
scripts/kconfig/.conf.o.cmd
scripts/kconfig/.confdata.o.cmd
scripts/kconfig/.expr.o.cmd
scripts/kconfig/.lexer.lex.c.cmd
scripts/kconfig/conf.o
scripts/kconfig/confdata.o
scripts/kconfig/expr.o
scripts/kconfig/lexer.lex.c
scripts/kconfig/parser.tab.c

Specifically, autoconf.h has been deleted even though some script
obviously still requires that the file is available.


With openSUSE Leap 15.2 and kernel 5.8.1 from
https://download.opensuse.org/repositories/Kernel:/stable/standard/

I've encountered similar problems because include/generated/autoconf.h
is not even available after installation of the kernel headers package.

Only on Arch Linux with kernel 5.8.1-arch1-1 I can build and install the
module as root or standard user, as it was possible with earlier kernel
versions.

Can someone please shed some light on what's going on here?


Thanks,

Martin
-- 
Martin Burnicki

Senior Software Engineer

MEINBERG Funkuhren GmbH & Co. KG
Email: martin.burnicki@...nberg.de
Phone: +49 5281 9309-414
Linkedin: https://www.linkedin.com/in/martinburnicki/

Lange Wand 9, 31812 Bad Pyrmont, Germany
Amtsgericht Hannover 17HRA 100322
Geschäftsführer/Managing Directors: Günter Meinberg, Werner Meinberg,
Andre Hartmann, Heiko Gerstung
Websites: https://www.meinberg.de  https://www.meinbergglobal.com
Training: https://www.meinberg.academy

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ