[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD
From: |
Pip Cet |
Subject: |
Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD |
Date: |
Thu, 18 Jul 2024 16:05:43 +0000 |
On Thursday, July 18th, 2024 at 15:08, Gerd Möllmann <gerd.moellmann@gmail.com>
wrote:
> Gerd Möllmann gerd.moellmann@gmail.com writes:
>
> > Gerd Möllmann gerd.moellmann@gmail.com writes:
> >
> > > Let's see if it continues crashing.
> >
> > It does :-(.
>
> Next idea.
>
> I wonder if __builtin_unwind_init changes things. The different
> behaviour when compiled -O0 and -O, the fact that problems happen in
> "random" places which lets me suspect indicates a basic problem, and so
> on - that would fit, when MPS doesn't see something in a register.
> Maybe.
I believe MPS relies (or used to rely) on setjmp() (or _setjmp()) to save
registers, and there was a comment in the source code about how that mechanism
might be unreliable with implementations which attempt to encrypt the jump
buffer to avoid some forms of data injection attacks. I don't know whether
macOS does that.
https://opensource.apple.com/source/libplatform/libplatform-254.80.2/src/setjmp/arm64/
appears to suggest some kind of "munging" happens, but it doesn't appear to
affect x19-x28...
Also, LLVM apparently implements __builtin_setjmp(), and I'm not sure whether
we might end up using that one. Can you run the compiler with -E to see what
the preprocessor produces?
> If somone observes similar strange phenomena like I do on macOS/arm64,
> maybe also give it a try.
>
> Let's see how long igc survives this time :-).
Fingers crossed!
Pip
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, (continued)
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Helmut Eller, 2024/07/16
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Gerd Möllmann, 2024/07/16
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Eli Zaretskii, 2024/07/16
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Pip Cet, 2024/07/16
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Gerd Möllmann, 2024/07/16
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Andrea Corallo, 2024/07/17
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Gerd Möllmann, 2024/07/17
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Gerd Möllmann, 2024/07/18
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD,
Pip Cet <=
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Gerd Möllmann, 2024/07/18
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Andrea Corallo, 2024/07/18
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Gerd Möllmann, 2024/07/18
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Gerd Möllmann, 2024/07/19
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Pip Cet, 2024/07/22
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Gerd Möllmann, 2024/07/22
- Re: MPS: assertion failed: header_type (h) != IGC_OBJ_FWD, Paul Eggert, 2024/07/16