Skip to content

Commit c3d51de

Browse files
committed
strace: support aarch64
1 parent 28e1aa4 commit c3d51de

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

pkg/strace/config.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
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+
1224
build('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

2234
sub('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

Comments
 (0)