Subject: bug#49509: libsigsegv fails to build on emulated aarch64 [core-updates]

From: Efraim Flashner <[email-masked]>
Date: Thu, 30 Sep 2021 11:37:36 +0300

On Wed, Sep 29, 2021 at 07:40:20PM -0700, Sarah Morgensen wrote:
> Hi all,
> 
> Ludovic Courtès <[email-masked]> writes:
> 
> > Hello,
> >
> > Maxime Devos <[email-masked]> skribis:
> >
> >> Ludovic Courtès schreef op zo 11-07-2021 om 00:19 [+0200]:
> >>> Hi,
> >>> 
> >>> Maxime Devos <[email-masked]> skribis:
> >>> 
> >>> > FAIL: stackoverflow1
> >>> > ====================
> >>> > 
> >>> > qemu: uncaught target signal 11 (Segmentation fault) - core dumped
> >>> > FAIL stackoverflow1 (exit status: 139)
> >>> > 
> >>> > FAIL: stackoverflow2
> >>> > ====================
> >>> > 
> >>> > Starting recursion pass 1.
> >>> > Stack overflow 1 missed.
> >>> > FAIL stackoverflow2 (exit status: 1)
> >>> 
> >>> For now I worked around it by offloading this to a “real” machine
> >>> (overdrive1), where it builds fine.  I wonder if there’s much we can do
> >>> regarding QEMU’s behavior here.
> >>
> >> Maybe detect if QEMU is used, and if so, don't run the test suite?
> >> Not really a ‘clean’ solution though, w.r.t. reproducibility,
> >> and I wouldn't know how to detect this.
> >
> > Yeah, I’d rather avoid that.
> >
> >> If this is a bug in QEMU, then ideally that would be fixed in QEMU,
> >> but I wouldn't know where to look.
> >
> > It could be that someone else on the intertubes stumbled upon that
> > issue, that’d be great.  It could be that libsigsegv plays tricks that
> > don’t fare well with QEMU’s expectations, as in
> > <https://bugzilla.redhat.com/show_bug.cgi?id=1493304#c5>.  We should ask
> > on [email-masked].
> >
> > Thanks,
> > Ludo’.
> 
> (I just realized I never actually replied to this!)
> 
> Configuring with "--disable-stackvma" seems to fix this.  Doing this
> makes libsigsegv use a different heuristic for determining if a SIGSEGV
> was a stack overflow.  I don't think it should impact functionality.
> Perhaps just apply that to aarch64 until there's a proper fix?
> 
> This is probably a QEMU bug... I will try to report this to upstream
> QEMU when I can, as I can't find my notes on this right now.
> 

I came across this on x86_64 when using our qemu-binfmt service when
building for powerpc-linux too, and I'm pretty sure powerpc64le-linux
and armhf-linux also. I haven't tried going the other direction, from
aarch64-linux and emulating x86_64/i686 to see if it happens there too.

-- 
Efraim Flashner   <[email-masked]>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted