public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mike Frysinger" <vapier@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/crossdev:master commit in: /
Date: Tue, 18 Oct 2011 17:36:14 +0000 (UTC)	[thread overview]
Message-ID: <d1cde0072cc08279447505c57eabe647e4be5eb0.vapier@gentoo> (raw)

commit:     d1cde0072cc08279447505c57eabe647e4be5eb0
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 17 16:22:20 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Oct 17 20:05:50 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=d1cde007

crossdev: go back to setting up multilib, but smarter

The recent commit 48942e883df62 didn't operate exactly the way I wanted
and allowed the host profile's idea of multilib to bleed in for most
packages (but not the cross-compiler ones where multilib.eclass fixed
things up).  So leverage multilib.eclass to avoid duplicating the env
func locally and to setup the ABI env as we want.

Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |   75 ++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 61 insertions(+), 14 deletions(-)

diff --git a/crossdev b/crossdev
index 767c580..48c6f96 100755
--- a/crossdev
+++ b/crossdev
@@ -439,7 +439,8 @@ UOPTS=
 TARCH=
 HARCH=
 CTARGET=
-MULTILIB_ABIS=""
+MULTILIB_ABIS="default"
+MULTILIB_USE=""
 STAGE=""
 BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL=""
 GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL=""
@@ -556,6 +557,57 @@ for v in MULTILIB_ABIS UCLIBC_CPU USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS A
 	fi
 done
 
