[Bug 263845] graphics/libglvnd: Library compiled in ARM mode, but executes in Thumb mode, crashing programs on FreeBSD 13 armv7 with SIGILL

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 03 Jun 2022 13:24:45 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263845

Robert Clausecker <fuz@fuz.su> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #234353|maintainer-approval?(x11@Fr |
              Flags|eeBSD.org)                  |
 Attachment #234353|0                           |1
        is obsolete|                            |
 Attachment #234421|                            |maintainer-approval?
              Flags|                            |

--- Comment #7 from Robert Clausecker <fuz@fuz.su> ---
Created attachment 234421
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=234421&action=edit
graphics/libglvnd: fix on armv6/armv7

The .thumb_func directive does not switch to thumb mode in clang's
integrated assembler.  This causes the code to be miscompiled in that
it is generated as ARM code but the symbols are tagged as thumb.  The
resulting library is unusable.  Every call into it crashes.

Fix this issue by applying an upstream patch set to have the entry
stubs be in ARM mode instead of Thumb mode.

See also:      
https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/267
See also:       https://gitlab.freedesktop.org/glvnd/libglvnd/-/issues/232
PR:             263845

Tested with Poudriere on armv7 arm64 FreeBSD 13.
Portlint likes the port.

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