Skip to content

Commit e59efe4

Browse files
committed
mono: Backport 3 patches from main to 6.14.1
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
1 parent 4a48a03 commit e59efe4

File tree

5 files changed

+110
-0
lines changed

5 files changed

+110
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
From ef69fc24043f4776f3d8e884898e1281c41b10fb Mon Sep 17 00:00:00 2001
2+
From: Esme Povirk <esme@codeweavers.com>
3+
Date: Sat, 12 Apr 2025 20:30:41 +0000
4+
Subject: [PATCH 1/3] arm64: Remove an unused function.
5+
6+
Upstream-Status: Backport
7+
---
8+
mono/mini/mini-arm64.c | 14 --------------
9+
1 file changed, 14 deletions(-)
10+
11+
diff --git a/mono/mini/mini-arm64.c b/mono/mini/mini-arm64.c
12+
index cc6401d3514..9b32f424199 100644
13+
--- a/mono/mini/mini-arm64.c
14+
+++ b/mono/mini/mini-arm64.c
15+
@@ -485,20 +485,6 @@ emit_cmpw_imm (guint8 *code, int sreg, int imm)
16+
return code;
17+
}
18+
19+
-static __attribute__ ((__warn_unused_result__)) guint8*
20+
-emit_cmpx_imm (guint8 *code, int sreg, int imm)
21+
-{
22+
- if (imm == 0) {
23+
- arm_cmpx (code, sreg, ARMREG_RZR);
24+
- } else {
25+
- // FIXME:
26+
- code = emit_imm (code, ARMREG_LR, imm);
27+
- arm_cmpx (code, sreg, ARMREG_LR);
28+
- }
29+
-
30+
- return code;
31+
-}
32+
-
33+
static __attribute__ ((__warn_unused_result__)) guint8*
34+
emit_strb (guint8 *code, int rt, int rn, int imm)
35+
{
36+
--
37+
2.51.0
38+
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
From 637c318471f7fef325ac2f1858edcf66df3b81e0 Mon Sep 17 00:00:00 2001
2+
From: Esme Povirk <esme@codeweavers.com>
3+
Date: Sat, 12 Apr 2025 20:31:05 +0000
4+
Subject: [PATCH 2/3] arm64: Fix an invalid stack read.
5+
6+
Upstream-Status: Backport
7+
---
8+
mono/mini/mini-arm64.c | 12 +++++++++---
9+
1 file changed, 9 insertions(+), 3 deletions(-)
10+
11+
diff --git a/mono/mini/mini-arm64.c b/mono/mini/mini-arm64.c
12+
index 9b32f424199..aba6ca3a41e 100644
13+
--- a/mono/mini/mini-arm64.c
14+
+++ b/mono/mini/mini-arm64.c
15+
@@ -1737,9 +1737,15 @@ mono_arch_dyn_call_get_buf_size (MonoDynCallInfo *info)
16+
static double
17+
bitcast_r4_to_r8 (float f)
18+
{
19+
- float *p = &f;
20+
-
21+
- return *(double*)p;
22+
+ union {
23+
+ float f;
24+
+ double d;
25+
+ guint64 i;
26+
+ } u;
27+
+ u.i = 0;
28+
+ u.f = f;
29+
+
30+
+ return u.d;
31+
}
32+
33+
static float
34+
--
35+
2.51.0
36+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
From 2224c6915a98f870cc9a3a9f9e3698e7b20e3d27 Mon Sep 17 00:00:00 2001
2+
From: Esme Povirk <esme@codeweavers.com>
3+
Date: Sat, 12 Apr 2025 20:31:54 +0000
4+
Subject: [PATCH 3/3] arm64: Fix a pointer-to-int cast size mismatch.
5+
6+
Upstream-Status: Backport
7+
---
8+
mono/utils/mono-sigcontext.h | 6 ++++++
9+
1 file changed, 6 insertions(+)
10+
11+
diff --git a/mono/utils/mono-sigcontext.h b/mono/utils/mono-sigcontext.h
12+
index 2153c1cad57..6426f44b7c7 100644
13+
--- a/mono/utils/mono-sigcontext.h
14+
+++ b/mono/utils/mono-sigcontext.h
15+
@@ -492,6 +492,12 @@ typedef struct ucontext {
16+
#define UCONTEXT_REG_SP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.sp)
17+
#define UCONTEXT_REG_R0(ctx) (((ucontext_t*)(ctx))->uc_mcontext.regs [ARMREG_R0])
18+
#define UCONTEXT_GREGS(ctx) (&(((ucontext_t*)(ctx))->uc_mcontext.regs))
19+
+ #define UCONTEXT_REG_SET_PC(ctx, val) do { \
20+
+ UCONTEXT_REG_PC (ctx) = (gsize)(val); \
21+
+ } while (0)
22+
+ #define UCONTEXT_REG_SET_SP(ctx, val) do { \
23+
+ UCONTEXT_REG_SP (ctx) = (val); \
24+
+ } while (0)
25+
#endif
26+
27+
#ifndef UCONTEXT_REG_SET_PC
28+
--
29+
2.51.0
30+

recipes-mono/mono/mono-native_6.14.1.bb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ SRC_URI = "https://dl.winehq.org/mono/sources/mono/mono-6.14.1.tar.xz \
77
file://0001-patch-XplatUIX11-cursor.diff \
88
file://shm_open-test-crosscompile.diff \
99
file://0001-Allow-passing-external-mapfile-C-build-options.patch \
10+
file://0001-arm64-Remove-an-unused-function.patch \
11+
file://0002-arm64-Fix-an-invalid-stack-read.patch \
12+
file://0003-arm64-Fix-a-pointer-to-int-cast-size-mismatch.patch
1013
"
1114

1215
addtask fixup_config after do_patch before do_configure

recipes-mono/mono/mono_6.14.1.bb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ SRC_URI = "https://dl.winehq.org/mono/sources/mono/mono-6.14.1.tar.xz \
99
file://shm_open-test-crosscompile.diff \
1010
file://0001-Allow-passing-external-mapfile-C-build-options.patch \
1111
file://0001-Add-libusb-1.0-mapping.patch \
12+
file://0001-arm64-Remove-an-unused-function.patch \
13+
file://0002-arm64-Fix-an-invalid-stack-read.patch \
14+
file://0003-arm64-Fix-a-pointer-to-int-cast-size-mismatch.patch
1215
"
1316

1417

0 commit comments

Comments
 (0)