+# parse multilib settings until profiles are sane
+DEFAULT_ABI=${MULTILIB_ABIS%% *}
+eval $(
+	# clean the env
+	unset ${!CFLAGS_*} ${!CHOST_*} ${!CTARGET_*} ${!LDFLAGS_*} ${!LIBDIR_*}
+
+	# ask multilib.eclass to tell us how things work
+	inherit() { :; }
+	for p in ${SEARCH_OVERLAYS} ${PORTDIR} ; do
+		p+="/eclass/multilib.eclass"
+		if [[ -e ${p} ]] ; then
+			. "${p}"
+			break
+		fi
+	done
+	unset DEFAULT_ABI
+	if [[ ${MULTILIB_ABIS} == "default" ]] ; then
+		unset MULTILIB_ABIS
+		single_abi=true
+	else
+		single_abi=false
+	fi
+	multilib_env
+	${single_abi} && MULTILIB_ABIS=${DEFAULT_ABI}
+
+	# output the desired env
+	for v in ${!CFLAGS_*} ${!CHOST_*} ${!CTARGET_*} ${!LDFLAGS_*} ${!LIBDIR_*} MULTILIB_ABIS DEFAULT_ABI ; do
+		echo ${v}=\'${!v}\'
+	done
+
+	# make sure all ABIs have valid vars
+	def_CFLAGS=
+	def_LIBDIR="lib"
+	def_LDFLAGS=
+	for v in CFLAGS LIBDIR LDFLAGS ; do
+		d="def_${v}"
+		for a in ${MULTILIB_ABIS} ; do
+			_v="${v}_${a}"
+			[[ ${!_v+set} == "set" ]] && continue
+			echo ${_v}=\'${!d}\'
+		done
+	done
+)
+if [[ -z ${MULTILIB_USE} ]] ; then
+	if [[ $(set -- ${MULTILIB_ABIS}; echo $#) -eq 1 ]] ; then
+		MULTILIB_USE="no"
+	else
+		MULTILIB_USE="yes"
+	fi
+fi
+
 #####################
 ### do the emerge ###
 info() {
@@ -565,7 +617,8 @@ einfo "Host Portage ARCH:     ${HARCH}"
 einfo "Target Portage ARCH:   ${TARCH}"
 einfo "Target System:         ${CTARGET}"
 einfo "Stage:                 ${STAGE} (${STAGE_DISP[${STAGE}]})"
-einfo "ABIs:                  ${MULTILIB_ABIS:-<just one: the default>}"
+[[ ${DEFAULT_ABI} != "${MULTILIB_ABIS}" ]] && def_out=" (default: ${DEFAULT_ABI})" || def_out=
+einfo "ABIs:                  ${MULTILIB_ABIS}${def_out}"
 echo
 ex_fast || {
 is_s0 && {
@@ -695,17 +748,11 @@ set_env() {
 	$(printf '%b' "${env}")
 	EOF
 
-	# allow USE=-multilib to work its magic via multilib.eclass
-	# by not setting random values when we simply want one abi
-	if [[ -n ${MULTILIB_ABIS} ]] ; then
-		ABI=$(set -- ${MULTILIB_ABIS}; echo $1)
-		cat <<-EOF >> "${output}"
-		# handle multilib ourselves
-		ABI=${ABI}
-		MULTILIB_ABIS="${MULTILIB_ABIS}"
-		DEFAULT_ABI=${ABI}
-		EOF
-	fi
+	local v
+	local ABI=$(set -- ${MULTILIB_ABIS}; echo $1)
+	for v in ${!CFLAGS_*} ${!CHOST_*} ${!CTARGET_*} ${!LDFLAGS_*} ${!LIBDIR_*} ABI MULTILIB_ABIS DEFAULT_ABI ; do
+		echo "${v}='${!v}'" >> "${output}"
+	done
 }
 set_portage() {
 	local cat=$1 pkg=$2 ver=$3 env=$4 ovl=$5
@@ -817,7 +864,7 @@ doemerge() {
 	einfo "Log: ${logfile}"
 	ebegin "Emerging cross-${2:-$1}"
 
-	set_use $1 ${USE} $( [[ -z ${MULTILIB_ABIS} ]] && echo - )multilib
+	set_use $1 ${USE} $( [[ ${MULTILIB_USE} == "no" ]] && echo - )multilib
 
 	if [[ ${UOPTS/-v} != ${UOPTS} || ${UOPTS/-p} != ${UOPTS} ]] ; then
 		emerge cross-${CTARGET}/$1 ${EOPTS} \



             reply	other threads:[~2011-10-18 17:36 UTC|newest]

Thread overview: 240+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-18 17:36 Mike Frysinger [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-03 17:14 [gentoo-commits] proj/crossdev:master commit in: / Mike Gilbert
2025-01-12 18:39 Sam James
2025-01-04 15:20 Sam James
2025-01-02 23:26 Sam James
2025-01-02 23:24 Sam James
2025-01-02 23:24 Sam James
2025-01-02 23:24 Sam James
2024-12-25  0:45 Sam James
2024-12-25  0:43 Sam James
2024-12-25  0:42 Sam James
2024-12-25  0:42 Sam James
2024-12-25  0:42 Sam James
2024-12-15 18:29 Sam James
2024-12-14 18:14 Sam James
2024-12-02 21:40 Sam James
2024-12-02 15:27 Sam James
2024-12-02  9:42 Sam James
2024-12-01 23:05 Sam James
2024-11-30 10:18 Sam James
2024-11-30  5:12 Sam James
2024-11-30  2:55 Sam James
2024-11-30  2:08 Sam James
2024-11-30  2:08 Sam James
2024-10-15  7:13 Sam James
2024-10-15  7:13 Sam James
2024-07-02 21:01 James Le Cuirot
2024-06-16 13:47 Luca Barbato
2024-05-07 16:06 Sam James
2024-05-07 13:04 Sam James
2024-05-07 13:01 Sam James
2024-05-04 11:57 Sam James
2024-05-04 11:52 Sam James
2024-05-04 11:52 Sam James
2024-05-04 11:52 Sam James
2024-05-04 11:48 Sam James
2024-05-04 11:48 Sam James
2024-01-26  9:31 Sam James
2024-01-17  4:51 Sam James
2023-09-26 18:30 Sam James
2023-09-23 12:26 Sam James
2023-08-31  1:32 Sam James
2023-08-31  1:15 Sam James
2023-03-21 22:41 Sam James
2023-02-25  1:14 Sam James
2023-02-02 17:40 Sam James
2023-02-02 17:40 Sam James
2023-01-14 17:58 Sam James
2022-12-28 15:17 Sam James
2022-12-28 15:17 Sam James
2022-11-18 17:57 Mike Gilbert
2022-11-18 17:57 Mike Gilbert
2022-07-09  3:45 Sam James
2022-07-09  3:45 Sam James
2022-07-09  3:45 Sam James
2022-05-02 23:19 Sam James
2022-04-24 16:30 Sam James
2022-04-19 20:25 Sam James
2022-03-17 23:42 Sam James
2022-03-06  2:08 Sam James
2022-02-20  2:19 Sam James
2022-02-11 22:53 Andreas K. Hüttel
2022-01-31  2:06 Sam James
2022-01-28 12:30 Mike Frysinger
2021-11-21 13:08 Sam James
2021-10-27 17:20 Mike Frysinger
2021-10-27  9:19 Mike Frysinger
2021-10-27  8:56 Mike Frysinger
2021-10-27  8:55 Mike Frysinger
2021-07-17 23:38 Sergei Trofimovich
2021-06-21 21:23 Sergei Trofimovich
2021-06-21 21:23 Sergei Trofimovich
2021-06-21 21:23 Sergei Trofimovich
2021-06-21 21:23 Sergei Trofimovich
2021-06-08 22:44 Sergei Trofimovich
2021-06-07 20:44 Sergei Trofimovich
2021-01-05 23:25 Sergei Trofimovich
2021-01-05 23:25 Sergei Trofimovich
2021-01-05 23:25 Sergei Trofimovich
2020-12-31 12:23 Sergei Trofimovich
2020-11-29 22:30 Sergei Trofimovich
2020-11-22 20:41 Sergei Trofimovich
2020-11-08 13:26 Sergei Trofimovich
2020-11-08 13:26 Sergei Trofimovich
2020-08-01 19:50 Sergei Trofimovich
2020-03-26 23:52 Sergei Trofimovich
2020-01-31  7:36 Sergei Trofimovich
2020-01-31  7:36 Sergei Trofimovich
2020-01-31  7:36 Sergei Trofimovich
2020-01-30  8:36 Sergei Trofimovich
2020-01-29 23:20 Sergei Trofimovich
2020-01-25 21:17 Sergei Trofimovich
2020-01-25 12:05 Sergei Trofimovich
2020-01-25 12:05 Sergei Trofimovich
2019-12-22 22:32 Sergei Trofimovich
2019-12-22 22:04 Sergei Trofimovich
2019-12-22 22:01 Sergei Trofimovich
2019-10-21 22:54 Sergei Trofimovich
2019-10-21 22:50 Sergei Trofimovich
2019-10-14  7:35 Sergei Trofimovich
2019-09-08 11:16 Sergei Trofimovich
2019-09-01 19:02 Sergei Trofimovich
2019-09-01 16:14 Sergei Trofimovich
2019-08-25  9:38 Sergei Trofimovich
2019-06-08 18:20 Sergei Trofimovich
2019-03-18 22:54 Sergei Trofimovich
2018-10-18 22:26 Sergei Trofimovich
2018-10-17 21:45 Sergei Trofimovich
2018-09-27 23:44 Jason Donenfeld
2018-09-18 22:44 Sergei Trofimovich
2018-08-18 15:42 Sergei Trofimovich
2018-07-24 23:44 Sergei Trofimovich
2018-05-08 21:40 Sergei Trofimovich
2018-04-10  7:15 Sergei Trofimovich
2018-04-09 20:46 Sergei Trofimovich
2018-04-07 15:57 Sergei Trofimovich
2018-04-07 11:21 Sergei Trofimovich
2018-04-07 10:56 Sergei Trofimovich
2018-04-07  7:27 Sergei Trofimovich
2018-04-05 22:16 Sergei Trofimovich
2018-03-02 22:32 Sergei Trofimovich
2018-02-03  9:39 Sergei Trofimovich
2018-01-20 12:37 Sergei Trofimovich
2018-01-07 20:15 Sergei Trofimovich
2018-01-05 23:27 Sergei Trofimovich
2017-12-30 21:21 Sergei Trofimovich
2017-12-30 17:41 Sergei Trofimovich
2017-12-30 17:41 Sergei Trofimovich
2017-12-30 14:52 Sergei Trofimovich
2017-12-30 14:46 Sergei Trofimovich
2017-12-29 20:44 Sergei Trofimovich
2017-12-28 17:47 Sergei Trofimovich
2017-12-27 18:10 Sergei Trofimovich
2017-12-12 21:35 Steve Arnold
2017-11-23 18:18 Steve Arnold
2017-11-21 23:01 Sergei Trofimovich
2017-11-21 22:13 Sergei Trofimovich
2017-11-19 23:03 Sergei Trofimovich
2017-10-24 17:38 Steve Arnold
2017-10-14 23:46 Steve Arnold
2017-10-14 23:46 Steve Arnold
2017-10-14 23:46 Steve Arnold
2017-10-13 17:56 Steve Arnold
2017-10-13 16:31 Steve Arnold
2017-10-13 16:31 Steve Arnold
2017-10-13 16:31 Steve Arnold
2017-10-13 16:31 Steve Arnold
2016-06-02 15:56 Mike Frysinger
2016-06-02 15:56 Mike Frysinger
2016-06-02 15:56 Mike Frysinger
2016-06-02 15:56 Mike Frysinger
2016-01-16  6:38 Mike Frysinger
2015-10-16  3:19 Mike Frysinger
2015-08-13  2:45 Mike Frysinger
2015-06-02 17:01 Mike Frysinger
2015-05-30  4:46 Mike Frysinger
2015-05-23  5:35 Mike Frysinger
2015-04-18 22:58 Mike Frysinger
2014-10-31  1:56 Mike Frysinger
2014-10-31  1:56 Mike Frysinger
2014-10-31  0:52 Mike Frysinger
2014-09-17 21:41 Mike Frysinger
2014-01-18 18:42 Mike Frysinger
2013-11-07 20:32 Mike Frysinger
2013-11-07 20:28 Mike Frysinger
2013-10-12 20:15 Mike Frysinger
2013-10-11 19:05 Mike Frysinger
2013-10-11 18:48 Mike Frysinger
2013-09-30  0:21 Mike Frysinger
2013-06-28  5:42 Mike Frysinger
2013-06-28  5:14 Mike Frysinger
2013-04-20  2:50 Mike Frysinger
2013-03-28 16:20 Mike Frysinger
2013-03-28 16:20 Mike Frysinger
2013-02-18 20:11 Mike Frysinger
2012-12-25 21:44 Mike Frysinger
2012-11-18  7:56 Mike Frysinger
2012-11-11  9:10 Mike Frysinger
2012-11-05  8:37 Mike Frysinger
2012-10-02  3:23 Mike Frysinger
2012-09-13  5:13 Mike Frysinger
2012-09-13  5:05 Mike Frysinger
2012-08-30 18:16 Mike Frysinger
2012-08-20 21:36 Mike Frysinger
2012-08-17 21:20 Mike Frysinger
2012-07-31 16:19 Mike Frysinger
2012-07-30  3:01 Mike Frysinger
2012-06-09  5:23 Mike Frysinger
2012-06-09  5:23 Mike Frysinger
2012-06-03  9:03 Mike Frysinger
2012-06-03  9:03 Mike Frysinger
2012-06-03  9:03 Mike Frysinger
2012-06-03  9:03 Mike Frysinger
2012-05-30 15:28 Mike Frysinger
2012-05-30 15:28 Mike Frysinger
2012-05-30 15:28 Mike Frysinger
2012-05-30 15:28 Mike Frysinger
2012-03-07 18:31 Mike Frysinger
2012-03-05 23:15 Mike Frysinger
2012-03-05 23:15 Mike Frysinger
2012-03-05 23:15 Mike Frysinger
2012-03-01 18:43 Mike Frysinger
2012-03-01 18:43 Mike Frysinger
2012-03-01 18:43 Mike Frysinger
2012-03-01 18:43 Mike Frysinger
2012-02-29 17:18 Mike Frysinger
2012-02-29 16:22 Mike Frysinger
2012-02-29 16:22 Mike Frysinger
2012-02-29 16:22 Mike Frysinger
2012-02-27 22:50 Mike Frysinger
2012-02-27 22:47 Mike Frysinger
2012-02-24 22:23 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2011-12-21 21:06 Mike Frysinger
2011-12-21 21:06 Mike Frysinger
2011-12-13 19:06 Mike Frysinger
2011-12-06 21:50 Mike Frysinger
2011-11-18 20:44 Mike Frysinger
2011-10-31  3:30 Mike Frysinger
2011-10-11 22:22 Mike Frysinger
2011-08-25 15:50 Mike Frysinger
2011-08-19 18:05 Mike Frysinger
2011-08-19 18:05 Mike Frysinger
2011-08-18 20:06 Mike Frysinger
2011-08-18 20:06 Mike Frysinger
2011-08-18 20:06 Mike Frysinger
2011-08-15 22:25 Mike Frysinger
2011-08-12 18:59 Mike Frysinger
2011-07-05  6:44 Mike Frysinger
2011-03-27  6:07 Mike Frysinger
2011-03-11  4:22 Mike Frysinger
2011-03-11  4:22 Mike Frysinger
2011-03-11  4:22 Mike Frysinger
2011-02-14  3:08 Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d1cde0072cc08279447505c57eabe647e4be5eb0.vapier@gentoo \
    --to=vapier@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox