meson: drop arch filtering in syscall list
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 25 Jan 2024 12:26:21 +0000 (13:26 +0100)
committerCarlos Henrique Lima Melara <charlesmelara@riseup.net>
Thu, 26 Jun 2025 00:44:53 +0000 (21:44 -0300)
I added the filtering in 752fedbea7c02c82287c7ff2a4139f528b3f7ba8 as a way
to reduce the number of items in the tables. I thought it's "obvious", but
it might not be so.

One immediate problem is that the filter is broken, because on arm64,
os.uname().machine returns "aarch64", so we incorrectly filter out the arm
syscalls (there is just one: arm_fadvise64_64). Of course we could fix the
filter, but I think it's better to nuke it altogether. The filter on applies to
1 arm syscall and 5 s390 syscalls, and we have 500+ other syscalls, so this
"optimization" doesn't really matter. OTOH, if we get the filter wrong,
the result is bad. And also, the existence of the filter at all creates
problems for cross-builds.

I wanted to get rid of 'generate-syscall-list.py', but we need to generate a
backslash in the output. https://github.com/mesonbuild/meson/issues/1564 makes
this very very hard, since any attempt to put a backslash an inline argument
results in the backslash being replaces by a forward slash, which doesn't quite
have the same meaning. So let's use a standalone script until
https://github.com/mesonbuild/meson/issues/1564 is resolved.

(cherry picked from commit 58fcc6b013bbc8c6290348f701ddb862928cc1a0)
(cherry picked from commit ded73e68fcbfbf82beba15a8f0280e5c010c8bde)
(cherry picked from commit d31ac846b22dc7d1245b4df01a1868866b529447)
(cherry picked from commit f9242887943fa2e7345f915fbfacd235d67dbed7)
(cherry picked from commit b23b2680ff2520e760c6b0f7b285a2334a4ac1c7)

Gbp-Pq: Name meson-drop-arch-filtering-in-syscall-list.patch

src/shared/generate-syscall-list.py

index 030c3feec45170dd1bd3255c1919067af65cef3c..0b90d2d2766690b43a20eada5b93462538e37aa6 100755 (executable)
@@ -1,14 +1,5 @@
 #!/usr/bin/env python3
 import sys
-import os
-
-s390 = 's390' in os.uname().machine
-arm = 'arm' in os.uname().machine
 
 for line in open(sys.argv[1]):
-    if line.startswith('s390_') and not s390:
-        continue
-    if line.startswith('arm_') and not arm:
-        continue
-
     print('"{}\\0"'.format(line.strip()))