Add GCC14 fixup patches for older branches

It shouldn't break anything on current but it also shouldn't be necessary, so disable by default

Fix for https://github.com/Frogging-Family/nvidia-all/issues/236
pull/241/head
Tk-Glitch 4 weeks ago
parent 6a6563cb60
commit dae9454b8c

@ -331,6 +331,8 @@ source=($_source_name
'60-nvidia.rules'
'nvidia-tkg.hook'
'nvidia-open-gcc-ibt-sls.diff'
'gcc-14-470.diff'
'gcc-14.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+)
@ -383,6 +385,8 @@ md5sums=("$_md5sum"
'd868c671fd7a542722a1889f5d38441d'
'596f7cbf2db48d4f5b1c38967bb93cea'
'9b1543768ea75320fd0d2315de66d1c8'
'afb98b1dab0c61df526d4c0ee4d18abf'
'e5d1574892eb68de9af1b79a6bfb5e7b'
'7a825f41ada7e106c8c0b713a49b3bfa'
'd961d1dce403c15743eecfe3201e4b6a'
'14460615a9d4e247c8d9bcae8776ed48'
@ -482,6 +486,11 @@ prepare() {
PATH=${CUSTOM_GCC_PATH}/bin:${CUSTOM_GCC_PATH}/lib:${CUSTOM_GCC_PATH}/include:${PATH}
fi
if [ "$_gcc14_fix" = "true" ] && [[ "$(gcc -dumpversion)" = 14* ]]; then
_gcc14="true"
msg2 "GCC 14 detected"
fi
# Extract
msg2 "Self-Extracting $_pkg.run..."
sh "$_pkg".run -x
@ -883,6 +892,17 @@ DEST_MODULE_LOCATION[3]="/kernel/drivers/video"' dkms.conf
_whitelist68=(525*)
fi
if [ "$_gcc14" = "true" ]; then
cd "$srcdir"/"$_pkg"/kernel-$_kernel
msg2 "Applying gcc-14 patch..."
if [[ $pkgver = 470* ]]; then
patch -Np2 -i "$srcdir"/gcc-14-470.diff
else
patch -Np2 -i "$srcdir"/gcc-14.diff
fi
cd ..
fi
# Loop patches (linux-4.15.patch, lol.patch, ...)
for _p in $(printf -- '%s\n' ${source[@]} | grep .patch); do # https://stackoverflow.com/a/21058239/1821548
# Patch version (4.15, "", ...)
@ -1419,6 +1439,15 @@ DEST_MODULE_LOCATION[3]="/kernel/drivers/video"' dkms.conf
fi
fi
if [ "$_gcc14" = "true" ]; then
msg2 "Applying gcc-14 patch..."
if [[ $pkgver = 470* ]]; then
patch -Np1 -i "$srcdir"/gcc-14-470.diff
else
patch -Np1 -i "$srcdir"/gcc-14.diff
fi
fi
# Legacy quirks
if [ "$_oldstuff" = "1" ]; then
msg2 "Applying 01-ipmi-vm.diff for dkms..."

@ -54,6 +54,9 @@ _dkms=""
## LEGACY OPTIONS
# Enable GCC 14 fixup patch - Allows older branches to build on GCC14
_gcc14_fix="false"
# Attempt at fixing PRIME sync on kernel 5.4 and 5.5rc - https://devtalk.nvidia.com/default/topic/1068045/linux/5-4-kernel-breaks-prime-synchronization-/post/5416631/#5416631
_54_prime_fixing_attempt="false"

@ -0,0 +1,13 @@
diff --git a/kernel-dkms/conftest.sh b/kernel-dkms/conftest.sh
--- a/kernel-dkms/conftest.sh
+++ b/kernel-dkms/conftest.sh
@@ -100,7 +100,8 @@ test_headers() {
build_cflags() {
BASE_CFLAGS="-O2 -D__KERNEL__ \
-DKBUILD_BASENAME=\"#conftest$$\" -DKBUILD_MODNAME=\"#conftest$$\" \
--nostdinc -isystem $ISYSTEM"
+-nostdinc -isystem $ISYSTEM \
+-Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-incompatible-pointer-types"
if [ "$OUTPUT" != "$SOURCES" ]; then
OUTPUT_CFLAGS="-I$OUTPUT/include2 -I$OUTPUT/include"

@ -0,0 +1,12 @@
diff --git a/kernel-dkms/conftest.sh b/kernel-dkms/conftest.sh
--- a/kernel-dkms/conftest.sh
+++ b/kernel-dkms/conftest.sh
@@ -100,7 +100,7 @@ test_headers() {
BASE_CFLAGS="-O2 -D__KERNEL__ \
-DKBUILD_BASENAME=\"#conftest$$\" -DKBUILD_MODNAME=\"#conftest$$\" \
-nostdinc -isystem $ISYSTEM \
--Wno-implicit-function-declaration -Wno-strict-prototypes"
+-Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-incompatible-pointer-types"
if [ "$OUTPUT" != "$SOURCES" ]; then
OUTPUT_CFLAGS="-I$OUTPUT/include2 -I$OUTPUT/include"
Loading…
Cancel
Save