Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 07 May 2022 15:42:52 +0000
From:      bugzilla-noreply@freebsd.org
To:        x11@FreeBSD.org
Subject:   maintainer-feedback requested: [Bug 263845] graphics/libglvnd: crashes on armv7 with SIGILL
Message-ID:  <bug-263845-7141-KkZVlZXvU5@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-263845-7141@https.bugs.freebsd.org/bugzilla/>
References:  <bug-263845-7141@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-x11 (Nobody)
<x11@FreeBSD.org> for maintainer-feedback:
Bug 263845: graphics/libglvnd: crashes on armv7 with SIGILL
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D263845



--- Description ---
The following simple program crashes with SIGILL when compiled on armv7 Fre=
eBSD
13:

#include <GL/gl.h>
int main()
{
	glGetError();
}

I am compiling with "cc -I/usr/local/lib -L/usr/local/include test.c -lGL. =
 My
package version is libglvnd 1.4.0_1 and I've tested this both on native arm=
v7
and in an armv7 jail running on arm64.

The behaviour is extremely strange.  I am aware that glvnd does some sort of
dispatch logic to get to the platform's native driver, but this does not ma=
tch
what I see.

When I try to debug this code, it seems that it is somehow iterating through
the entirety of the the libGL API, only to then crash after having gone thr=
ough
glWriteMaskEXT.  I do not understand what the purpose of this is and it does
not seem to match any code I found in the library.

Digging further into this, it seems that the library is compiled in ARM mod=
e,
but executed in Thumb mode for some reason (wtf).  I suspect this might be
because the source file src/GLdispatch/vnd-glapi/entry_armv7_tsd.c uses
".thumb_func" to label the stub entry points, but then they don't get compi=
led
in thumb mode for some reason.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-263845-7141-KkZVlZXvU5>