1- cflags {
1+ local arch = ({
2+ aarch64 = ' aarch64' ,
3+ x86_64 = ' x86_64' ,
4+ })[config .target .platform :match (' [^-]*' )]
5+ if not arch then error (' unsupported arch' ) end
6+
7+ local generic_cflags = {
28 ' -D HAVE_CONFIG_H' ,
39 ' -D IN_STRACE' ,
410 -- it is important that the arch-specific directory is searched first
5- ' -I $srcdir/src/linux/x86_64 ' ,
11+ ' -I $srcdir/src/linux/' .. arch ,
612 ' -I $srcdir/src/linux/generic' ,
713 ' -I $srcdir/src' ,
814 ' -I $outdir' ,
915 ' -isystem $builddir/pkg/linux-headers/include' ,
1016}
1117
18+ local arch_cflags = {}
19+ arch_cflags [' aarch64' ] = {' -D AARCH64=1' , table.unpack (generic_cflags )}
20+ arch_cflags [' x86_64' ] = {' -D X86_64=1' , table.unpack (generic_cflags )}
21+
22+ cflags (arch_cflags [arch ])
23+
1224build (' cat' , ' $outdir/config.h' , {
1325 ' $builddir/probe/HAVE___BUILTIN_POPCOUNT' ,
1426 ' $dir/config.h' ,
@@ -21,17 +33,16 @@ build('sed', '$outdir/ioctl_iocdef.h', '$outdir/ioctl_iocdef.i', {
2133
2234sub (' tools.ninja' , function ()
2335 toolchain (config .host )
24- cflags {
25- ' -D X86_64=1' ,
26- ' -I $srcdir/src/linux/x86_64' ,
27- ' -I $srcdir/src/linux' ,
28- ' -I $outdir' ,
29- }
36+ cflags (arch_cflags [arch ])
37+
38+ local arch_h_count = {}
39+ arch_h_count [' aarch64' ] = 1
40+ arch_h_count [' x86_64' ] = 2
3041
31- for i = 0 , 2 do
42+ for i = 0 , arch_h_count [ arch ] do
3243 build (' cat' , ' $outdir/ioctls_all' .. i .. ' .h' , {
33- ' $srcdir/src/linux/x86_64 /ioctls_inc' .. i .. ' .h' ,
34- ' $srcdir/src/linux/x86_64 /ioctls_arch' .. i .. ' .h' ,
44+ ' $srcdir/src/linux/' .. arch .. ' /ioctls_inc' .. i .. ' .h' ,
45+ ' $srcdir/src/linux/' .. arch .. ' /ioctls_arch' .. i .. ' .h' ,
3546 })
3647 build (' cc' , ' $outdir/ioctlsort' .. i .. ' .c.o' , {
3748 ' $srcdir/src/ioctlsort.c' ,
0 commit comments