EXLMOTODEV

Xen-Arm_0003_Fix_build_via_math.S.patch

Mar 14th, 2014
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 4.15 KB | None | 0 0
  1. diff --git a/Config.mk b/Config.mk
  2. index f44bbcf..6fb1ab5 100755
  3. --- a/Config.mk
  4. +++ b/Config.mk
  5. @@ -37,7 +37,7 @@ HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
  6.  #
  7.  # Cross Tool chain configuration
  8.  #
  9. -TOOLCHAIN_PREFIX = /opt/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-
  10. +#TOOLCHAIN_PREFIX = /opt/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-
  11.  
  12.  #
  13.  # Toolchain configuration
  14. diff --git a/tools/minios/Config.mk b/tools/minios/Config.mk
  15. index b63f4fe..3496483 100755
  16. --- a/tools/minios/Config.mk
  17. +++ b/tools/minios/Config.mk
  18. @@ -15,7 +15,7 @@ HOSTCFLAGS        = -Wall -Werror -Wstrict-prototypes -g -fomit-frame-pointer
  19.  # Cross Tool chain configuration
  20.  #
  21.  #CROSS_COMPILE     = arm_v4t_le-
  22. -CROSS_COMPILE      = /opt/arm-linux-4.1.1/bin/arm-linux-
  23. +#CROSS_COMPILE     = /home/exl/x-tools/arm-qemu-eabi/bin/arm-qemu-eabi-
  24.  
  25.  #
  26.  # Target Configuration for Xeno-mini
  27. diff --git a/tools/minios/Makefile b/tools/minios/Makefile
  28. index 39b878e..7672d50 100755
  29. --- a/tools/minios/Makefile
  30. +++ b/tools/minios/Makefile
  31. @@ -10,6 +10,8 @@ OBJS            := arch/$(XENO_TARGET_ARCH)/$(XENO_TARGET_ARCH).o
  32.  OBJS            += kernel/built_in.o
  33.  OBJS            += lib/built_in.o
  34.  
  35. +all: default
  36. +
  37.  default: $(XENO_TARGET_IMAGE)
  38.  
  39.  $(XENO_TARGET_IMAGE): build
  40. diff --git a/tools/minios/arch/arm/common/math.S b/tools/minios/arch/arm/common/math.S
  41. index 8716640..0b48309 100755
  42. --- a/tools/minios/arch/arm/common/math.S
  43. +++ b/tools/minios/arch/arm/common/math.S
  44. @@ -129,7 +129,7 @@
  45.  5:
  46.  .endm
  47.  
  48. -
  49. +/*
  50.     .global __udivsi3
  51.     .align 0
  52.  __udivsi3:
  53. @@ -235,7 +235,7 @@ __modsi3:
  54.  10:    cmp ip, #0
  55.     rsbmi   r0, r0, #0
  56.     mov pc, lr
  57. -
  58. +*/
  59.  Ldiv0:
  60.  
  61.     str lr, [sp, #-4]!
  62. diff --git a/tools/minios/kernel/gnttab.c b/tools/minios/kernel/gnttab.c
  63. index 0cea337..ba8f808 100755
  64. --- a/tools/minios/kernel/gnttab.c
  65. +++ b/tools/minios/kernel/gnttab.c
  66. @@ -190,7 +190,7 @@ gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly)
  67.             return 0;
  68.         }
  69.     }
  70. -   while ((nflags = atomic_cmpxchg_u16(&shared[ref].flags, flags, 0)) !=
  71. +   while ((nflags = atomic_cmpxchg_u16((u16 *)&shared[ref].flags, flags, 0)) !=
  72.            flags);
  73.  
  74.     return 1;
  75. @@ -248,7 +248,7 @@ gnttab_end_foreign_transfer_ref(grant_ref_t ref)
  76.           * reference and return failure (== 0).
  77.           */
  78.     while (!((flags = shared[ref].flags) & GTF_transfer_committed)) {
  79. -       if ( atomic_cmpxchg_u16(&shared[ref].flags, flags, 0) == flags )
  80. +       if ( atomic_cmpxchg_u16((u16 *)&shared[ref].flags, flags, 0) == flags )
  81.             return 0;
  82.         cpu_relax();
  83.     }
  84. diff --git a/tools/minios/lib/lib1funcs.S b/tools/minios/lib/lib1funcs.S
  85. index 6dc0648..0d852f9 100644
  86. --- a/tools/minios/lib/lib1funcs.S
  87. +++ b/tools/minios/lib/lib1funcs.S
  88. @@ -36,6 +36,7 @@ Boston, MA 02111-1307, USA.  */
  89.  #include <linux/linkage.h>
  90.  #include <asm/assembler.h>
  91.  
  92. +#define CONFIG_AEABI
  93.  
  94.  .macro ARM_DIV_BODY dividend, divisor, result, curbit
  95.  
  96. @@ -336,12 +337,24 @@ ENTRY(__aeabi_idivmod)
  97.  
  98.  ENDPROC(__aeabi_idivmod)
  99.  
  100. +ENTRY(__aeabi_uldivmod)
  101. +
  102. +   sub sp, sp, #8
  103. +   stmfd   sp!, {sp, lr}
  104. +   bl __qdivrem
  105. +   ldr lr, [sp, #4]
  106. +   add sp, sp, #8
  107. +   ldmfd sp!, {r2, r3}
  108. +   mov pc, lr
  109. +
  110. +ENDPROC(__aeabi_uldivmod)
  111. +
  112.  #endif
  113.  
  114.  Ldiv0:
  115.  
  116.     str lr, [sp, #-8]!
  117. -   bl  __div0
  118. +/* bl  __div0 */ @ See fix on arch/arm/common/math.S:242
  119.     mov r0, #0          @ About as wrong as it could be.
  120.     ldr pc, [sp], #8
  121.  
  122. diff --git a/tools/minios/lib/math.c b/tools/minios/lib/math.c
  123. index 9a7eb18..058073f 100755
  124. --- a/tools/minios/lib/math.c
  125. +++ b/tools/minios/lib/math.c
  126. @@ -57,7 +57,7 @@
  127.  
  128.  #include <os/types.h>
  129.  
  130. -#if 0
  131. +#if 1
  132.  /*
  133.   * Depending on the desired operation, we view a `long long' (aka quad_t) in
  134.   * one or more of the following formats.
  135. diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
  136. index 0f5b4e5..625b6b7 100644
  137. --- a/xen/include/public/xen.h
  138. +++ b/xen/include/public/xen.h
  139. @@ -386,7 +386,7 @@ typedef struct vcpu_info {
  140.       * to block: this avoids wakeup-waiting races.
  141.       */
  142.      uint32_t evtchn_upcall_pending;
  143. -    //uint32_t evtchn_upcall_mask;
  144. +    uint32_t evtchn_upcall_mask;
  145.      unsigned long evtchn_pending_sel;
  146.      arch_vcpu_info_t arch;
  147.      vcpu_time_info_t time;
Advertisement
Add Comment
Please, Sign In to add comment