summaryrefslogtreecommitdiff
path: root/packages/newlib/1.17.0/0002-fix-arm-build.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/newlib/1.17.0/0002-fix-arm-build.patch')
-rw-r--r--packages/newlib/1.17.0/0002-fix-arm-build.patch64
1 files changed, 64 insertions, 0 deletions
diff --git a/packages/newlib/1.17.0/0002-fix-arm-build.patch b/packages/newlib/1.17.0/0002-fix-arm-build.patch
new file mode 100644
index 0000000..6b8170c
--- /dev/null
+++ b/packages/newlib/1.17.0/0002-fix-arm-build.patch
@@ -0,0 +1,64 @@
+---
+ libgloss/arm/linux-syscalls0.S | 44 -----------------------------------------
+ 1 file changed, 44 deletions(-)
+
+--- a/libgloss/arm/linux-syscalls0.S
++++ b/libgloss/arm/linux-syscalls0.S
+@@ -19,47 +19,6 @@
+ #define GLOBAL(name) .global name; FUNC(name)
+ #define SIZE(name) .size name, .-name
+
+-#if __thumb__
+-
+-# define SYSCALL0(name) \
+- GLOBAL(_ ## name); \
+- mov r12, r7; \
+- mov r7, #SYS_ ## name; \
+- swi; \
+- mov r7, r12; \
+- b _set_errno; \
+- SIZE(_ ## name)
+-
+-/* static int _syscall3(int a, int b, int c, int number); */
+-FUNC(_syscall3)
+- push { r7 }
+- mov r7, r3
+- swi
+- pop { r7 }
+- b _set_errno
+- SIZE(_syscall3)
+-
+-# define SYSCALL3(name) \
+- GLOBAL(_ ## name); \
+- mov r3, #SYS_ ## name; \
+- b _syscall3; \
+- SIZE(_ ## name)
+-
+-# define SYSCALL6(name) \
+- GLOBAL(_ ## name); \
+- push { r4 - r5, r7 }; \
+- ldr r4, [sp, #12]; \
+- ldr r5, [sp, #16]; \
+- mov r7, #SYS_ ## name; \
+- swi; \
+- pop { r4 - r5, r7 }; \
+- b _set_errno; \
+- SIZE(_ ## name)
+-
+-# define SYSCALL4(name) SYSCALL6(name)
+-
+-#else /* __thumb__ */
+-
+ # define SYSCALL4(name) \
+ GLOBAL(_ ## name); \
+ swi #SYS_ ## name; \
+@@ -78,9 +37,6 @@
+
+ #define SYSCALL0(name) SYSCALL3(name)
+ #define SYSCALL3(name) SYSCALL4(name)
+-
+-#endif /* __thumb__ */
+-
+ #define SYSCALL1(name) SYSCALL3(name)
+ #define SYSCALL2(name) SYSCALL3(name)
+ #define SYSCALL5(name) SYSCALL6(name)