diff options
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.patch | 64 |
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) |