SHA256
1
0
forked from pool/libglvnd

Accepting request 1007419 from home:dirkmueller:Factory

- update to 1.5.0:
  * Add BTI landing pads for aarch64
  * Set current thread state to NULL in teardown 
  * Moving setspecific to before DestroyThreadState
  * Fix a memory leak in libGLdispatch 
  * Use assembly stubs on armv6
- drop libglvnd-add-bti.patch (upstream)

OBS-URL: https://build.opensuse.org/request/show/1007419
OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/libglvnd?expand=0&rev=65
This commit is contained in:
Stefan Dirsch 2022-10-02 09:45:15 +00:00 committed by Git OBS Bridge
parent c0e8d2f391
commit e44363041d
5 changed files with 16 additions and 53 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1eb5c2be8d213ad5d31cfb4efbb331d42f3d9f5617c885ce7e89f572ec2bb4b8
size 838573

3
libglvnd-1.5.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:abdf8229c86358f651e35bdc7cfced0fdf67d0a2acdf9197d08a9732ef7b53bc
size 840868

View File

@ -1,44 +0,0 @@
From 7107f739398cd96600b039fd748cb1c4822bb400 Mon Sep 17 00:00:00 2001
From: Guillaume Gardet <guillaume.gardet@arm.com>
Date: Fri, 21 Jan 2022 09:26:07 +0100
Subject: [PATCH] Add BTI landing pads for aarch64
When Branch Target Identifier (BTI) is enabled on aarch64,
any software which run libglvnd will fail with SIGILL, Illegal instruction.
This is because some assembler code misses the BTI landing pads.
See: https://developer.arm.com/documentation/102433/0100/Jump-oriented-programming
"hint #34" is the same thing as "BTI C" landing pad, but keep
compatibility with systems without BTI enabled.
---
src/GLX/glvnd_genentry.c | 1 +
src/GLdispatch/vnd-glapi/entry_aarch64_tsd.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/GLX/glvnd_genentry.c b/src/GLX/glvnd_genentry.c
index 7bbe811..b82aa14 100644
--- a/src/GLX/glvnd_genentry.c
+++ b/src/GLX/glvnd_genentry.c
@@ -90,6 +90,7 @@ extern char glx_entrypoint_end[];
#define STUB_SIZE 16
#define STUB_ASM_ARCH(slot) \
+ "hint #34\n" \
"adrp x16, entrypointFunctions + " slot "*8\n" \
"ldr x16, [x16, #:lo12:(entrypointFunctions + " slot "*8)]\n" \
"br x16\n"
diff --git a/src/GLdispatch/vnd-glapi/entry_aarch64_tsd.c b/src/GLdispatch/vnd-glapi/entry_aarch64_tsd.c
index ae80131..a4652e0 100644
--- a/src/GLdispatch/vnd-glapi/entry_aarch64_tsd.c
+++ b/src/GLdispatch/vnd-glapi/entry_aarch64_tsd.c
@@ -69,6 +69,7 @@
* table then does a branch without link to the function address.
*/
#define STUB_ASM_CODE(slot) \
+ "hint #34\n\t" \
"stp x1, x0, [sp, #-16]!\n\t" \
"adrp x0, :got:_glapi_Current\n\t" \
"ldr x0, [x0, #:got_lo12:_glapi_Current]\n\t" \
--
2.35.1

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Sat Oct 1 11:15:04 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 1.5.0:
* Add BTI landing pads for aarch64
* Set current thread state to NULL in teardown
* Moving setspecific to before DestroyThreadState
* Fix a memory leak in libGLdispatch
* Use assembly stubs on armv6
- drop libglvnd-add-bti.patch (upstream)
-------------------------------------------------------------------
Thu Jul 14 12:09:50 UTC 2022 - Stefan Dirsch <sndirsch@suse.com>

View File

@ -19,7 +19,7 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: libglvnd
Version: 1.4.0
Version: 1.5.0
Release: 0
Summary: The GL Vendor-Neutral Dispatch library
License: MIT
@ -29,8 +29,6 @@ Source: https://github.com/NVIDIA/libglvnd/archive/v%{version}.tar.gz#/%
Source1: baselibs.conf
Source2: libglvnd.rpmlintrc
Patch1: disable-glx-tests.patch
# PATCH-FIX-UPSTREAM - https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/262
Patch2: libglvnd-add-bti.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
@ -65,9 +63,7 @@ OpenGL ABI proposal. This package contains the required files for
development.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%autosetup -p1
# fix env shebang to call py3 directly
sed -i -e "1s|#!.*|#!%{_bindir}/python3|" src/generate/*.py