Source: linux Version: 4.9.130-1 Severity: serious Justification: FTBFS Tags: patch
Hi, The latest linux upload to stretch FTBFS on both armel and armhf due to symbol changes. The only offending (non-ignored) change is the following: > ABI has changed! Refusing to continue. > […] > Changed symbols: > […] > return_address module: vmlinux, version: > 0x0bbae511 -> 0x3244c143, export: EXPORT_SYMBOL_GPL Full build logs: https://buildd.debian.org/status/fetch.php?pkg=linux&arch=armel&ver=4.9.130-1&stamp=1539386797&raw=0 https://buildd.debian.org/status/fetch.php?pkg=linux&arch=armhf&ver=4.9.130-1&stamp=1539388630&raw=0 A cursory look at the source changes since 4.9.110-* didn't yield any obvious reasons for that to happen, so I've spent some time trying to figure out what was happening. First I checked that the toolchain packages were the same between the last successful builds and the first failing ones, and that the other installed packages didn't see obvious updates that could account for this change. With the abel.debian.org porterbox I've been able to work with partial builds (to speed up debugging) in an armel stretch chroot, comparing 4.9.110-3+deb9u6 and 4.9.130-1, after “make vmlinux” in the debian/build/build_armel_none_marvell directory. To get more information from genksyms, I've added the -d -D flags to the genksyms calls in the scripts/Makefile.build file, and triggered another build with: touch ../../../arch/arm/kernel/return_address.c make vmlinux 2>&1 | tee ~/build.txt Comparing build.txt for both 4.9.110 and 4.9.130, this popped up: -Export return_address == <__attribute__ ( ( always_inline ) ) __attribute__ ( ( no_instrument_function ) ) void * return_address ( unsigned int ) > +Export return_address == <__attribute__ ( ( always_inline , unused ) ) __attribute__ ( ( no_instrument_function ) ) void * return_address ( unsigned int ) > along with many more lines accounting for the addition of the “unused” attribute. With this hint in mind, it was way easier to spot candidates: git log --stat -p --pickaxe-all -Gunused v4.9.110..v4.9.130 in the upstream linux tree, which made me suspect: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=29524a9d42f683ca7b67f07f1ac3f6049c8675cc which aims at fixing inlining, but seems to introduce “unused” as a side effect. Since it couldn't be reverted directly, I've revert the following commit as well: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=02c89527b056301846bfdec4fabbad924d1ad59d With both commits reverted, a partial build leads to the come back of the wanted value for the return_address symbol (0x0bbae511), so this should fix / work around the FTBFS. A full build wasn't attempted though; feel free to ping me if you'd like that to happen for armel and/or armhf on abel. Cheers, -- Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/
signature.asc
Description: PGP signature