add patches for 0.33
Package-Manager: portage-2.2.7 RepoMan-Options: --force
This commit is contained in:
71
dev-libs/dietlibc/files/0027-fix-arm-mmap.diff
Normal file
71
dev-libs/dietlibc/files/0027-fix-arm-mmap.diff
Normal file
@@ -0,0 +1,71 @@
|
||||
From: Thorsten Glaser <tg@mirbsd.org>
|
||||
Date: Tue, 8 Nov 2011 22:33:12 +0000
|
||||
Subject: [PATCH] fix mmap syscall on ARM
|
||||
|
||||
several issues found while debugging on the Debian armhf porterbox
|
||||
on #debian-arm with pbrook (Paul Brook) and lindi- (Timo Juhani Lindfors)
|
||||
|
||||
- the comment only applies to the non-EABI part of the function
|
||||
- "This is ARM code. But you've not maked mmap as a function symbol."
|
||||
=> use the arm-features.h macros
|
||||
|
||||
Index: pkg-dietlibc/arm/mmap.S
|
||||
===================================================================
|
||||
--- pkg-dietlibc.orig/arm/mmap.S 2012-03-25 15:07:28.000000000 +0000
|
||||
+++ pkg-dietlibc/arm/mmap.S 2012-03-25 15:14:00.000000000 +0000
|
||||
@@ -1,22 +1,13 @@
|
||||
#include <errno.h>
|
||||
#include "syscalls.h"
|
||||
+#include "dietfeatures.h"
|
||||
+#include "arm-features.h"
|
||||
|
||||
.text
|
||||
|
||||
-@
|
||||
-@ mmap takes 6 parameters - ie more than can be passed in registers via the
|
||||
-@ regular syscall interface. Instead, parameters are passed on the stack.
|
||||
-@
|
||||
-@ On entry, the compiler will have already placed the fifth and sixth
|
||||
-@ parameters on the stack - all we need do here is push the first four and
|
||||
-@ call the syscall.
|
||||
-@
|
||||
-
|
||||
-.global mmap
|
||||
+FUNC_START mmap
|
||||
|
||||
#ifdef __ARM_EABI__
|
||||
-
|
||||
-mmap:
|
||||
str r5, [sp, #-4]!
|
||||
ldr r5, [sp, #8]
|
||||
str r4, [sp, #-4]!
|
||||
@@ -28,11 +19,19 @@
|
||||
ldr r4, [sp], #4
|
||||
ldr r5, [sp], #4
|
||||
cmn r0, #4096
|
||||
- mov pc, lr @ return
|
||||
+ RET
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+@
|
||||
+@ mmap takes 6 parameters - ie more than can be passed in registers via the
|
||||
+@ regular syscall interface. Instead, parameters are passed on the stack.
|
||||
+@
|
||||
+@ On entry, the compiler will have already placed the fifth and sixth
|
||||
+@ parameters on the stack - all we need do here is push the first four and
|
||||
+@ call the syscall.
|
||||
+@
|
||||
|
||||
-#else
|
||||
-
|
||||
-mmap:
|
||||
stmdb sp!, {r0, r1, r2, r3}
|
||||
mov r0, sp
|
||||
swi __NR_mmap
|
||||
@@ -40,3 +39,5 @@
|
||||
b __unified_syscall
|
||||
|
||||
#endif
|
||||
+
|
||||
+FUNC_END mmap
|
||||
Reference in New Issue
Block a user