Skip to content

Commit 239230f

Browse files
committed
strace: support aarch64
1 parent 8d2010b commit 239230f

2 files changed

Lines changed: 34 additions & 11 deletions

File tree

pkg/strace/config.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@
222222
#define HAVE_STRUCT_IOCB_AIO_RW_FLAGS 1
223223
#define HAVE_STRUCT_KBDIACRSUC 1
224224
#define HAVE_STRUCT_KBDIACRUC 1
225-
#define HAVE_STRUCT_KVM_CPUID2 1
225+
/* #undef HAVE_STRUCT_KVM_CPUID2 */
226226
#define HAVE_STRUCT_KVM_REGS 1
227227
#define HAVE_STRUCT_KVM_SREGS 1
228228
#define HAVE_STRUCT_KVM_USERSPACE_MEMORY_REGION 1
@@ -258,13 +258,13 @@
258258
#define HAVE_STRUCT_TERMIOS2 1
259259
/* #undef HAVE_STRUCT_TERMIOS_C_ISPEED */
260260
/* #undef HAVE_STRUCT_TERMIOS_C_OSPEED */
261-
#define HAVE_STRUCT_USER_DESC 1
262-
#define HAVE_STRUCT_USER_DESC_LM 1
261+
/* #undef HAVE_STRUCT_USER_DESC */
262+
/* #undef HAVE_STRUCT_USER_DESC_LM */
263263
#define HAVE_STRUCT_UTSNAME_DOMAINNAME 1
264264
/* #undef HAVE_STRUCT___AIO_SIGSET */
265265
#define HAVE_STRUCT___KERNEL_SOCK_TIMEVAL 1
266266
#define HAVE_STRUCT___KERNEL_TIMESPEC 1
267-
#define HAVE_STRUCT___OLD_KERNEL_STAT 1
267+
/* #undef HAVE_STRUCT___OLD_KERNEL_STAT */
268268
#define HAVE_STRUCT___PTRACE_SYSCALL_INFO 1
269269
#define HAVE_SYNC_FILE_RANGE 1
270270
#define HAVE_SYS_EVENTFD_H 1
@@ -540,7 +540,7 @@
540540
# endif
541541
#endif
542542
/* #undef X32 */
543-
#define X86_64 1
543+
/* #undef X86_64 */
544544
/* #undef XTENSA */
545545
/* #undef gid_t */
546546
/* #undef typeof */

pkg/strace/gen.lua

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,32 @@
1+
local arch = ({
2+
aarch64='aarch64',
3+
x86_64='x86_64',
4+
})[config.target.platform:match('[^-]*')]
5+
-- NOTE: strace is architecture specific, skip generation on unsupported archs
6+
if not arch then return end
7+
18
cflags{
29
'-D HAVE_CONFIG_H',
310
'-D IN_STRACE',
411
-- it is important that the arch-specific directory is searched first
5-
'-I $srcdir/src/linux/x86_64',
12+
'-I $srcdir/src/linux/'..arch,
613
'-I $srcdir/src/linux/generic',
714
'-I $srcdir/src',
815
'-I $outdir',
916
'-isystem $builddir/pkg/linux-headers/include',
1017
}
1118

19+
local arch_cflags = {}
20+
arch_cflags['aarch64'] = {'-D AARCH64=1'}
21+
arch_cflags['x86_64'] = {
22+
'-D X86_64=1',
23+
'-D HAVE_STRUCT_KVM_CPUID2=1',
24+
'-D HAVE_STRUCT_USER_DESC=1',
25+
'-D HAVE_STRUCT_USER_DESC_LM=1',
26+
'-D HAVE_STRUCT___OLD_KERNEL_STAT=1',
27+
}
28+
cflags(arch_cflags[arch])
29+
1230
build('cat', '$outdir/config.h', {
1331
'$builddir/probe/HAVE___BUILTIN_POPCOUNT',
1432
'$dir/config.h',
@@ -22,16 +40,21 @@ build('sed', '$outdir/ioctl_iocdef.h', '$outdir/ioctl_iocdef.i', {
2240
sub('tools.ninja', function()
2341
toolchain(config.host)
2442
cflags{
25-
'-D X86_64=1',
26-
'-I $srcdir/src/linux/x86_64',
43+
'-I $srcdir/src/linux/'..arch,
2744
'-I $srcdir/src/linux',
2845
'-I $outdir',
2946
}
47+
cflags(arch_cflags[arch])
48+
49+
local arch_h_count = {
50+
aarch64=1,
51+
x86_64=2,
52+
}
3053

31-
for i = 0, 2 do
54+
for i = 0, arch_h_count[arch] do
3255
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',
56+
'$srcdir/src/linux/'..arch..'/ioctls_inc'..i..'.h',
57+
'$srcdir/src/linux/'..arch..'/ioctls_arch'..i..'.h',
3558
})
3659
build('cc', '$outdir/ioctlsort'..i..'.c.o', {
3760
'$srcdir/src/ioctlsort.c',

0 commit comments

Comments
 (0)