commit:     b5304e6af951617b58f9e9276d72fe7d55e7f5b5
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Mon Feb  2 16:56:17 2026 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Tue Feb  3 12:28:34 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b5304e6a

x11-drivers/nvidia-drivers: Fix cross-compiling by defining TARGET_ARCH

There is also TARGET_ARCH_ABI, but it only affects nvidia-installer, which we
don't use, and we don't keyword for arm anyway.

Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>
Part-of: https://codeberg.org/gentoo/gentoo/pulls/29
Merges: https://codeberg.org/gentoo/gentoo/pulls/29
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild    | 10 ++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild    | 10 ++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild | 10 ++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild    | 10 ++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-580.94.17.ebuild     | 10 ++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild     | 10 ++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild  | 10 ++++++++++
 7 files changed, 70 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild
index c3e46133df0c..55126f020b22 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild
@@ -182,6 +182,14 @@ src_compile() {
        local xnvflags=-fPIC #840389
        tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
 
+       # Same as uname -m.
+       local target_arch
+       case ${ARCH} in
+               amd64) target_arch=x86_64 ;;
+               arm64) target_arch=aarch64 ;;
+               *) die "Unrecognised architecture: ${ARCH}" ;;
+       esac
+
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
                HOST_CC="$(tc-getBUILD_CC)"
@@ -189,6 +197,7 @@ src_compile() {
                BUILD_GTK2LIB=
                NV_USE_BUNDLED_LIBJANSSON=0
                NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+               TARGET_ARCH="${target_arch}"
                WAYLAND_AVAILABLE=$(usex wayland 1 0)
                XNVCTRL_CFLAGS="${xnvflags}"
        )
@@ -217,6 +226,7 @@ src_compile() {
                        CC="${KERNEL_CC}" # needed for above gnu17 workaround
                        IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
                        SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+                       TARGET_ARCH="${target_arch}"
 
                        # kernel takes "x86" and "x86_64" as meaning the same, 
but nvidia
                        # makes the distinction (since 550.135) and is not 
happy with "x86"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild
index 348954cbce55..4d3677fc8473 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild
@@ -182,6 +182,14 @@ src_compile() {
        local xnvflags=-fPIC #840389
        tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
 
+       # Same as uname -m.
+       local target_arch
+       case ${ARCH} in
+               amd64) target_arch=x86_64 ;;
+               arm64) target_arch=aarch64 ;;
+               *) die "Unrecognised architecture: ${ARCH}" ;;
+       esac
+
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
                HOST_CC="$(tc-getBUILD_CC)"
@@ -189,6 +197,7 @@ src_compile() {
                BUILD_GTK2LIB=
                NV_USE_BUNDLED_LIBJANSSON=0
                NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+               TARGET_ARCH="${target_arch}"
                WAYLAND_AVAILABLE=$(usex wayland 1 0)
                XNVCTRL_CFLAGS="${xnvflags}"
        )
@@ -213,6 +222,7 @@ src_compile() {
                local modargs=(
                        IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
                        SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+                       TARGET_ARCH="${target_arch}"
 
                        # kernel takes "x86" and "x86_64" as meaning the same, 
but nvidia
                        # makes the distinction (since 550.135) and is not 
happy with "x86"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild
index d4368e661ac7..76738725bdb1 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild
@@ -186,6 +186,14 @@ src_compile() {
        local xnvflags=-fPIC #840389
        tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
 
+       # Same as uname -m.
+       local target_arch
+       case ${ARCH} in
+               amd64) target_arch=x86_64 ;;
+               arm64) target_arch=aarch64 ;;
+               *) die "Unrecognised architecture: ${ARCH}" ;;
+       esac
+
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
                HOST_CC="$(tc-getBUILD_CC)"
@@ -193,6 +201,7 @@ src_compile() {
                BUILD_GTK2LIB=
                NV_USE_BUNDLED_LIBJANSSON=0
                NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+               TARGET_ARCH="${target_arch}"
                WAYLAND_AVAILABLE=$(usex wayland 1 0)
                XNVCTRL_CFLAGS="${xnvflags}"
        )
@@ -217,6 +226,7 @@ src_compile() {
                local modargs=(
                        IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
                        SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+                       TARGET_ARCH="${target_arch}"
 
                        # kernel takes "x86" and "x86_64" as meaning the same, 
but nvidia
                        # makes the distinction (since 550.135) and is not 
happy with "x86"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild
index 13ce5264223a..cae783c258ad 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild
@@ -186,6 +186,14 @@ src_compile() {
        local xnvflags=-fPIC #840389
        tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
 
+       # Same as uname -m.
+       local target_arch
+       case ${ARCH} in
+               amd64) target_arch=x86_64 ;;
+               arm64) target_arch=aarch64 ;;
+               *) die "Unrecognised architecture: ${ARCH}" ;;
+       esac
+
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
                HOST_CC="$(tc-getBUILD_CC)"
