commit: ffde87904058de783332dbb129ec94578ca399d2 Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Sun Nov 24 08:17:39 2024 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Sun Nov 24 10:53:26 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ffde8790
x11-drivers/nvidia-drivers: pass -std=gnu17 for gcc15 for now Seems to be quite a few issues and may not be trivial to fix, upstream already has some sanity checks to pickup that conftests failed and it should be fixed properly in time. Using KERNEL_CC to ensure it's used everywhere for modules, esp. conftest.sh. Non-modules parts seems fine with c23. For 390/470, just add it to the list of other permanent (ugly) workarounds and update's 470 comment given it's no longer supported. Due for removal from the tree in roughly 2 years or less and so just need to hold on until then. Closes: https://bugs.gentoo.org/944092 Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild | 13 +++++++------ .../nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild | 15 +++++++-------- .../nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild | 6 ++++++ .../nvidia-drivers/nvidia-drivers-550.127.05-r1.ebuild | 6 ++++++ x11-drivers/nvidia-drivers/nvidia-drivers-550.135.ebuild | 6 ++++++ .../nvidia-drivers/nvidia-drivers-550.40.80.ebuild | 6 ++++++ .../nvidia-drivers/nvidia-drivers-565.57.01-r3.ebuild | 6 ++++++ 7 files changed, 44 insertions(+), 14 deletions(-) diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild index 2c3ff9a01c0d..ef1d957c063a 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild @@ -151,15 +151,16 @@ src_compile() { tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch - # latest branches has proper fixes, but legacy have more issues and are - # not worth the trouble, so doing the lame "fix" for gcc14 (bug #921370) - local noerr=( + # dead branch that will never be fixed and due for eventual removal, + # so keeping lazy "fixes" (bug #921370) + local kcflags=( + -std=gnu17 -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types ) # not *FLAGS to ensure it's used everywhere including conftest.sh - CC+=" $(test-flags-CC "${noerr[@]}")" - use modules && KERNEL_CC+=" $(CC=${KERNEL_CC} test-flags-CC "${noerr[@]}")" + CC+=" $(test-flags-CC "${kcflags[@]}")" + use modules && KERNEL_CC+=" $(CC=${KERNEL_CC} test-flags-CC "${kcflags[@]}")" NV_ARGS=( PREFIX="${EPREFIX}"/usr @@ -172,7 +173,7 @@ src_compile() { local modlist=( nvidia{,-drm,-modeset}=video:kernel ) use x86 || modlist+=( nvidia-uvm=video:kernel ) local modargs=( - CC="${KERNEL_CC}" # for the above gcc14 workarounds + CC="${KERNEL_CC}" # for the above kcflags workarounds IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" ) diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild index 72ca42915a62..54648a15bfe3 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild @@ -137,17 +137,16 @@ src_compile() { tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch - # latest branches has proper fixes, but legacy have more issues and are - # not worth the trouble, so doing the lame "fix" for gcc14 (bug #921370) - # TODO: check if still needed on bumps given this branch is supported, - # and reminder to cleanup the CC="${KERNEL_CC}" in modargs if removing - local noerr=( + # dead branch that will never be fixed and due for eventual removal, + # so keeping lazy "fixes" (bug #921370) + local kcflags=( + -std=gnu17 -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types ) # not *FLAGS to ensure it's used everywhere including conftest.sh - CC+=" $(test-flags-CC "${noerr[@]}")" - use modules && KERNEL_CC+=" $(CC=${KERNEL_CC} test-flags-CC "${noerr[@]}")" + CC+=" $(test-flags-CC "${kcflags[@]}")" + use modules && KERNEL_CC+=" $(CC=${KERNEL_CC} test-flags-CC "${kcflags[@]}")" local xnvflags=-fPIC #840389 # lto static libraries tend to cause problems without fat objects @@ -164,7 +163,7 @@ src_compile() { local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=video:kernel ) local modargs=( - CC="${KERNEL_CC}" # for the above gcc14 workarounds + CC="${KERNEL_CC}" # for the above kcflags workarounds IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" ) diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild index 6d4b7816cd0b..d8723f5691d5 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild @@ -199,6 +199,11 @@ src_compile() { if use modules; then local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + # conftest.sh is broken with c23 due to func() changing meaning, + # and then fails later due to ealier misdetections + # TODO: try without now and then + drop modargs' CC= (bug #944092) + KERNEL_CC+=" -std=gnu17" + local modlistargs=video:kernel if use kernel-open; then modlistargs+=-module-source:kernel-module-source/kernel-open @@ -212,6 +217,7 @@ src_compile() { local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) local modargs=( + CC="${KERNEL_CC}" # needed for above gnu17 workaround IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" ) diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.127.05-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.127.05-r1.ebuild index 16b0f7c9bd86..a64a855cd597 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.127.05-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.127.05-r1.ebuild @@ -192,6 +192,11 @@ src_compile() { if use modules; then local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + # conftest.sh is broken with c23 due to func() changing meaning, + # and then fails later due to ealier misdetections + # TODO: try without now and then + drop modargs' CC= (bug #944092) + KERNEL_CC+=" -std=gnu17" + local modlistargs=video:kernel if use kernel-open; then modlistargs+=-module-source:kernel-module-source/kernel-open @@ -205,6 +210,7 @@ src_compile() { local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) local modargs=( + CC="${KERNEL_CC}" # needed for above gnu17 workaround IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" ) diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.135.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.135.ebuild index e0b2132a4374..89209125741d 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.135.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.135.ebuild @@ -191,6 +191,11 @@ src_compile() { if use modules; then local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + # conftest.sh is broken with c23 due to func() changing meaning, + # and then fails later due to ealier misdetections + # TODO: try without now and then + drop modargs' CC= (bug #944092) + KERNEL_CC+=" -std=gnu17" + local modlistargs=video:kernel if use kernel-open; then modlistargs+=-module-source:kernel-module-source/kernel-open @@ -204,6 +209,7 @@ src_compile() { local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) local modargs=( + CC="${KERNEL_CC}" # needed for above gnu17 workaround IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.80.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.80.ebuild index 754f67dcfc07..ce5908bef544 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.80.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.80.ebuild @@ -193,6 +193,11 @@ src_compile() { if use modules; then local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + # conftest.sh is broken with c23 due to func() changing meaning, + # and then fails later due to ealier misdetections + # TODO: try without now and then + drop modargs' CC= (bug #944092) + KERNEL_CC+=" -std=gnu17" + local modlistargs=video:kernel if use kernel-open; then modlistargs+=-module-source:kernel-module-source/kernel-open @@ -206,6 +211,7 @@ src_compile() { local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) local modargs=( + CC="${KERNEL_CC}" # needed for above gnu17 workaround IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" ) diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-565.57.01-r3.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-565.57.01-r3.ebuild index 14c7ce103198..5d4c42112da0 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-565.57.01-r3.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-565.57.01-r3.ebuild @@ -196,6 +196,11 @@ src_compile() { if use modules; then local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + # conftest.sh is broken with c23 due to func() changing meaning, + # and then fails later due to ealier misdetections + # TODO: try without now and then + drop modargs' CC= (bug #944092) + KERNEL_CC+=" -std=gnu17" + local modlistargs=video:kernel if use kernel-open; then modlistargs+=-module-source:kernel-module-source/kernel-open @@ -211,6 +216,7 @@ src_compile() { local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) local modargs=( + CC="${KERNEL_CC}" # needed for above gnu17 workaround IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" )
