Remove the ILP32 __arch_swab cruft.
Just use the clang builtins all the time, as we do for the other
architectures. Specifically this fixes compilation errors caused by the
use of the non-standard `asm` when in a pure C mode like c11 rather than
gnu11.
Bug: https://github.com/android/ndk/issues/2107
Change-Id: I0d6fdd52fd6f9c77d4c5e137d82237c97effd438
diff --git a/libc/kernel/tools/defaults.py b/libc/kernel/tools/defaults.py
index a71318e..2994e5e 100644
--- a/libc/kernel/tools/defaults.py
+++ b/libc/kernel/tools/defaults.py
@@ -25,6 +25,23 @@
# Otherwise, there will be two struct timeval definitions when
# __kernel_old_timeval is renamed to timeval.
"__kernel_old_timeval": "1",
+ # Drop the custom byte swap functions and just use the clang builtins.
+ # https://github.com/android/ndk/issues/2107
+ "__arch_swab16": kCppUndefinedMacro,
+ "__arch_swab16p": kCppUndefinedMacro,
+ "__arch_swab16s": kCppUndefinedMacro,
+ "__arch_swab32": kCppUndefinedMacro,
+ "__arch_swab32p": kCppUndefinedMacro,
+ "__arch_swab32s": kCppUndefinedMacro,
+ "__arch_swab64": kCppUndefinedMacro,
+ "__arch_swab64p": kCppUndefinedMacro,
+ "__arch_swab64s": kCppUndefinedMacro,
+ "__arch_swahb32": kCppUndefinedMacro,
+ "__arch_swahb32p": kCppUndefinedMacro,
+ "__arch_swahb32s": kCppUndefinedMacro,
+ "__arch_swahw32": kCppUndefinedMacro,
+ "__arch_swahw32p": kCppUndefinedMacro,
+ "__arch_swahw32s": kCppUndefinedMacro,
}
# This is the set of known kernel data structures we want to remove from
@@ -133,9 +150,6 @@
# These are required to support the above functions.
"__fswahw32",
"__fswahb32",
- # As are these, for ILP32.
- "__arch_swab32",
- "__arch_swab64",
# This is used by various macros in <linux/ioprio.h>.
"ioprio_value",