remove old clang workarounds from arm syscall implementation
authorRich Felker <dalias@aerifal.cx>
Sun, 23 Nov 2014 01:50:01 +0000 (20:50 -0500)
committerRich Felker <dalias@aerifal.cx>
Sun, 23 Nov 2014 01:50:01 +0000 (20:50 -0500)
the register constraints in the non-clang case were tested to work on
clang back to 3.2, and earlier versions of clang have known bugs that
preclude building musl.

there may be other reasons to prefer not to use inline syscalls, but
if so the function-call-based implementations should be added back in
a unified way for all archs.

arch/arm/syscall_arch.h

index e10748a49ddaac3a63aca637bde7f85e8864da7c..845f2e4d4e7238c0743d200d3f1c1b5aa0f234f5 100644 (file)
@@ -5,8 +5,6 @@
 
 long (__syscall)(long, ...);
 
-#ifndef __clang__
-
 #define __asm_syscall(...) do { \
        __asm__ __volatile__ ( "svc 0" \
        : "=r"(r0) : __VA_ARGS__ : "memory"); \
@@ -54,35 +52,6 @@ static inline long __syscall4(long n, long a, long b, long c, long d)
        __asm_syscall("r"(r7), "0"(r0), "r"(r1), "r"(r2), "r"(r3));
 }
 
-#else
-
-static inline long __syscall0(long n)
-{
-       return (__syscall)(n);
-}
-
-static inline long __syscall1(long n, long a)
-{
-       return (__syscall)(n, a);
-}
-
-static inline long __syscall2(long n, long a, long b)
-{
-       return (__syscall)(n, a, b);
-}
-
-static inline long __syscall3(long n, long a, long b, long c)
-{
-       return (__syscall)(n, a, b, c);
-}
-
-static inline long __syscall4(long n, long a, long b, long c, long d)
-{
-       return (__syscall)(n, a, b, c, d);
-}
-
-#endif
-
 static inline long __syscall5(long n, long a, long b, long c, long d, long e)
 {
        return (__syscall)(n, a, b, c, d, e);