1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00
freebsd-ports/lang/mono/files/patch-mono_mini_mini-x86.h
Dimitry Andric b5a6298f4d 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
2022-12-18 18:33:30 +01:00

12 lines
386 B
C

--- 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;