]> git.pld-linux.org Git - packages/mono.git/blob - mono-x32.patch
- do not generate requires if not generating provides
[packages/mono.git] / mono-x32.patch
1 diff -ur mono-3.12.0/libgc/include/private/gc_locks.h mono-3.12.0-x32/libgc/include/private/gc_locks.h
2 --- mono-3.12.0/libgc/include/private/gc_locks.h        2014-10-30 23:11:01.000000000 +0100
3 +++ mono-3.12.0-x32/libgc/include/private/gc_locks.h    2015-03-13 19:53:30.391221738 +0100
4 @@ -437,7 +437,7 @@
5                                                        GC_word new_val) 
6           {
7            char result;
8 -          __asm__ __volatile__("lock; cmpxchgq %2, %0; setz %1"
9 +          __asm__ __volatile__("lock; cmpxchg %2, %0; setz %1"
10                 : "+m"(*(addr)), "=r"(result)
11                 : "r" (new_val), "a"(old) : "memory");
12            return (GC_bool) result;
13 diff -ur mono-3.12.0/mono/mini/mini-codegen.c mono-3.12.0-x32-2/mono/mini/mini-codegen.c
14 --- mono-3.12.0/mono/mini/mini-codegen.c        2015-01-12 18:15:08.000000000 +0100
15 +++ mono-3.12.0-x32-2/mono/mini/mini-codegen.c  2015-03-13 20:24:21.044619503 +0100
16 @@ -164,7 +164,7 @@
17  {
18         regmask_t mask = allow & rs->ifree_mask;
19  
20 -#if defined(__x86_64__) && defined(__GNUC__)
21 +#if defined(__x86_64__) && defined(__GNUC__) && !defined(__ILP32__)
22   {
23         guint64 i;
24  
25 diff -ur mono-3.12.0/mono/mini/regalloc.h mono-3.12.0-x32-2/mono/mini/regalloc.h
26 --- mono-3.12.0/mono/mini/regalloc.h    2014-10-30 23:11:02.000000000 +0100
27 +++ mono-3.12.0-x32-2/mono/mini/regalloc.h      2015-03-13 20:23:14.031283837 +0100
28 @@ -1,4 +1,4 @@
29 -#if defined(__native_client__) && defined(__x86_64__)
30 +#if defined(__native_client__) && defined(__x86_64__) && !defined(__ILP32__)
31  typedef guint64 regmask_t;
32  #else
33  typedef size_t regmask_t;
34 --- mono-3.12.1/mono/utils/monobitset.c.orig    2015-03-14 08:21:15.042164662 +0100
35 +++ mono-3.12.1/mono/utils/monobitset.c 2015-03-14 08:21:19.602164473 +0100
36 @@ -280,8 +280,11 @@ my_g_bit_nth_lsf (gsize mask, gint nth_b
37  #if defined(__native_client__) && (defined(__i386__) || defined(__x86_64))
38  #define USE_X86_32BIT_INSTRUCTIONS 1
39  #endif
40 +#if defined(__x86_64) && defined(__ILP32__)
41 +#define ARCH_x32
42 +#endif
43  
44 -#if (defined(__i386__) && defined(__GNUC__)) || defined(USE_X86_32BIT_INSTRUCTIONS)
45 +#if (defined(__i386__) && defined(__GNUC__)) || defined(USE_X86_32BIT_INSTRUCTIONS) || defined(ARCH_x32)
46   {
47          int r;
48          /* This depends on mask != 0 */
49 @@ -311,7 +314,7 @@ static inline gint
50  my_g_bit_nth_lsf_nomask (gsize mask)
51  {
52         /* Mask is expected to be != 0 */
53 -#if (defined(__i386__) && defined(__GNUC__)) || defined(USE_X86_32BIT_INSTRUCTIONS)
54 +#if (defined(__i386__) && defined(__GNUC__)) || defined(USE_X86_32BIT_INSTRUCTIONS) || defined(ARCH_x32)
55         int r;
56  
57         __asm__("bsfl %1,%0\n\t"
58 --- mono-3.12.1/mono/profiler/proflog.c.orig    2015-03-06 18:26:50.000000000 +0100
59 +++ mono-3.12.1/mono/profiler/proflog.c 2015-03-14 08:45:51.238769378 +0100
60 @@ -1783,8 +1783,14 @@ perf_event_syscall (struct perf_event_at
61  {
62         attr->size = PERF_ATTR_SIZE_VER0;
63         //printf ("perf attr size: %d\n", attr->size);
64 +#if defined(__NR_perf_event_open)
65 +       return syscall(__NR_perf_event_open, attr, pid, cpu, group_fd, flags);
66  #if defined(__x86_64__)
67 +#  if defined(__ILP32__)
68 +       return syscall(/*__NR_perf_event_open*/ 0x40000000+298, attr, pid, cpu, group_fd, flags);
69 +#  else
70         return syscall(/*__NR_perf_event_open*/ 298, attr, pid, cpu, group_fd, flags);
71 +#  endif
72  #elif defined(__i386__)
73         return syscall(/*__NR_perf_event_open*/ 336, attr, pid, cpu, group_fd, flags);
74  #elif defined(__arm__)
75 ========
76 TODO:
77 mono/metadata/mono-config.c (CPU config)
78 mono/utils/mono-compiler.h (MONO_THREAD_VAR_OFFSET - needs x32 ABI knowledge)
79 mono/utils/mono-context.g (MONO_CONTEXT_*)
80 mono/utils/valgrind.h
81 mono/mini/*-x86.* vs mono/mini/*-amd64.* ???
82 mono/arch/x86 vs mono/arch/amd64 ???
This page took 0.191304 seconds and 3 git commands to generate.