You are not logged in.
Hi all,
I just upgraded to Linux 4.20.13. I have two almost identical machines that I've upgraded: they both have the following sorts of hardware:
amd zen cpus
unencrypted ext4 root directory on ssd card
encrypted home, var, and swap on rotational hdd
nvidia 10-series gpu
asrock ab350 pro4 mb
On one of these boxes, the upgrade went as expected. On the other I get dumped into the ramfs shell with the message:
mount: /new_root: unknown filesystem type 'ext4'.
The ramfs shell does not accept further keyboard input so I can't query the state of the devices, filesystems etc.
Using an Arch live-usb to chroot in and roll back to kernel 4.20.12 fixes the problem.
Since rolling back to the previous nvidia driver wasn't required to fix the problem, I assume it wasn't the difference in graphics card. (Anyway, the one on the good machine is GT 1030, the one on the "bad" machine is GTX 1050, but I"m sure it's not relevant.)
The only other difference is the cpu:
"Goodie" has Ryzen 5 2600
"Baddie" has Ryzen 7 1800X
(I built both boxes relatively close together in time and chose the parts to be similar on purpose, so that's why nothing else is really different except the graphics card.)
I mean, I suspect this is more of an upstream problem. I'm skeptical (albeit fingers crossed) that we can solve it here on the forum.
But maybe it will serve as a warning to be careful before upgrading, or maybe the discussion might help take something more solid to upstream.
Edit: This (at least superficially) seems similar to https://bbs.archlinux.org/viewtopic.php?id=244603. Couple of differences: they're using btrfs and I'm using ext4; and they can type things into the initramfs shell, whereas the emergency shell seems frozen for me.
Last edited by /dev/zero (2019-03-04 02:27:07)
Offline
I suspect this is more of an upstream problem
Can you narrow down the potential bad commit?
Offline
/dev/zero wrote:I suspect this is more of an upstream problem
Can you narrow down the potential bad commit?
Huh. Theoretically I guess I could. But it's going to require recompiling the kernel over and over again, isn't it?
Maybe I'm misunderstanding what git bisect does? (It's not a part of Git I've ever actually had to use.)
Even if I was doing this in a VM (which I'm not, i.e. multiple recompilations will require placing my main workstation in the line of fire each time), recompiling over and over again would still be a huge PITA ...
Last edited by /dev/zero (2019-03-02 11:37:09)
Offline
it's going to require recompiling the kernel over and over again, isn't it?
Yes, that's right.
a huge PITA
The community thanks you in advance for your efforts
Offline
Might this have been a mismatch between initramfs and linux kernel? One was updated to the new version, the other not?
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
Might this have been a mismatch between initramfs and linux kernel?
Isn't the initramfs rebuilt automatically upon kernel upgrades?
https://git.archlinux.org/svntogit/pack … ages/linux
Perhaps if the OP had a separate /boot partition that was un-mounted during the upgrade but that doesn't seem to be the case here.
Offline
Might this have been a mismatch between initramfs and linux kernel? One was updated to the new version, the other not?
It occurred to me that something like that might have happened. But each time a new kernel is installed, it triggers a rebuild of the initramfs. So, I'm not sure how there could be a mismatch?
I've tried switching back and forwards multiple times. It is consistent that when I switch back to 4.20.12, things work, and when I upgrade to 4.20.13, there is suddenly the problem with ext4 not being a valid root filesystem.
Offline
The community thanks you in advance for your efforts
It has been so long since I successfully compiled a kernel from scratch, I'm afraid I might just end up adding noise without any signal
Offline
The Gentoo wiki has a guide for kernel bisects:
https://wiki.gentoo.org/wiki/Kernel_git-bisect
See also https://wiki.archlinux.org/index.php/Ke … ild_System
Offline
progandy wrote:Might this have been a mismatch between initramfs and linux kernel? One was updated to the new version, the other not?
It occurred to me that something like that might have happened. But each time a new kernel is installed, it triggers a rebuild of the initramfs. So, I'm not sure how there could be a mismatch?
There could have been some strange error that should not happen, like mkinitramfs being killed.
I've tried switching back and forwards multiple times. It is consistent that when I switch back to 4.20.12, things work, and when I upgrade to 4.20.13, there is suddenly the problem with ext4 not being a valid root filesystem.
SInce it is consistent, I don't think the initramfs version is the issue.
You can easily test it by comparing the kernel versions in the output of
file /boot/vmlinuz-linux
lsinitcpio /boot/initramfs-linux.img | grep ext4
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
The Gentoo wiki has a guide for kernel bisects:
https://wiki.gentoo.org/wiki/Kernel_git-bisect
See also https://wiki.archlinux.org/index.php/Ke … ild_System
Thanks, that is a clear direction about what to try, although it will take a lot of work.
Offline
The following assumes the base-devel group and git are installed and I recomend enabling Makepkg#Parallel_compilation to reduce build times
$ git clone git://git.archlinux.org/svntogit/packages.git --single-branch --branch "packages/linux"
$ cd packages/trunk
$ git checkout b44aa57a4ff15e6c41d24429aff240d2e3980645 #4.20.13.arch1-1
$ cd ../..
$ cp -r packages/trunk linux-git
$ rm -rf packages
$ cd linux-git
# Edit replace the PKGBUILD and 90-linux.hook with the ones below
$ makepkg -rsi #this is to confirm 4.20.13 as built on your system does have the issue update bootloader for new kernel if needed
$ cd linux-git/src/linux
$ git checkout v4.20.12
$ cd ../..
$ makepkg -ersi #this is to confirm 4.20.12 as built on your system does not have the issue select the default option for all prompted options
$ cd linux-git/src/linux/
$ git bisect start
$ git bisect good v4.20.12
$ git bisect bad v4.20.13
$ cd ../..
$ makepkg -ersif
$ cd linux-git/src/linux/
$ git bisect $result #substitue good or bad here
$ cd ../..
$ makepkg -ersif #repeat these four lines and test the generated kernel until git has found the bad commit
PKGBUILD
# Maintainer: Boohbah <boohbah at gmail.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>
# Contributor: Jonathan Chan <jyc@fastmail.fm>
# Contributor: misc <tastky@gmail.com>
# Contributor: NextHendrix <cjones12 at sheffield.ac.uk>
pkgbase=linux-git
_srcname=linux
pkgver=4.20.13.r0.g0f7c162c1df5
pkgrel=1
arch=('x86_64')
url="https://www.kernel.org/"
license=('GPL2')
makedepends=('kmod' 'inetutils' 'bc' 'libelf')
options=('!strip')
source=(#'git+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git#tag=xX.Y'
'git+https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git#tag=v4.20.13'
'config' # the main kernel config file
'60-linux.hook' # pacman hook for depmod
'90-linux.hook' # pacman hook for initramfs regeneration
'linux.preset' # standard config files for mkinitcpio ramdisk
)
sha256sums=('SKIP'
'f863b3e9640161f61e859f22f2d1258c940101de8f007a207c1ede2f71d36206'
'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
'75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65')
_kernelname=${pkgbase#linux}
: ${_kernelname:=-ARCH}
pkgver() {
cd "${_srcname}"
git describe --long | sed -E 's/^v//;s/([^-]*-g)/r\1/;s/-/./g;s/\.rc/rc/'
}
prepare() {
cd ${_srcname}
cp -Tf ../config .config
# set localversion to git commit
sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
sed -i "s|^.*CONFIG_LOCALVERSION_AUTO.*|CONFIG_LOCALVERSION_AUTO=y|" ./.config
# don't run depmod on 'make install'. We'll do this ourselves in packaging
# git tracks scripts/depmod.sh so do not change it when using the existing source dir for bisection
# sed -i '2iexit 0' scripts/depmod.sh
# get kernel version
make prepare
# load configuration
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
#make nconfig # new CLI menu for configuration
#make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
make olddefconfig # old config from previous kernel, defaults for new options
# ... or manually edit .config
}
build() {
cd ${_srcname}
make bzImage modules
}
_package() {
pkgdesc="The Linux kernel and modules (git version)"
depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
optdepends=('crda: to set the correct wireless channels of your country')
backup=("etc/mkinitcpio.d/${pkgbase}.preset")
install=linux.install
cd ${_srcname}
# get kernel version
_kernver="$(make kernelrelease)"
_kernver=${_kernver%-dirty} #https://bbs.archlinux.org/viewtopic.php?id=236702
_basekernel="$(make kernelversion)"
_basekernel=${_basekernel%.*}
mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
make INSTALL_MOD_PATH="${pkgdir}/usr" modules_install
cp arch/x86/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
# make room for external modules
local _extramodules="extramodules-${_basekernel}${_kernelname}"
ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"
# add real version for building modules and running depmod from hook
echo "${_kernver}" |
install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version"
# remove build and source links
rm "${pkgdir}"/usr/lib/modules/${_kernver}/{source,build}
# now we call depmod...
depmod -b "${pkgdir}/usr" -F System.map "${_kernver}"
# add vmlinux
install -Dt "${pkgdir}/usr/lib/modules/${_kernver}/build" -m644 vmlinux
# sed expression for following substitutions
local _subst="
s|%PKGBASE%|${pkgbase}|g
s|%KERNVER%|${_kernver}|g
s|%EXTRAMODULES%|${_extramodules}|g
"
# hack to allow specifying an initially nonexisting install file
sed "${_subst}" "${startdir}/${install}" > "${startdir}/${install}.pkg"
true && install=${install}.pkg
# install mkinitcpio preset file
sed "${_subst}" ../linux.preset |
install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
# install pacman hooks
sed "${_subst}" ../60-linux.hook |
install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/60-${pkgbase}.hook"
sed "${_subst}" ../90-linux.hook |
install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook"
}
_package-headers() {
pkgdesc="Header files and scripts for building modules for Linux kernel (git version)"
cd ${_srcname}
local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
mkdir "${_builddir}/.tmp_versions"
cp -t "${_builddir}" -a include scripts
install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile
install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
cp -t "${_builddir}/arch/x86" -a arch/x86/include
install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
# http://bugs.archlinux.org/task/13146
install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
# http://bugs.archlinux.org/task/20402
install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h
# add xfs and shmem for aufs building
mkdir -p "${_builddir}"/{fs/xfs,mm}
# copy in Kconfig files
find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
# add objtool for external module building and enabled VALIDATION_STACK option
install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool
# remove unneeded architectures
local _arch
for _arch in "${_builddir}"/arch/*/; do
[[ ${_arch} == */x86/ ]] && continue
rm -r "${_arch}"
done
# remove files already in linux-docs package
rm -r "${_builddir}/Documentation"
# remove now broken symlinks
find -L "${_builddir}" -type l -printf 'Removing %P\n' -delete
# Fix permissions
chmod -R u=rwX,go=rX "${_builddir}"
# strip scripts directory
local _binary _strip
while read -rd '' _binary; do
case "$(file -bi "${_binary}")" in
*application/x-sharedlib*) _strip="${STRIP_SHARED}" ;; # Libraries (.so)
*application/x-archive*) _strip="${STRIP_STATIC}" ;; # Libraries (.a)
*application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries
*) continue ;;
esac
/usr/bin/strip ${_strip} "${_binary}"
done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null)
}
_package-docs() {
pkgdesc="Kernel hackers manual - HTML documentation that comes with the Linux kernel (git version)"
cd ${_srcname}
local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
mkdir -p "${_builddir}"
cp -t "${_builddir}" -a Documentation
# Fix permissions
chmod -R u=rwX,go=rX "${_builddir}"
}
pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
for _p in ${pkgname[@]}; do
eval "package_${_p}() {
$(declare -f "_package${_p#${pkgbase}}")
_package${_p#${pkgbase}}
}"
done
# vim:set ts=8 sts=2 sw=2 et:
90-linux.hook
[Trigger]
Type = File
Operation = Install
Operation = Upgrade
Target = boot/vmlinuz-%PKGBASE%
Target = usr/lib/initcpio/*
[Action]
Description = Updating %PKGBASE% initcpios...
When = PostTransaction
Exec = /usr/bin/mkinitcpio -p %PKGBASE%
Edit:
Fixed checksums old 90-linux.hook
Last edited by loqs (2019-03-02 21:44:08)
Offline
Thanks loqs, looks like a solid process. However, I get an error pretty quickly:
HOSTCC scripts/sign-file
HOSTCC scripts/extract-cert
LD /home/hadeion/src/linux-git/src/linux/tools/objtool/objtool-in.o
/usr/bin/ld: /tmp/ccpWhVOx.o: in function `main':
extract-cert.c:(.text.startup+0x1e): undefined reference to `OPENSSL_add_all_algorithms_noconf'
/usr/bin/ld: extract-cert.c:(.text.startup+0x23): undefined reference to `ERR_load_crypto_strings'
collect2: error: ld returned 1 exit status
make[1]: *** [scripts/Makefile.host:90: scripts/extract-cert] Error 1
make[1]: *** Waiting for unfinished jobs....
LINK /home/hadeion/src/linux-git/src/linux/tools/objtool/objtool
/usr/bin/ld: /tmp/cclFjP7x.o: in function `main':
sign-file.c:(.text.startup+0x48): undefined reference to `OPENSSL_add_all_algorithms_noconf'
/usr/bin/ld: sign-file.c:(.text.startup+0x4d): undefined reference to `ERR_load_crypto_strings'
/usr/bin/ld: sign-file.c:(.text.startup+0x7ad): undefined reference to `OpenSSL_add_all_digests'
collect2: error: ld returned 1 exit status
make[1]: *** [scripts/Makefile.host:90: scripts/sign-file] Error 1
make: *** [Makefile:1073: scripts] Error 2
make: *** Waiting for unfinished jobs....
CALL scripts/checksyscalls.sh
==> ERROR: A failure occurred in build().
Aborting...
Which I guess isn't surprising. I've been having trouble compiling anything against openssl for some time.
Offline
Have you got an openssl compat library? There were two minor issues with the instructions
(the checksum for the config and 90-linux.hook were not updated and I had not mentioned the need for a custom 90-linux.hook )
but that should not cause the issue you are facing
makepkg
==> Making package: linux-git 0-1 (Sat 02 Mar 2019 21:29:14 UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Updating linux git repo...
Fetching origin
-> Found config
-> Found 60-linux.hook
-> Found 90-linux.hook
-> Found linux.preset
==> Validating source files with sha256sums...
linux ... Skipped
config ... Passed
60-linux.hook ... Passed
90-linux.hook ... Passed
linux.preset ... Passed
==> Extracting sources...
-> Creating working copy of linux git repo...
Cloning into 'linux'...
done.
Checking out files: 100% (63135/63135), done.
Switched to a new branch 'makepkg'
==> Starting prepare()...
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --syncconfig Kconfig
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h
SYSHDR arch/x86/include/generated/asm/unistd_64_x32.h
SYSTBL arch/x86/include/generated/asm/syscalls_64.h
HYPERCALLS arch/x86/include/generated/asm/xen-hypercalls.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
HOSTLD arch/x86/tools/relocs
UPD include/config/kernel.release
WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h
WRAP arch/x86/include/generated/uapi/asm/poll.h
WRAP arch/x86/include/generated/asm/dma-contiguous.h
WRAP arch/x86/include/generated/asm/early_ioremap.h
WRAP arch/x86/include/generated/asm/export.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
WRAP arch/x86/include/generated/asm/mm-arch-hooks.h
UPD include/generated/uapi/linux/version.h
UPD include/generated/utsrelease.h
CC kernel/bounds.s
UPD include/generated/bounds.h
UPD include/generated/timeconst.h
CC arch/x86/kernel/asm-offsets.s
UPD include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
DESCEND objtool
HOSTCC /tmp/linux-git/src/linux/tools/objtool/fixdep.o
HOSTLD /tmp/linux-git/src/linux/tools/objtool/fixdep-in.o
LINK /tmp/linux-git/src/linux/tools/objtool/fixdep
CC /tmp/linux-git/src/linux/tools/objtool/exec-cmd.o
CC /tmp/linux-git/src/linux/tools/objtool/help.o
CC /tmp/linux-git/src/linux/tools/objtool/pager.o
CC /tmp/linux-git/src/linux/tools/objtool/parse-options.o
CC /tmp/linux-git/src/linux/tools/objtool/run-command.o
CC /tmp/linux-git/src/linux/tools/objtool/sigchain.o
CC /tmp/linux-git/src/linux/tools/objtool/subcmd-config.o
LD /tmp/linux-git/src/linux/tools/objtool/libsubcmd-in.o
AR /tmp/linux-git/src/linux/tools/objtool/libsubcmd.a
GEN /tmp/linux-git/src/linux/tools/objtool/arch/x86/lib/inat-tables.c
CC /tmp/linux-git/src/linux/tools/objtool/arch/x86/decode.o
LD /tmp/linux-git/src/linux/tools/objtool/arch/x86/objtool-in.o
CC /tmp/linux-git/src/linux/tools/objtool/builtin-check.o
CC /tmp/linux-git/src/linux/tools/objtool/builtin-orc.o
CC /tmp/linux-git/src/linux/tools/objtool/check.o
CC /tmp/linux-git/src/linux/tools/objtool/orc_gen.o
CC /tmp/linux-git/src/linux/tools/objtool/orc_dump.o
CC /tmp/linux-git/src/linux/tools/objtool/elf.o
CC /tmp/linux-git/src/linux/tools/objtool/special.o
CC /tmp/linux-git/src/linux/tools/objtool/objtool.o
CC /tmp/linux-git/src/linux/tools/objtool/libstring.o
CC /tmp/linux-git/src/linux/tools/objtool/str_error_r.o
LD /tmp/linux-git/src/linux/tools/objtool/objtool-in.o
LINK /tmp/linux-git/src/linux/tools/objtool/objtool
scripts/kconfig/conf --olddefconfig Kconfig
#
# configuration written to .config
#
==> Starting pkgver()...
==> Updated version: linux-git 4.20.13.r0.g0f7c162c1df5-1
==> Starting build()...
scripts/kconfig/conf --syncconfig Kconfig
HOSTCC scripts/dtc/dtc.o
HOSTCC scripts/dtc/flattree.o
HOSTCC scripts/dtc/fstree.o
DESCEND objtool
HOSTCC scripts/dtc/data.o
HOSTCC scripts/dtc/livetree.o
HOSTCC scripts/dtc/treesource.o
HOSTCC scripts/dtc/srcpos.o
CC /tmp/linux-git/src/linux/tools/objtool/arch/x86/decode.o
CC /tmp/linux-git/src/linux/tools/objtool/builtin-check.o
CC /tmp/linux-git/src/linux/tools/objtool/builtin-orc.o
HOSTCC scripts/dtc/checks.o
CC /tmp/linux-git/src/linux/tools/objtool/check.o
CC /tmp/linux-git/src/linux/tools/objtool/orc_gen.o
HOSTCC scripts/dtc/util.o
LEX scripts/dtc/dtc-lexer.lex.c
YACC scripts/dtc/dtc-parser.tab.h
CC /tmp/linux-git/src/linux/tools/objtool/orc_dump.o
YACC scripts/dtc/dtc-parser.tab.c
HOSTCC scripts/dtc/yamltree.o
HOSTCC scripts/dtc/dtc-lexer.lex.o
CC /tmp/linux-git/src/linux/tools/objtool/elf.o
LD /tmp/linux-git/src/linux/tools/objtool/arch/x86/objtool-in.o
CC /tmp/linux-git/src/linux/tools/objtool/special.o
HOSTCC scripts/dtc/dtc-parser.tab.o
CC /tmp/linux-git/src/linux/tools/objtool/objtool.o
CC /tmp/linux-git/src/linux/tools/objtool/libstring.o
CC /tmp/linux-git/src/linux/tools/objtool/str_error_r.o
HOSTLD scripts/dtc/dtc
LD /tmp/linux-git/src/linux/tools/objtool/objtool-in.o
LINK /tmp/linux-git/src/linux/tools/objtool/objtool
HOSTCC scripts/bin2c
CC scripts/mod/empty.o
HOSTCC scripts/selinux/genheaders/genheaders
HOSTCC scripts/selinux/mdp/mdp
HOSTCC scripts/mod/mk_elfconfig
HOSTCC scripts/kallsyms
CC scripts/mod/devicetable-offsets.s
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
HOSTCC scripts/conmakehash
UPD scripts/mod/devicetable-offsets.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/recordmcount
HOSTCC scripts/sortextable
HOSTCC scripts/asn1_compiler
HOSTCC scripts/sign-file
This looks to be where your build failed
HOSTCC scripts/extract-cert
CALL scripts/checksyscalls.sh
HOSTLD scripts/mod/modpost
CHK include/generated/compile.h
CC init/main.o
CC init/do_mounts.o
CC init/do_mounts_initrd.o
CC init/initramfs.o
CC init/calibrate.o
HOSTCC usr/gen_init_cpio
UPD include/generated/compile.h
CC init/init_task.o
AR arch/x86/crypto/built-in.a
CC [M] arch/x86/crypto/glue_helper.o
GEN usr/initramfs_data.cpio
AS [M] arch/x86/crypto/aes-x86_64-asm_64.o
AS usr/initramfs_data.o
AR usr/built-in.a
CC [M] arch/x86/crypto/aes_glue.o
CC kernel/bpf/core.o
CC kernel/bpf/syscall.o
CC init/version.o
AS [M] arch/x86/crypto/des3_ede-asm_64.o
CC [M] arch/x86/crypto/des3_ede_glue.o
AS [M] arch/x86/crypto/camellia-x86_64-asm_64.o
CC [M] arch/x86/crypto/camellia_glue.o
AS [M] arch/x86/crypto/blowfish-x86_64-asm_64.o
CC [M] arch/x86/crypto/blowfish_glue.o
AS [M] arch/x86/crypto/twofish-x86_64-asm_64.o
CC [M] arch/x86/crypto/twofish_glue.o
AS [M] arch/x86/crypto/twofish-x86_64-asm_64-3way.o
AR init/built-in.a
CC [M] arch/x86/crypto/twofish_glue_3way.o
Generating X.509 key generation config
AS [M] arch/x86/crypto/chacha20-ssse3-x86_64.o
CC [M] arch/x86/crypto/chacha20_glue.o
CC certs/system_keyring.o
AS [M] arch/x86/crypto/chacha20-avx2-x86_64.o
AS [M] arch/x86/crypto/serpent-sse2-x86_64-asm_64.o
CC [M] arch/x86/crypto/serpent_sse2_glue.o
AS [M] arch/x86/crypto/aesni-intel_asm.o
CC [M] arch/x86/crypto/aesni-intel_glue.o
EXTRACT_CERTS
CC certs/blacklist.o
AS [M] arch/x86/crypto/aesni-intel_avx-x86_64.o
AS [M] arch/x86/crypto/aes_ctrby8_avx-x86_64.o
AS [M] arch/x86/crypto/ghash-clmulni-intel_asm.o
CC [M] arch/x86/crypto/ghash-clmulni-intel_glue.o
CC [M] arch/x86/crypto/crc32c-intel_glue.o
AS [M] arch/x86/crypto/crc32c-pcl-intel-asm_64.o
AS [M] arch/x86/crypto/sha1_ssse3_asm.o
CC [M] arch/x86/crypto/sha1_ssse3_glue.o
CC kernel/bpf/verifier.o
CC certs/blacklist_nohashes.o
###
### Now generating an X.509 key pair to be used for signing modules.
###
### If this takes a long time, you might wish to run rngd in the
AS [M] arch/x86/crypto/sha1_avx2_x86_64_asm.o
### background to keep the supply of entropy topped up. It
### needs to be run as root, and uses a hardware random
### number generator if one is available.
###
Generating a RSA private key
... AS [M] arch/x86/crypto/sha1_ni_asm.o
... AS [M] arch/x86/crypto/crc32-pclmul_asm.o
... CC [M] arch/x86/crypto/crc32-pclmul_glue.o
................ CC kernel/bpf/inode.o
............... AS [M] arch/x86/crypto/sha256-ssse3-asm.o
... AS [M] arch/x86/crypto/sha256-avx-asm.o
... AS [M] arch/x86/crypto/sha256-avx2-asm.o
. CC [M] arch/x86/crypto/sha256_ssse3_glue.o
AS [M] arch/x86/crypto/sha256_ni_asm.o
.. AS [M] arch/x86/crypto/sha512-ssse3-asm.o
CC kernel/bpf/helpers.o
.... AS [M] arch/x86/crypto/sha512-avx-asm.o
. AS [M] arch/x86/crypto/sha512-avx2-asm.o
... CC [M] arch/x86/crypto/sha512_ssse3_glue.o
. AS [M] arch/x86/crypto/crct10dif-pcl-asm_64.o
... CC [M] arch/x86/crypto/crct10dif-pclmul_glue.o
............... AS [M] arch/x86/crypto/poly1305-sse2-x86_64.o
... CC [M] arch/x86/crypto/poly1305_glue.o
..............++++
..................... AS [M] arch/x86/crypto/poly1305-avx2-x86_64.o
... AS [M] arch/x86/crypto/aegis128-aesni-asm.o
.... CC [M] arch/x86/crypto/aegis128-aesni-glue.o
... AS [M] arch/x86/crypto/aegis128l-aesni-asm.o
... CC [M] arch/x86/crypto/aegis128l-aesni-glue.o
..... AS [M] arch/x86/crypto/aegis256-aesni-asm.o
CC [M] arch/x86/crypto/aegis256-aesni-glue.o
.... CC [M] arch/x86/crypto/morus640_glue.o
CC kernel/bpf/tnum.o
.......... CC [M] arch/x86/crypto/morus1280_glue.o
...... CC kernel/bpf/hashtab.o
............++++
writing new private key to 'certs/signing_key.pem'
-----
###
### Key pair generated.
###
EXTRACT_CERTS certs/signing_key.pem
AS certs/system_certificates.o
AR certs/built-in.a
CC mm/filemap.o
CC mm/mempool.o
AS [M] arch/x86/crypto/morus640-sse2-asm.o
CC [M] arch/x86/crypto/morus640-sse2-glue.o
AS [M] arch/x86/crypto/morus1280-sse2-asm.o
CC [M] arch/x86/crypto/morus1280-sse2-glue.o
AS [M] arch/x86/crypto/camellia-aesni-avx-asm_64.o
CC [M] arch/x86/crypto/camellia_aesni_avx_glue.o
CC [M] fs/9p/vfs_super.o
CC [M] fs/9p/vfs_inode.o
AS [M] arch/x86/crypto/cast5-avx-x86_64-asm_64.o
CC mm/oom_kill.o
CC [M] arch/x86/crypto/cast5_avx_glue.o
AS [M] arch/x86/crypto/cast6-avx-x86_64-asm_64.o
CC [M] arch/x86/crypto/cast6_avx_glue.o
AS [M] arch/x86/crypto/twofish-avx-x86_64-asm_64.o
CC [M] fs/9p/vfs_inode_dotl.o
CC [M] arch/x86/crypto/twofish_avx_glue.o
CC kernel/bpf/arraymap.o
AS [M] arch/x86/crypto/serpent-avx-x86_64-asm_64.o
CC [M] arch/x86/crypto/serpent_avx_glue.o
AS [M] arch/x86/crypto/camellia-aesni-avx2-asm_64.o
CC [M] arch/x86/crypto/camellia_aesni_avx2_glue.o
AS [M] arch/x86/crypto/serpent-avx2-asm_64.o
CC ipc/compat.o
GEN security/apparmor/capability_names.h
GEN security/apparmor/rlim_names.h
GEN security/apparmor/net_names.h
GEN security/apparmor/net_names.h
CC security/apparmor/apparmorfs.o
CC [M] fs/9p/vfs_addr.o
CC ipc/util.o
CC mm/fadvise.o
CC [M] arch/x86/crypto/serpent_avx2_glue.o
CC mm/maccess.o
CC ipc/msgutil.o
CC kernel/bpf/percpu_freelist.o
CC [M] fs/9p/vfs_file.o
CC mm/page_alloc.o
AS [M] arch/x86/crypto/morus1280-avx2-asm.o
CC kernel/bpf/bpf_lru_list.o
CC [M] arch/x86/crypto/morus1280-avx2-glue.o
CC ipc/msg.o
CC mm/page-writeback.o
CC ipc/sem.o
CC kernel/bpf/lpm_trie.o
LD [M] arch/x86/crypto/aes-x86_64.o
LD [M] arch/x86/crypto/des3_ede-x86_64.o
LD [M] arch/x86/crypto/camellia-x86_64.o
LD [M] arch/x86/crypto/blowfish-x86_64.o
LD [M] arch/x86/crypto/twofish-x86_64.o
LD [M] arch/x86/crypto/twofish-x86_64-3way.o
LD [M] arch/x86/crypto/chacha20-x86_64.o
LD [M] arch/x86/crypto/serpent-sse2-x86_64.o
LD [M] arch/x86/crypto/aesni-intel.o
LD [M] arch/x86/crypto/ghash-clmulni-intel.o
LD [M] arch/x86/crypto/crc32c-intel.o
CC [M] fs/9p/vfs_dir.o
LD [M] arch/x86/crypto/sha1-ssse3.o
LD [M] arch/x86/crypto/crc32-pclmul.o
LD [M] arch/x86/crypto/sha256-ssse3.o
LD [M] arch/x86/crypto/sha512-ssse3.o
LD [M] arch/x86/crypto/crct10dif-pclmul.o
LD [M] arch/x86/crypto/poly1305-x86_64.o
LD [M] arch/x86/crypto/aegis128-aesni.o
LD [M] arch/x86/crypto/aegis128l-aesni.o
LD [M] arch/x86/crypto/aegis256-aesni.o
LD [M] arch/x86/crypto/morus640-sse2.o
LD [M] arch/x86/crypto/morus1280-sse2.o
LD [M] arch/x86/crypto/camellia-aesni-avx-x86_64.o
LD [M] arch/x86/crypto/cast5-avx-x86_64.o
LD [M] arch/x86/crypto/cast6-avx-x86_64.o
LD [M] arch/x86/crypto/twofish-avx-x86_64.o
LD [M] arch/x86/crypto/serpent-avx-x86_64.o
LD [M] arch/x86/crypto/camellia-aesni-avx2.o
LD [M] arch/x86/crypto/serpent-avx2.o
LD [M] arch/x86/crypto/morus1280-avx2.o
Edit:
As a test to check it can build cleanly on your system please install devtools and use extra-x86_64-build instead of makepkg -rsi you can kill the process after it has passed
HOSTCC scripts/sign-file
Last edited by loqs (2019-03-02 21:50:53)
Offline
Hi loqs,
By openssl compat library, do you mean the openssl-1.0 package? The way I usually work around openssl difficulties is to compile against libressl, which I have installed under /usr/local
I noticed the problem you mentioned with the integrity checks, so I've been using --skipinteg.
When I try using extra-x86_64-build I get an error:
==> Building in chroot for [extra] (x86_64)...
==> Synchronizing chroot copy [/var/lib/archbuild/extra-x86_64/root] -> [<username>]...done
==> ERROR: /var/lib/archbuild/extra-x86_64/<username>/etc/makepkg.conf not found.
Aborting...
==> ERROR: Could not download sources.
It's not a tool I'm familiar with, and the documentation isn't complete, so it's hard for me to say what is going on with that
Offline
I have no familiarity with libressl from within linux-git/src/linux
make V=1 scripts
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.build obj=scripts/dtc
gcc -Wp,-MD,scripts/dtc/.dtc.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/dtc.o scripts/dtc/dtc.c
gcc -Wp,-MD,scripts/dtc/.flattree.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/flattree.o scripts/dtc/flattree.c
gcc -Wp,-MD,scripts/dtc/.fstree.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/fstree.o scripts/dtc/fstree.c
gcc -Wp,-MD,scripts/dtc/.data.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/data.o scripts/dtc/data.c
gcc -Wp,-MD,scripts/dtc/.livetree.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/livetree.o scripts/dtc/livetree.c
gcc -Wp,-MD,scripts/dtc/.treesource.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/treesource.o scripts/dtc/treesource.c
gcc -Wp,-MD,scripts/dtc/.srcpos.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/srcpos.o scripts/dtc/srcpos.c
gcc -Wp,-MD,scripts/dtc/.checks.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/checks.o scripts/dtc/checks.c
gcc -Wp,-MD,scripts/dtc/.util.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/util.o scripts/dtc/util.c
flex -oscripts/dtc/dtc-lexer.lex.c -L scripts/dtc/dtc-lexer.l
bison -o/dev/null --defines=scripts/dtc/dtc-parser.tab.h -t -l scripts/dtc/dtc-parser.y
gcc -Wp,-MD,scripts/dtc/.dtc-lexer.lex.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -Iscripts/dtc -c -o scripts/dtc/dtc-lexer.lex.o scripts/dtc/dtc-lexer.lex.c
bison -oscripts/dtc/dtc-parser.tab.c -t -l scripts/dtc/dtc-parser.y
gcc -Wp,-MD,scripts/dtc/.dtc-parser.tab.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -Iscripts/dtc -c -o scripts/dtc/dtc-parser.tab.o scripts/dtc/dtc-parser.tab.c
gcc -Wp,-MD,scripts/dtc/.yamltree.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -Iscripts/dtc/libfdt -c -o scripts/dtc/yamltree.o scripts/dtc/yamltree.c
gcc -o scripts/dtc/dtc scripts/dtc/dtc.o scripts/dtc/flattree.o scripts/dtc/fstree.o scripts/dtc/data.o scripts/dtc/livetree.o scripts/dtc/treesource.o scripts/dtc/srcpos.o scripts/dtc/checks.o scripts/dtc/util.o scripts/dtc/dtc-lexer.lex.o scripts/dtc/dtc-parser.tab.o scripts/dtc/yamltree.o -lyaml
make -f ./scripts/Makefile.asm-generic \
src=uapi/asm obj=arch/x86/include/generated/uapi/asm
make -f ./scripts/Makefile.asm-generic \
src=asm obj=arch/x86/include/generated/asm
make -f ./scripts/Makefile.build obj=scripts
make -f ./scripts/Makefile.build obj=scripts/mod need-builtin=
gcc -Wp,-MD,scripts/mod/.empty.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DKBUILD_BASENAME='"empty"' -DKBUILD_MODNAME='"empty"' -c -o scripts/mod/empty.o scripts/mod/empty.c
gcc -Wp,-MD,scripts/mod/.mk_elfconfig.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -o scripts/mod/mk_elfconfig scripts/mod/mk_elfconfig.c
scripts/mod/mk_elfconfig < scripts/mod/empty.o > scripts/mod/elfconfig.h
gcc -Wp,-MD,scripts/mod/.modpost.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/mod/modpost.o scripts/mod/modpost.c
gcc -Wp,-MD,scripts/mod/.devicetable-offsets.s.d -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DKBUILD_BASENAME='"devicetable_offsets"' -DKBUILD_MODNAME='"devicetable_offsets"' -fverbose-asm -S -o scripts/mod/devicetable-offsets.s scripts/mod/devicetable-offsets.c
set -e; mkdir -p scripts/mod/; (set -e; echo "#ifndef __DEVICETABLE_OFFSETS_H__"; echo "#define __DEVICETABLE_OFFSETS_H__"; echo "/*"; echo " * DO NOT MODIFY."; echo " *"; echo " * This file was generated by Kbuild"; echo " */"; echo ""; sed -ne 's:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:; /^->/{s:->#\(.*\):/* \1 */:; s:^->\([^ ]*\) [\$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}' < scripts/mod/devicetable-offsets.s; echo ""; echo "#endif" ) > scripts/mod/devicetable-offsets.h.tmp; if [ -r scripts/mod/devicetable-offsets.h ] && cmp -s scripts/mod/devicetable-offsets.h scripts/mod/devicetable-offsets.h.tmp; then rm -f scripts/mod/devicetable-offsets.h.tmp; else : ' UPD scripts/mod/devicetable-offsets.h'; mv -f scripts/mod/devicetable-offsets.h.tmp scripts/mod/devicetable-offsets.h; fi
gcc -Wp,-MD,scripts/mod/.file2alias.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/mod/file2alias.o scripts/mod/file2alias.c
gcc -Wp,-MD,scripts/mod/.sumversion.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/mod/sumversion.o scripts/mod/sumversion.c
gcc -o scripts/mod/modpost scripts/mod/modpost.o scripts/mod/file2alias.o scripts/mod/sumversion.o
make -f ./scripts/Makefile.build obj=scripts/selinux need-builtin=
make -f ./scripts/Makefile.build obj=scripts/selinux/genheaders need-builtin=
gcc -Wp,-MD,scripts/selinux/genheaders/.genheaders.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./include/uapi -I./include -I./security/selinux/include -o scripts/selinux/genheaders/genheaders scripts/selinux/genheaders/genheaders.c
make -f ./scripts/Makefile.build obj=scripts/selinux/mdp need-builtin=
gcc -Wp,-MD,scripts/selinux/mdp/.mdp.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./include/uapi -I./include -I./security/selinux/include -o scripts/selinux/mdp/mdp scripts/selinux/mdp/mdp.c
gcc -Wp,-MD,scripts/.bin2c.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./tools/include -o scripts/bin2c scripts/bin2c.c
gcc -Wp,-MD,scripts/.kallsyms.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./tools/include -o scripts/kallsyms scripts/kallsyms.c
gcc -Wp,-MD,scripts/.conmakehash.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./tools/include -o scripts/conmakehash scripts/conmakehash.c
gcc -Wp,-MD,scripts/.recordmcount.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./tools/include -o scripts/recordmcount scripts/recordmcount.c
gcc -Wp,-MD,scripts/.sortextable.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./tools/include -I./tools/include -o scripts/sortextable scripts/sortextable.c
gcc -Wp,-MD,scripts/.asn1_compiler.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./tools/include -I./include -o scripts/asn1_compiler scripts/asn1_compiler.c
gcc -Wp,-MD,scripts/.sign-file.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./tools/include -o scripts/sign-file scripts/sign-file.c -lcrypto
gcc -Wp,-MD,scripts/.extract-cert.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I./tools/include -o scripts/extract-cert scripts/extract-cert.c -lcrypto
https://git.kernel.org/pub/scm/linux/ke … h=v4.20.13 using libressl it would include openssl/pkcs7.h instead of openssl/cms.h in both cases the only library linked against is crypto but
sign-file.c:(.text.startup+0x48): undefined reference to `OPENSSL_add_all_algorithms_noconf'
/usr/bin/ld: sign-file.c:(.text.startup+0x4d): undefined reference to `ERR_load_crypto_strings'
/usr/bin/ld: sign-file.c:(.text.startup+0x7ad): undefined reference to `OpenSSL_add_all_digests'
It can not find those symbols in the crypto library.
DeveloperWiki:Building_in_a_clean_chroot#Classic_way could work around that alternatively could you remove libressl or mount an empty directory over /usr/local/ while building the package.
Offline
alternatively could you remove libressl
Ah, that did it. I didn't think having libressl under /usr/local would interfere so much, sorry I didn't mention it earlier. The 4.20.13 kernel has finished compiling.
I've got work now so won't be able to test it and keep progressing the bisect until later. I'll update with a new post when I have more questions or information.
Offline
I now have a second computer affected by the same problem. This time the hardware and configuration is very different:
intel core i7-7700 cpu
ext4-on-LVM-on-LUKS-on-LVM root
nvidia GT-730 gpu
HP 82B4 motherboard
Offline
Before you test please replace 90-linux.hook with the one from post #12 if you have not already done so (otherwise the hook will not trigger and will need to manually generate the initrd)
cd linux-git
makepkg --repackage -i
Offline
Hi loqs,
Yep, I replaced the 90-linux.hook, --skipinteg no longer required.
So, this is awkward: I did reproduce the problem when compiling the 4.20.13 kernel, as expected ... but then when I compiled the 4.20.12 kernel, the problem was still present. (This is on the intel/HP box.)
It's turning into a bit of a head-scratcher
Offline
Even more awkward: I (kind of?) found the problem and it's not (completely) the kernel. It's all been because of me getting cocky.
I was recently playing around with compiling pacman from scratch. The build of pacman 5.1.2 was still in my path. When I remove that pacman build and use the Arch Linux default (which is now 5.1.3) to install kernel 5.20.13, the system boots successfully.
Open question: when it came to rolling back to 4.20.12, why did it work? After all, I was using the homegrown pacman 5.1.2 to do the rolling back.
Still it seems like I should mark the problem as solved now. The solution is, always use the latest pacman, and if things start breaking, remove your custom build.
Thanks for your support loqs, the information about how to git-bisect the kernel sources was immensely interesting and I will probably refer to it in future.
Offline