On 6/10/26 17:00, Thomas Huth wrote:
On 02/06/2026 08.48, Chinmay Rath wrote:
From: Nicholas Piggin <[email protected]>
arch_libdir was brought in to improve the heuristic determination of
the lib/ directory based on arch and testdir names, but it did not
entirely clean that mess up.
Remove the arch_libdir->arch->testdir heuristic and just require
everybody sets arch_libdir correctly. Fail if the lib/arch or
lib/arch/asm directories can not be found.
Signed-off-by: Nicholas Piggin <[email protected]>
Signed-off-by: Chinmay Rath <[email protected]>
---
Makefile | 2 +-
configure | 20 ++++++++++++--------
2 files changed, 13 insertions(+), 9 deletions(-)
FYI, this patch seems to trigger yet another issue with Clang (I used
v21):
clang -no-integrated-as -std=gnu99 -ffreestanding -O2 -msoft-float
-mno-altivec -I /root/kvm-unit-tests/lib -I
/root/kvm-unit-tests/lib/libfdt -I lib -Wa,-mregnames -fverbose-asm -S
-o lib/powerpc/asm-offsets.s lib/powerpc/asm-offsets.c
lib/powerpc/asm-offsets.c:10:10: error: 'asm/smp.h' file not found
with <angled> include; use
"quotes" instead
10 | #include <asm/smp.h>
| ^~~~~~~~~~~
| "asm/smp.h"
In file included from lib/powerpc/asm-offsets.c:10:
lib/powerpc/asm/smp.h:5:10: fatal error: 'asm/processor.h' file not found
5 | #include <asm/processor.h>
| ^~~~~~~~~~~~~~~~~
2 errors generated.
Could you please have a look?
Hi Thomas, back from traveling and looked into this.
I am using Clang v21 as well :
# clang --version
clang version 21.1.8 (Fedora 21.1.8-4.fc43)
Target: ppc64le-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Configuration file: /etc/clang/ppc64le-redhat-linux-gnu-clang.cfg
I see the above file, asm-offsets.s being generated properly without any
error during the make process (used the extra flags for make that I have
mentioned in my other reply).
Snippet from make :
cat powerpc/boot_rom.bin.tmp >> powerpc/boot_rom.bin
rm -f powerpc/boot_rom.bin.tmp
clang -no-integrated-as -Wa,-mpower10 -std=gnu99 -ffreestanding -O2
-msoft-float -mno-altivec -I /root/chins/git/kvm-unit-tests/lib -I
/root/chins/git/kvm-unit-tests/lib/libfdt -I lib -Wa,-mregnames
-fverbose-asm -S -o lib/powerpc/asm-offsets.s
/root/chins/git/kvm-unit-tests/lib/powerpc/asm-offsets.c
(set -e; echo "#ifndef __ASM_OFFSETS_H__"; echo "#define
__ASM_OFFSETS_H__"; echo "/*"; echo " * Generated file. DO NOT MODIFY.";
echo " *"; echo " */"; echo ""; sed -ne
's:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:;
/^->/{s:->#\(.*\):/* \1 */:; s:^->\([^ ]*\) [\$#]*\([-0-9]*\)
\(.*\):#define \1 \2 /* \3 */:; s:^->\([^ ]*\) [\$#]*\([^ ]*\)
\(.*\):#define \1 \2 /* \3 */:; s:->::; p;}' lib/powerpc/asm-offsets.s;
echo ""; echo "#endif" ) > lib/powerpc/asm-offsets.h
cp -f lib/powerpc/asm-offsets.h lib/generated/
clang -no-integrated-as -Wa,-mpower10 -std=gnu99 -ffreestanding -O2
-msoft-float -mno-altivec -I /root/chins/git/kvm-unit-tests/lib -I
/root/chins/git/kvm-unit-tests/lib/libfdt -I lib -Wa,-mregnames -g -MMD
-MP -MF powerpc/.selftest.d -fno-strict-aliasing -fno-common -Wall
-Wwrite-strings -Wempty-body -Wuninitialized -Wignored-qualifiers
-Wno-missing-braces -Werror -fomit-frame-pointer -fno-stack-protector
-Wno-frame-address -fno-pic -Wunused-but-set-parameter
-Wno-override-init -Wmissing-prototypes -Wstrict-prototypes
-mlittle-endian -c -o powerpc/selftest.o
/root/chins/git/kvm-unit-tests/powerpc/selftest.c
Infact, if I just execute that single command independently to build
asm-offsets.s, it works as well.
However, I noticed that if that single command is executed in a
directory (build or main directory) where configure command hasn't been
executed first, that is when the error you have shared above pops out.
It is probably because configure adds some file to ./lib and those are
included in the clang command using "-I lib"
Thanks,
Chinmay
Thanks,
Thomas