[Bug 268321] lang/mono: fix build with clang 15 (on i386)

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 11 Dec 2022 22:46:39 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268321

            Bug ID: 268321
           Summary: lang/mono: fix build with clang 15 (on i386)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: mono@FreeBSD.org
          Reporter: dim@FreeBSD.org
             Flags: maintainer-feedback?(mono@FreeBSD.org)
          Assignee: mono@FreeBSD.org

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

-- 
You are receiving this mail because:
You are the assignee for the bug.