commit:     1093d6cf18080fded4f22ca5aa04c869fff1c4e7
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 11 18:41:59 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sun Dec 11 19:11:29 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1093d6cf

x11-drivers/nvidia-drivers: pass raw-ldflags for USE=kernel-open too

Same as nvidia-settings-390.144-raw-ldflags.patch, but applied
to kernel-module-source. Not a perfect fix given profiles don't
define LDFLAGS_arm64, but that's not a high priority and can
wait for nvidia's fix.

Note that modules are still generally fragile and untested with
llvm toolchain.

Closes: https://bugs.gentoo.org/885483
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../nvidia-kernel-module-source-515.86.01-raw-ldflags.patch | 13 +++++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild  |  4 ++--
 x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild  |  4 ++--
 x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild  |  4 ++--
 x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild  |  4 ++--
 5 files changed, 21 insertions(+), 8 deletions(-)

diff --git 
a/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
 
b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
new file mode 100644
index 000000000000..0b0d2f1dcb48
--- /dev/null
+++ 
b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
@@ -0,0 +1,13 @@
+Need to pass ABI flags if LD is ld.lld for USE=kernel-open
+ld.lld: error: target emulation unknown: -m or at least one .o file required
+
+https://bugs.gentoo.org/885483
+https://github.com/NVIDIA/open-gpu-kernel-modules/issues/405
+https://github.com/NVIDIA/open-gpu-kernel-modules/issues/214
+--- a/kernel-module-source/utils.mk
++++ b/utils.mk
+@@ -556,3 +556,3 @@
+       $(at_if_quiet)cd $$(dir $(1)); \
+-      $$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
++      $$(call quiet_cmd_no_at,LD) $$(RAW_LDFLAGS) -r -z noexecstack 
--format=binary \
+           $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild
index e5d38d8e51c5..10af2e877f74 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
        "${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
+       "${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
        "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
        "${FILESDIR}"/nvidia-settings-390.144-desktop.patch
        "${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch
@@ -264,6 +265,7 @@ options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' 
"${T}"/nvidia.conf || die
 
 src_compile() {
        tc-export AR CC CXX LD OBJCOPY OBJDUMP
+       local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # 
raw-ldflags.patch
 
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
@@ -299,9 +301,7 @@ src_compile() {
 
        if use tools; then
                # cflags: avoid noisy logs, only use here and set first to let 
override
-               # ldflags: abi currently needed if LD=ld.lld
                CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-                       RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
                        emake "${NV_ARGS[@]}" -C nvidia-settings
        elif use static-libs; then
                emake "${NV_ARGS[@]}" -C nvidia-settings/src out/libXNVCtrl.a

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild
index a4db984826ff..607b01e7b163 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
        "${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
+       "${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
        "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
        "${FILESDIR}"/nvidia-settings-390.144-desktop.patch
        "${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch
@@ -264,6 +265,7 @@ options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' 
"${T}"/nvidia.conf || die
 
 src_compile() {
        tc-export AR CC CXX LD OBJCOPY OBJDUMP
+       local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # 
raw-ldflags.patch
 
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
@@ -299,9 +301,7 @@ src_compile() {
 
        if use tools; then
                # cflags: avoid noisy logs, only use here and set first to let 
override
-               # ldflags: abi currently needed if LD=ld.lld
                CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-                       RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
                        emake "${NV_ARGS[@]}" -C nvidia-settings
        elif use static-libs; then
                emake "${NV_ARGS[@]}" -C nvidia-settings/src out/libXNVCtrl.a

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild
index 762c644b7499..70f7769f33f5 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
        "${FILESDIR}"/nvidia-drivers-525.23-clang15.patch
+       "${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
        "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
        "${FILESDIR}"/nvidia-settings-390.144-desktop.patch
        "${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
@@ -259,6 +260,7 @@ options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' 
"${T}"/nvidia.conf || die
 
 src_compile() {
        tc-export AR CC CXX LD OBJCOPY OBJDUMP
+       local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # 
raw-ldflags.patch
 
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
@@ -295,9 +297,7 @@ src_compile() {
 
        if use tools; then
                # cflags: avoid noisy logs, only use here and set first to let 
override
-               # ldflags: abi currently needed if LD=ld.lld
                CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-                       RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
                        emake "${NV_ARGS[@]}" -C nvidia-settings
        elif use static-libs; then
                # pretend GTK+3 is available, not actually used (bug #880879)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild
index 762c644b7499..70f7769f33f5 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
        "${FILESDIR}"/nvidia-drivers-525.23-clang15.patch
+       "${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
        "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
        "${FILESDIR}"/nvidia-settings-390.144-desktop.patch
        "${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
@@ -259,6 +260,7 @@ options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' 
"${T}"/nvidia.conf || die
 
 src_compile() {
        tc-export AR CC CXX LD OBJCOPY OBJDUMP
+       local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # 
raw-ldflags.patch
 
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
@@ -295,9 +297,7 @@ src_compile() {
 
        if use tools; then
                # cflags: avoid noisy logs, only use here and set first to let 
override
-               # ldflags: abi currently needed if LD=ld.lld
                CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-                       RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
                        emake "${NV_ARGS[@]}" -C nvidia-settings
        elif use static-libs; then
                # pretend GTK+3 is available, not actually used (bug #880879)

Reply via email to