diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2022-12-11 23:12:36 +0100 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2022-12-18 18:33:30 +0100 |
commit | b5a6298f4d4643abb129962934fcefc4a832eb80 (patch) | |
tree | d06a8baac6f03d937d950bd60c486564e3a2a22b /lang/mono/files/patch-mono_mini_mini-x86.h | |
parent | astro/cfitsio: fix build with clang 15 (diff) |
lang/mono: fix build with clang 15
During an exp-run for llvm 15 (see bug 265425), it turned out that
lang/mono failed to build with clang 15, on i386:
mini-runtime.c:806:24: error: incompatible pointer to integer conversion assigning to 'guint32' (aka 'unsigned int') from 'MonoLMF *' (aka 'struct MonoLMF *') [-Wint-conversion]
ext->lmf.previous_lmf = *lmf_addr;
^ ~~~~~~~~~
mini-runtime.c:808:24: error: incompatible pointer to integer conversion assigning to 'guint32' (aka 'unsigned int') from 'gpointer' (aka 'void *') [-Wint-conversion]
ext->lmf.previous_lmf = (gpointer)(((gssize)ext->lmf.previous_lmf) | 2);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As noted, this is because on i386 the previous_lmf field is declared as
guint32, while other architectures use gpointer.
Upstream changed the field to gpointer in
<https://github.com/mono/mono/pull/8308/commits/1c43a8476b5>, which got
merged into main in <https://github.com/mono/mono/commit/384c4a4e2ea>.
PR: 268321
Approved by: portmgr (tcberner)
MFH: 2022Q4
Diffstat (limited to 'lang/mono/files/patch-mono_mini_mini-x86.h')
-rw-r--r-- | lang/mono/files/patch-mono_mini_mini-x86.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lang/mono/files/patch-mono_mini_mini-x86.h b/lang/mono/files/patch-mono_mini_mini-x86.h new file mode 100644 index 000000000000..d804a58edb74 --- /dev/null +++ b/lang/mono/files/patch-mono_mini_mini-x86.h @@ -0,0 +1,11 @@ +--- mono/mini/mini-x86.h.orig 2018-08-24 15:17:13 UTC ++++ mono/mini/mini-x86.h +@@ -139,7 +139,7 @@ struct MonoLMF { + * If the second lowest bit is set to 1, then this is a MonoLMFExt structure, and + * the other fields are not valid. + */ +- guint32 previous_lmf; ++ gpointer previous_lmf; + gpointer lmf_addr; + /* Only set in trampoline LMF frames */ + MonoMethod *method; |