mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-18 02:40:08 +00:00
sel4: replace syscalls.patch by macros.patch
This commit is contained in:
parent
52c4dc8ec8
commit
9bf7568909
@ -789,6 +789,12 @@ lines:
|
||||
Since we modified the port-description file, we need to update the
|
||||
accompanied hash via './tool/ports/update_hash sel4'.
|
||||
|
||||
_Edit: After consulting the seL4 mailing list, Adrian Danis pointed out that_
|
||||
_the actual issue is an off-by-one bug in the SEL4_FORCE_LONG_ENUM macro._
|
||||
_So instead of explicitly casting all opcodes to integers, the macro_
|
||||
_can be fixed at one place. Hence, I replaced the syscalls.patch by a_
|
||||
_macros.patch until the fix appears upstream._
|
||||
|
||||
Anyway, after all the steps, our test-sel4 program can be successfully
|
||||
built. Executing the run script produces the result that we longed for:
|
||||
|
||||
|
@ -1 +1 @@
|
||||
39b692f97c6a83fdc35e22909b80ce804cc3aa84
|
||||
aaedf65867d799944024bab904c344c160069c0f
|
||||
|
@ -7,5 +7,5 @@ URL(sel4) := https://github.com/seL4/seL4.git
|
||||
REV(sel4) := b6fbb78cb1233aa8549ea3acb90524306f49a8d2
|
||||
DIR(sel4) := src/kernel/sel4
|
||||
|
||||
PATCHES := src/kernel/syscalls.patch
|
||||
PATCHES := src/kernel/macros.patch
|
||||
PATCH_OPT := -p1 -d src/kernel/sel4
|
||||
|
13
repos/base-sel4/src/kernel/macros.patch
Normal file
13
repos/base-sel4/src/kernel/macros.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/libsel4/include/sel4/macros.h b/libsel4/include/sel4/macros.h
|
||||
index 99b18e1..0eea3fb 100644
|
||||
--- a/libsel4/include/sel4/macros.h
|
||||
+++ b/libsel4/include/sel4/macros.h
|
||||
@@ -17,7 +17,7 @@
|
||||
* the same size as an 'int'.
|
||||
*/
|
||||
#define SEL4_FORCE_LONG_ENUM(type) \
|
||||
- _enum_pad_ ## type = (1U << ((sizeof(int)*8) - 1))
|
||||
+ _enum_pad_ ## type = ((1U << ((sizeof(int)*8) - 1)) - 1)
|
||||
|
||||
#ifndef CONST
|
||||
#define CONST __attribute__((__const__))
|
@ -1,13 +0,0 @@
|
||||
diff --git a/libsel4/arch_include/ia32/sel4/arch/syscalls.h b/libsel4/arch_include/ia32/sel4/arch/syscalls.h
|
||||
index aef583b..d550343 100644
|
||||
--- a/libsel4/arch_include/ia32/sel4/arch/syscalls.h
|
||||
+++ b/libsel4/arch_include/ia32/sel4/arch/syscalls.h
|
||||
@@ -475,7 +475,7 @@ seL4_DebugPutChar(char c)
|
||||
"sysenter \n"
|
||||
"popl %%ebp \n"
|
||||
:
|
||||
- : "a" (seL4_SysDebugPutChar),
|
||||
+ : "a" ((int)seL4_SysDebugPutChar),
|
||||
"b" (c)
|
||||
: "%ecx", "%edx", "%esi", "%edi", "memory"
|
||||
);
|
Loading…
Reference in New Issue
Block a user