Gentoo Archives: gentoo-dev

From: James Le Cuirot <chewi@g.o>
To: gentoo-dev <gentoo-dev@l.g.o>
Cc: James Le Cuirot <chewi@g.o>
Subject: [gentoo-dev] [PATCH] kernel-2.eclass: Make xmakeopts an array for spaces in toolchain vars
Date: Sat, 21 Jan 2023 11:04:18
Message-Id: 20230121110356.12183-1-chewi@gentoo.org
1 Variables like CC can have spaces for additional arguments. This is
2 particularly useful for reliably setting the sysroot.
3
4 Signed-off-by: James Le Cuirot <chewi@g.o>
5 ---
6 eclass/kernel-2.eclass | 21 +++++++++++++++------
7 1 file changed, 15 insertions(+), 6 deletions(-)
8
9 diff --git a/eclass/kernel-2.eclass b/eclass/kernel-2.eclass
10 index 873d4a204669..f7fcf15743f0 100644
11 --- a/eclass/kernel-2.eclass
12 +++ b/eclass/kernel-2.eclass
13 @@ -1,4 +1,4 @@
14 -# Copyright 1999-2022 Gentoo Authors
15 +# Copyright 1999-2023 Gentoo Authors
16 # Distributed under the terms of the GNU General Public License v2
17
18 # @ECLASS: kernel-2.eclass
19 @@ -756,13 +756,22 @@ env_setup_xmakeopts() {
20
21 # When cross-compiling, we need to set the ARCH/CROSS_COMPILE
22 # variables properly or bad things happen !
23 - xmakeopts="ARCH=${KARCH}"
24 + xmakeopts=( ARCH="${KARCH}" )
25 if [[ ${CTARGET} != ${CHOST} ]] && ! cross_pre_c_headers; then
26 - xmakeopts="${xmakeopts} CROSS_COMPILE=${CTARGET}-"
27 + xmakeopts+=( CROSS_COMPILE="${CTARGET}-" )
28 elif type -p ${CHOST}-ar >/dev/null; then
29 - xmakeopts="${xmakeopts} CROSS_COMPILE=${CHOST}-"
30 + xmakeopts+=( CROSS_COMPILE="${CHOST}-" )
31 fi
32 - xmakeopts="${xmakeopts} HOSTCC=$(tc-getBUILD_CC) CC=$(tc-getCC) LD=$(tc-getLD) AR=$(tc-getAR) NM=$(tc-getNM) OBJCOPY=$(tc-getOBJCOPY) READELF=$(tc-getREADELF) STRIP=$(tc-getSTRIP)"
33 + xmakeopts+=(
34 + HOSTCC="$(tc-getBUILD_CC)"
35 + CC="$(tc-getCC)"
36 + LD="$(tc-getLD)"
37 + AR="$(tc-getAR)"
38 + NM="$(tc-getNM)"
39 + OBJCOPY="$(tc-getOBJCOPY)"
40 + READELF="$(tc-getREADELF)"
41 + STRIP="$(tc-getSTRIP)"
42 + )
43 export xmakeopts
44 }
45
46 @@ -850,7 +859,7 @@ install_headers() {
47 local ddir=$(kernel_header_destdir)
48
49 env_setup_xmakeopts
50 - emake headers_install INSTALL_HDR_PATH="${ED}"${ddir}/.. ${xmakeopts}
51 + emake headers_install INSTALL_HDR_PATH="${ED}"${ddir}/.. "${xmakeopts[@]}"
52
53 # let other packages install some of these headers
54 rm -rf "${ED}"${ddir}/scsi || die #glibc/uclibc/etc...
55 --
56 2.39.1

Replies