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} \
next 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