@@ -193,6 +201,7 @@ src_compile() {
                BUILD_GTK2LIB=
                NV_USE_BUNDLED_LIBJANSSON=0
                NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+               TARGET_ARCH="${target_arch}"
                WAYLAND_AVAILABLE=$(usex wayland 1 0)
                XNVCTRL_CFLAGS="${xnvflags}"
        )
@@ -217,6 +226,7 @@ src_compile() {
                local modargs=(
                        IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
                        SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+                       TARGET_ARCH="${target_arch}"
 
                        # kernel takes "x86" and "x86_64" as meaning the same, 
but nvidia
                        # makes the distinction (since 550.135) and is not 
happy with "x86"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.17.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.17.ebuild
index 5b53166ed2ae..3edb4410bd8f 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.17.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.17.ebuild
@@ -187,6 +187,14 @@ src_compile() {
        local xnvflags=-fPIC #840389
        tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
 
+       # Same as uname -m.
+       local target_arch
+       case ${ARCH} in
+               amd64) target_arch=x86_64 ;;
+               arm64) target_arch=aarch64 ;;
+               *) die "Unrecognised architecture: ${ARCH}" ;;
+       esac
+
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
                HOST_CC="$(tc-getBUILD_CC)"
@@ -194,6 +202,7 @@ src_compile() {
                BUILD_GTK2LIB=
                NV_USE_BUNDLED_LIBJANSSON=0
                NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+               TARGET_ARCH="${target_arch}"
                WAYLAND_AVAILABLE=$(usex wayland 1 0)
                XNVCTRL_CFLAGS="${xnvflags}"
        )
@@ -218,6 +227,7 @@ src_compile() {
                local modargs=(
                        IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
                        SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+                       TARGET_ARCH="${target_arch}"
 
                        # kernel takes "x86" and "x86_64" as meaning the same, 
but nvidia
                        # makes the distinction (since 550.135) and is not 
happy with "x86"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild
index 6a1b01343a4f..982c8be6128f 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild
@@ -187,6 +187,14 @@ src_compile() {
        local xnvflags=-fPIC #840389
        tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
 
+       # Same as uname -m.
+       local target_arch
+       case ${ARCH} in
+               amd64) target_arch=x86_64 ;;
+               arm64) target_arch=aarch64 ;;
+               *) die "Unrecognised architecture: ${ARCH}" ;;
+       esac
+
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
                HOST_CC="$(tc-getBUILD_CC)"
@@ -194,6 +202,7 @@ src_compile() {
                BUILD_GTK2LIB=
                NV_USE_BUNDLED_LIBJANSSON=0
                NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+               TARGET_ARCH="${target_arch}"
                WAYLAND_AVAILABLE=$(usex wayland 1 0)
                XNVCTRL_CFLAGS="${xnvflags}"
        )
@@ -218,6 +227,7 @@ src_compile() {
                local modargs=(
                        IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
                        SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+                       TARGET_ARCH="${target_arch}"
 
                        # kernel takes "x86" and "x86_64" as meaning the same, 
but nvidia
                        # makes the distinction (since 550.135) and is not 
happy with "x86"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild
index 316ccfc8752e..3540676cad0d 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild
@@ -186,6 +186,14 @@ src_compile() {
        local xnvflags=-fPIC #840389
        tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
 
+       # Same as uname -m.
+       local target_arch
+       case ${ARCH} in
+               amd64) target_arch=x86_64 ;;
+               arm64) target_arch=aarch64 ;;
+               *) die "Unrecognised architecture: ${ARCH}" ;;
+       esac
+
        NV_ARGS=(
                PREFIX="${EPREFIX}"/usr
                HOST_CC="$(tc-getBUILD_CC)"
@@ -193,6 +201,7 @@ src_compile() {
                BUILD_GTK2LIB=
                NV_USE_BUNDLED_LIBJANSSON=0
                NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+               TARGET_ARCH="${target_arch}"
                WAYLAND_AVAILABLE=$(usex wayland 1 0)
                XNVCTRL_CFLAGS="${xnvflags}"
        )
@@ -217,6 +226,7 @@ src_compile() {
                local modargs=(
                        IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
                        SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+                       TARGET_ARCH="${target_arch}"
 
                        # kernel takes "x86" and "x86_64" as meaning the same, 
but nvidia
                        # makes the distinction (since 550.135) and is not 
happy with "x86"

Reply via email to