commit 5e70b3a
Randy Palamar
·
2025-02-13 01:56:33 +0000 UTC
parent 0313184
strace: support aarch64
2 files changed,
+32,
-12
+7,
-3
1@@ -226,7 +226,9 @@
2 #define HAVE_STRUCT_IOCB_AIO_RW_FLAGS 1
3 #define HAVE_STRUCT_KBDIACRSUC 1
4 #define HAVE_STRUCT_KBDIACRUC 1
5+#if __x86_64__
6 #define HAVE_STRUCT_KVM_CPUID2 1
7+#endif /* __x86_64__ */
8 #define HAVE_STRUCT_KVM_REGS 1
9 #define HAVE_STRUCT_KVM_RUN_FLAGS 1
10 #define HAVE_STRUCT_KVM_RUN_IMMEDIATE_EXIT 1
11@@ -263,13 +265,17 @@
12 #define HAVE_STRUCT_TERMIOS2 1
13 /* #undef HAVE_STRUCT_TERMIOS_C_ISPEED */
14 /* #undef HAVE_STRUCT_TERMIOS_C_OSPEED */
15+#if __x86_64__
16 #define HAVE_STRUCT_USER_DESC 1
17 #define HAVE_STRUCT_USER_DESC_LM 1
18+#endif /* __x86_64__ */
19 #define HAVE_STRUCT_UTSNAME_DOMAINNAME 1
20 /* #undef HAVE_STRUCT___AIO_SIGSET */
21 #define HAVE_STRUCT___KERNEL_SOCK_TIMEVAL 1
22 #define HAVE_STRUCT___KERNEL_TIMESPEC 1
23+#if __x86_64__
24 #define HAVE_STRUCT___OLD_KERNEL_STAT 1
25+#endif /* __x86_64__ */
26 #define HAVE_SYNC_FILE_RANGE 1
27 #define HAVE_SYS_EVENTFD_H 1
28 #define HAVE_SYS_FANOTIFY_H 1
29@@ -590,9 +596,7 @@
30 # endif
31 #endif
32 /* #undef X32 */
33-#ifdef __x86_64__
34-# define X86_64 1
35-#endif
36+/* #undef X86_64 */
37 /* #undef XTENSA */
38 /* #undef gid_t */
39 /* #undef typeof */
+25,
-9
1@@ -1,13 +1,28 @@
2+local targets = {
3+ aarch64={
4+ cflags={'-D AARCH64=1'},
5+ ioctls=1,
6+ },
7+ x86_64={
8+ cflags={'-D X86_64=1'},
9+ ioctls=2,
10+ },
11+}
12+local arch = config.target.platform:match('[^-]*')
13+local targ = targets[arch]
14+if not targ then return end
15+
16 cflags{
17 '-D HAVE_CONFIG_H',
18 '-D IN_STRACE',
19 -- it is important that the arch-specific directory is searched first
20- '-I $srcdir/src/linux/x86_64',
21+ '-I $srcdir/src/linux/'..arch,
22 '-I $srcdir/src/linux/generic',
23 '-I $srcdir/src',
24 '-I $outdir',
25 '-isystem $builddir/pkg/linux-headers/include',
26 }
27+cflags(targ.cflags)
28
29 build('cat', '$outdir/config.h', {
30 '$builddir/probe/HAVE___BUILTIN_POPCOUNT',
31@@ -22,16 +37,16 @@ build('sed', '$outdir/ioctl_iocdef.h', '$outdir/ioctl_iocdef.i', {
32 sub('tools.ninja', function()
33 toolchain(config.host)
34 cflags{
35- '-D X86_64=1',
36- '-I $srcdir/src/linux/x86_64',
37+ '-I $srcdir/src/linux/'..arch,
38 '-I $srcdir/src/linux',
39 '-I $outdir',
40 }
41+ cflags(targ.cflags)
42
43- for i = 0, 2 do
44+ for i = 0, targ.ioctls do
45 build('cat', '$outdir/ioctls_all'..i..'.h', {
46- '$srcdir/src/linux/x86_64/ioctls_inc'..i..'.h',
47- '$srcdir/src/linux/x86_64/ioctls_arch'..i..'.h',
48+ '$srcdir/src/linux/'..arch..'/ioctls_inc'..i..'.h',
49+ '$srcdir/src/linux/'..arch..'/ioctls_arch'..i..'.h',
50 })
51 build('cc', '$outdir/ioctlsort'..i..'.c.o', {
52 '$srcdir/src/ioctlsort.c',
53@@ -379,9 +394,6 @@ build('sed', '$outdir/sys_func.h', expand{'$srcdir/', srcs}, {
54
55 pkg.deps = {
56 '$outdir/config.h',
57- '$outdir/ioctlent0.h',
58- '$outdir/ioctlent1.h',
59- '$outdir/ioctlent2.h',
60 '$outdir/native_printer_decls.h',
61 '$outdir/native_printer_defs.h',
62 '$outdir/printers.h',
63@@ -391,6 +403,10 @@ pkg.deps = {
64 'pkg/linux-headers/headers',
65 }
66
67+for i = 0, targ.ioctls do
68+ table.insert(pkg.deps, '$outdir/ioctlent'..i..'.h')
69+end
70+
71 lib('libstrace.a', srcs)
72 exe('strace', {'src/strace.c', 'libstrace.a'})
73 file('bin/strace', '755', '$outdir/strace')