This only affects the open driver. The proprietary driver is still affected, and you'll want to pass `ibt=off` as kernel boot parameter to be able to boot.

See https://github.com/NVIDIA/open-gpu-kernel-modules/issues/256
pull/119/head
Tk-Glitch 2 years ago
parent 9a21d3369c
commit 90e0b9e0b6

@ -273,7 +273,7 @@ fi
pkgname=("${_pkgname_array[@]}")
pkgver=$_driver_version
pkgrel=209
pkgrel=210
arch=('x86_64')
url="http://www.nvidia.com/"
license=('custom:NVIDIA')
@ -301,6 +301,7 @@ source=($_source_name
'nvidia-utils-tkg.sysusers'
'60-nvidia.rules'
'nvidia-tkg.hook'
'nvidia-open-gcc-ibt-sls.diff'
'linux-version.diff' # include linux version
'01-ipmi-vm.diff' # ipmi & vm patch for older than 415.22 releases (2018.12.7) (396.xx)
'02-ipmi-vm.diff' # ipmi & vm patch for older than 415.22 releases (2018.12.7) (addon for 410+)
@ -341,6 +342,7 @@ md5sums=("$_md5sum"
'3d2894e71d81570bd00bce416d3e547d'
'3d32130235acc5ab514e1021f7f5c439'
'651328cb5a86f5bb44a4ebc30290e925'
'9b1543768ea75320fd0d2315de66d1c8'
'7a825f41ada7e106c8c0b713a49b3bfa'
'd961d1dce403c15743eecfe3201e4b6a'
'14460615a9d4e247c8d9bcae8776ed48'
@ -431,6 +433,10 @@ prepare() {
if [ "$_open_source_modules" = "true" ]; then
cd open-gpu-kernel-modules-${pkgver}
# Fix for https://bugs.archlinux.org/task/74886
patch -Np1 --no-backup-if-mismatch -i "$srcdir"/nvidia-open-gcc-ibt-sls.diff
# Attempt to make this reproducible
sed -i "s/^HOSTNAME.*/HOSTNAME = echo archlinux"/ utils.mk
sed -i "s/^WHOAMI.*/WHOAMI = echo archlinux-builder"/ utils.mk

@ -0,0 +1,28 @@
diff --git a/src/nvidia-modeset/Makefile b/src/nvidia-modeset/Makefile
index c63b86b..a67d2fc 100644
--- a/src/nvidia-modeset/Makefile
+++ b/src/nvidia-modeset/Makefile
@@ -95,7 +95,8 @@ CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
CFLAGS += -ffreestanding
-CONDITIONAL_CFLAGS := $(call TEST_CC_ARG, -fcf-protection=none)
+CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -fcf-protection=branch)
+CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -mharden-sls=all)
CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -Wformat-overflow=2)
CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -Wformat-truncation=1)
ifeq ($(TARGET_ARCH),x86_64)
diff --git a/src/nvidia/Makefile b/src/nvidia/Makefile
index 9bdb826..3f1e330 100644
--- a/src/nvidia/Makefile
+++ b/src/nvidia/Makefile
@@ -119,7 +119,8 @@ CFLAGS += -fdata-sections
NV_KERNEL_O_LDFLAGS += --gc-sections
EXPORTS_LINK_COMMAND = exports_link_command.txt
-CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -fcf-protection=none)
+CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -fcf-protection=branch -mindirect-branch-register)
+CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -mharden-sls=all)
ifeq ($(TARGET_ARCH),x86_64)
CONDITIONAL_CFLAGS += $(call TEST_CC_ARG, -mindirect-branch-register)
Loading…
Cancel
Save