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

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 18 Dec 2022 17:44:23 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268321

--- Comment #2 from commit-hook@FreeBSD.org ---
A commit in branch main references this bug:

URL:
https://cgit.FreeBSD.org/ports/commit/?id=b5a6298f4d4643abb129962934fcefc4a832eb80

commit b5a6298f4d4643abb129962934fcefc4a832eb80
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2022-12-11 22:12:36 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2022-12-18 17:33:30 +0000

    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

 lang/mono/files/patch-mono_mini_mini-x86.h (new) | 11 +++++++++++
 1 file changed, 11 insertions(+)

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