Build failure with 6.9-rt5 on arm64; works on amd64 and 6.9-rc6 on arm64
Hi,
I previously successfully build a 6.9-rc6 kernel with the RT patch set. But when I updated to 6.9(.0) + 6.9-rt5, I'm getting consistently the below build failure.
Oddly enough, I don't get it on amd64, only on arm64.
Small except from the build log:
```
# CC lib/rhashtable.o
aarch64-linux-gnu-gcc-13 -Wp,-MMD,lib/.rhashtable.o.d -nostdinc -I/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/arch/arm64/include -I./arch/arm64/include/generated -I/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include -I./include -I/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/arch/arm64/include/uapi -I./arch/arm64/include/generated/uapi -I/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/uapi -I./include/generated/uapi -include /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/compiler-version.h -include /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/kconfig.h -include /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -DCC_USING_PATCHABLE_FUNCTION_ENTRY -DKASAN_SHADOW_SCALE_SHIFT= -fmacro-prefix-map=/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/= -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -mgeneral-regs-only -DCONFIG_CC_HAS_K_CONSTRAINT=1 -Wno-psabi -mabi=lp64 -fno-asynchronous-unwind-tables -fno-unwind-tables -mbranch-protection=pac-ret -Wa,-march=armv8.5-a -DARM64_ASM_ARCH='"armv8.5-a"' -DKASAN_SHADOW_SCALE_SHIFT= -fno-delete-null-pointer-checks -O2 -fno-allow-store-data-races -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -ftrivial-auto-var-init=zero -fno-stack-clash-protection -falign-functions=8 -fstrict-flex-arrays=3 -fno-strict-overflow -fno-stack-check -fconserve-stack -Wall -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=2048 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-dangling-pointer -Wvla -Wno-pointer-sign -Wcast-function-type -Wno-stringop-overflow -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-restrict -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -g -fdebug-prefix-map=/home/diederik/dev/debian/salsa/kernel-team/linux/= -mstack-protector-guard=sysreg -mstack-protector-guard-reg=sp_el0 -mstack-protector-guard-offset=1464 -I /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/lib -I ./lib -DKBUILD_MODFILE='"lib/rhashtable"' -DKBUILD_BASENAME='"rhashtable"' -DKBUILD_MODNAME='"rhashtable"' -D__KBUILD_MODNAME=kmod_rhashtable -c -o lib/rhashtable.o /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/lib/rhashtable.c
In file included from /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/rwsem.h:15,
from /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/notifier.h:15,
from /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/clk.h:14,
from /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:10:
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c: In function ‘rzg2l_gpio_irq_restore’:
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:2072:52: error: ‘spinlock_t’ {aka ‘struct spinlock’} has no member named ‘rlock’; did you mean ‘lock’?
2072 | raw_spin_lock_irqsave(&pctrl->lock.rlock, flags);
| ^~~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/spinlock.h:244:48: note: in definition of macro ‘raw_spin_lock_irqsave’
244 | flags = _raw_spin_lock_irqsave(lock); \
| ^~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:2076:57: error: ‘spinlock_t’ {aka ‘struct spinlock’} has no member named ‘rlock’; did you mean ‘lock’?
2076 | raw_spin_unlock_irqrestore(&pctrl->lock.rlock, flags);
| ^~~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/spinlock.h:282:45: note: in definition of macro ‘raw_spin_unlock_irqrestore’
282 | _raw_spin_unlock_irqrestore(lock, flags); \
| ^~~~
make[8]: *** [/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/scripts/Makefile.build:249: drivers/pinctrl/renesas/pinctrl-rzg2l.o] Error 1
make[7]: *** [/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/scripts/Makefile.build:490: drivers/pinctrl/renesas] Error 2
make[6]: *** [/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/scripts/Makefile.build:490: drivers/pinctrl] Error 2
make[5]: *** [/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/scripts/Makefile.build:490: drivers] Error 2
/usr/bin/make -f /home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/scripts/Makefile.build obj=sound/pci/emu10k1 \
need-builtin= \
need-modorder=1 \
make[5]: *** Waiting for unfinished jobs....
...
make[4]: *** [/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/Makefile:1944: .] Error 2
make[3]: *** [/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/Makefile:252: __sub-make] Error 2
make[3]: Leaving directory '/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/build_arm64_rt_arm64'
make[2]: *** [debian/rules.real:164: debian/stamps/build_arm64_rt_arm64] Error 2
make[2]: Leaving directory '/home/diederik/dev/debian/salsa/kernel-team/linux'
make[1]: *** [debian/rules.gen:1110: build-arch_arm64_rt_arm64_image] Error 2
make[1]: Leaving directory '/home/diederik/dev/debian/salsa/kernel-team/linux'
make: *** [debian/rules:43: build-arch] Error 2
```https://salsa.debian.org/diederik/linux/-/tree/update-to-6.9 is the source of this build (failure).
It could be a PEBKAC issue, but I consistently get this exact error and I can't think of a reason why any of my changes could result in a successful 6.9-rc6 build, but a failure in 6.9(.0), so I suspect it's due to an upstream change.
Haven't tried 6.9-rc7 (yet?) as my arm64 builds take 24+h, but will do if indicated that it would provide important extra data.
Cheers,
Diederik
Quoted 36 lines · On Friday, 17 May 2024 15:08:36 CEST Diederik de Haas wrote:
In file included from
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/rwsem.h:15, from/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/notifier.h:15, from/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/clk.h:14, from/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:10:/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c: In function ‘rzg2l_gpio_irq_restore’:/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:2072:52: error: ‘spinlock_t’ {aka ‘struct spinlock’} has no member named ‘rlock’; did you mean ‘lock’? 2072 |raw_spin_lock_irqsave(&pctrl->lock.rlock, flags); | ^~~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/spinlock.h:244:48: note: in definition of macro
‘raw_spin_lock_irqsave’ 244 | flags =_raw_spin_lock_irqsave(lock); \| ^~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:2076:57: error: ‘spinlock_t’ {aka ‘struct spinlock’} has no member named ‘rlock’; did you mean ‘lock’? 2076 |raw_spin_unlock_irqrestore(&pctrl->lock.rlock, flags); | ^~~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/spinlock.h:282:45: note: in definition of macro ‘raw_spin_unlock_irqrestore’ 282 |_raw_spin_unlock_irqrestore(lock, flags); \
| ^~~~
Quoted 3 lines
make[8]: *** [
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/scripts/Makefile.build:249:drivers/pinctrl/renesas/pinctrl-rzg2l.o] Error 1
https://salsa.debian.org/kernel-team/linux/-/merge_requests/1081#note_492742
pointed me to the following 2 commits which got added in 6.9-rc7:
https://git.kernel.org/linus/aa43c15a790cf083a6e6a7c531cffd27a5e1fd4f
https://git.kernel.org/linus/02cd2d3be1c31a3fd328ee83e576340d34bc57d9
I'm inclined to think those are very relevant, but I don't know enough about this material to be sure.
Cheers,
Diederik
Quoted 41 lines · Diederik de Haas
Quoted 36 lines · On Friday, 17 May 2024 15:08:36 CEST Diederik de Haas wrote:
In file included from
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/rwsem.h:15, from/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/notifier.h:15, from/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/clk.h:14, from/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:10:/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c: In function ‘rzg2l_gpio_irq_restore’:/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:2072:52: error: ‘spinlock_t’ {aka ‘struct spinlock’} has no member named ‘rlock’; did you mean ‘lock’? 2072 |raw_spin_lock_irqsave(&pctrl->lock.rlock, flags); | ^~~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/spinlock.h:244:48: note: in definition of macro ‘raw_spin_lock_irqsave’ 244 | flags = _raw_spin_lock_irqsave(lock); \| ^~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/drivers/pinctrl/renesas/pinctrl-rzg2l.c:2076:57: error: ‘spinlock_t’ {aka ‘struct spinlock’} has no member named ‘rlock’; did you mean ‘lock’? 2076 |raw_spin_unlock_irqrestore(&pctrl->lock.rlock, flags); | ^~~~~
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/include/linux/spinlock.h:282:45: note: in definition of macro ‘raw_spin_unlock_irqrestore’ 282 |_raw_spin_unlock_irqrestore(lock, flags); \
| ^~~~Quoted 3 lines
make[8]: *** [
/home/diederik/dev/debian/salsa/kernel-team/linux/debian/build/source_rt/scripts/Makefile.build:249:drivers/pinctrl/renesas/pinctrl-rzg2l.o] Error 1
Quoted 8 lines
https://salsa.debian.org/kernel-team/linux/-/merge_requests/1081#note_492742
pointed me to the following 2 commits which got added in 6.9-rc7:https://git.kernel.org/linus/aa43c15a790cf083a6e6a7c531cffd27a5e1fd4f
https://git.kernel.org/linus/02cd2d3be1c31a3fd328ee83e576340d34bc57d9I'm inclined to think those are very relevant, but I don't know enough about this material to be sure.
Yeah, they're relevant/broken. pctrl->lock is a spinlock_t, which maps to an rtmutex for RT and a raw_spinlock for !RT specifically to allow seamless underlying lock type substitution via .config.
-Mike