public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2014-10-31  0:52 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2014-10-31  0:52 UTC (permalink / raw
  To: gentoo-commits

commit:     09cc960610ff36e007e9fd26dc79edbdf4bfeb25
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 31 00:44:57 2014 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Oct 31 00:44:57 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=09cc9606

crossdev: disable USE=sanitize during gcc stage1

URL: https://bugs.gentoo.org/525910
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 164c2ea..831ebc6 100755
--- a/crossdev
+++ b/crossdev
@@ -554,7 +554,7 @@ CROSSDEV_OVERLAY=""
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
 # These are disabled only for stage1 gcc
-GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go nocxx -cxx -openmp"
+GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go nocxx -cxx -openmp -sanitize"
 GUSE_DISABLE_STAGE_2="${GUSE_DISABLE}"
 WITH_HEADERS="COW"   WITH_DEF_HEADERS="yes" #227065 gcc-4.3+ is a pita w/out headers
 EX_FAST="no"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-10-15  7:13 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-10-15  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     b9bcca92c56e87436852888a7ef0f52cee7d5ee2
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 15 07:11:57 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Oct 15 07:13:51 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b9bcca92

crossdev: tweak GUSE_DISABLE*

USE=boundschecking, USE=gcj, USE=gtk, USE=libffi, USE=mudflap
are all long gone, so drop those from GUSE_DISABLE.

USE=mpx is also gone, so remove that from GUSE_DISABLE_STAGE_1.

Shift USE=vtv from GUSE_DISABLE_STAGE_1 -> GUSE_DISABLE as it falls under
everything described in that comment ;)

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index a02016a..1b53fd2 100755
--- a/crossdev
+++ b/crossdev
@@ -884,9 +884,9 @@ CROSSDEV_OVERLAY_CREATE_REPOS_CONF=""
 AUTOGEN_TAG="# Autogenerated and managed by crossdev"
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them
-GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
+GUSE_DISABLE="-d -objc -objc++ -objc-gc -vtv"
 # These are disabled only for stage1 gcc. Normally need libc presence.
-GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go -jit -cxx -mpx -openmp -sanitize -vtv"
+GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go -jit -cxx -openmp -sanitize"
 # These are also disabled for stage2, but could be used later if dependencies
 # are installed into ${SYSROOT}:
 # - sanitize needs crypt.h: #799707


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-10-15  7:13 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-10-15  7:13 UTC (permalink / raw
  To: gentoo-commits

commit:     467cff30d0a828868dcdc98f49afcd7d136234d5
Author:     Michal Rostecki <vadorovsky <AT> protonmail <DOT> com>
AuthorDate: Mon Oct  7 20:01:11 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Oct 15 07:13:52 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=467cff30

crossdev: Use libunwind and libc++ in LLVM environments

Avoid build issues on cross environments using musl and LLVM by using
libunwind and libc++ explicitly in the clang configuration. Otherwise,
clang expects GCC libunwind and libstdc++.

These flags were not set explicitly in the clang configuration, because
LLVM profiles were setting them, but that's not the case anymore[0].

[0] https://github.com/gentoo/gentoo/commit/5e5c9d5c524871f5af260557dbd2962b8eec5087

Bug: https://bugs.gentoo.org/941140
Signed-off-by: Michal Rostecki <vadorovsky <AT> protonmail.com>
Closes: https://github.com/gentoo/crossdev/pull/23
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 1b53fd2..176bb71 100755
--- a/crossdev
+++ b/crossdev
@@ -1736,7 +1736,8 @@ if [[ "${LLVM}" == "yes" ]]; then
 	--rtlib=compiler-rt
 	--sysroot=/usr/${CTARGET}
 	--target=${CTARGET}
-	--unwindlib=none
+	--unwindlib=libunwind
+	--stdlib=libc++
 	-fuse-ld=lld
 	EOF
 	# Workaround until LLVM libc supports dynamic linking and SSP


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-07-02 21:01 James Le Cuirot
  0 siblings, 0 replies; 217+ messages in thread
From: James Le Cuirot @ 2024-07-02 21:01 UTC (permalink / raw
  To: gentoo-commits

commit:     daec387a1c91d5a0b9f94ee00ef95f63a9a6d9d2
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  2 16:22:06 2024 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Tue Jul  2 16:22:06 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=daec387a

crossdev: Configure the cet USE flag to match the profiles

We especially don't want to enable it on i?86.

Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 crossdev | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/crossdev b/crossdev
index 020d17c..a02016a 100755
--- a/crossdev
+++ b/crossdev
@@ -499,6 +499,21 @@ parse_target() {
 		GMASK+=" default-stack-clash-protection ssp hardened -nossp"
 		GFORCE+=" nossp"
 	fi
+
+	# Configure the cet USE flag to match the profiles. We especially
+	# don't want to enable it on i?86.
+	case ${CTARGET} in
+		x86_64-*)
+			BFORCE+=" cet"
+			GUSE+=" cet"
+			LUSE+=" cet"
+			;;
+		*)
+			BMASK+=" cet"
+			GMASK+=" cet"
+			LMASK+=" cet"
+			;;
+	esac
 }
 
 parse_repo_config() {


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-06-16 13:47 Luca Barbato
  0 siblings, 0 replies; 217+ messages in thread
From: Luca Barbato @ 2024-06-16 13:47 UTC (permalink / raw
  To: gentoo-commits

commit:     9b82332fb2a1068640c07c60f627fb6779f28a3b
Author:     Luca Barbato <lu_zero <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 13 18:26:09 2024 +0000
Commit:     Luca Barbato <lu_zero <AT> gentoo <DOT> org>
CommitDate: Sun Jun 16 13:46:47 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=9b82332f

crossdev: Force static-libs for -gnu targets

Without `static-libs`, the configure check for `-static` would fail and
it leads to a cascade failure in finding `-lpthread` in stage2 gcc.

Closes: https://github.com/gentoo/crossdev/pull/21
Signed-off-by: Luca Barbato <lu_zero <AT> gentoo.org>

 crossdev | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/crossdev b/crossdev
index 6de317a..020d17c 100755
--- a/crossdev
+++ b/crossdev
@@ -354,6 +354,9 @@ parse_target() {
 			;;
 		*-gnu*)
 			LPKG="glibc"
+			# gcc would not find -lpthread without static libraries while building
+			# its copy of libgomp.
+			LUSE+=" static-libs"
 			;;
 		*-klibc)
 			LPKG="klibc"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-07 16:06 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-07 16:06 UTC (permalink / raw
  To: gentoo-commits

commit:     df5372661bd09a1ffcbc129d89caa7b2a4a65aec
Author:     vindicatorr <nroycea+github <AT> gmail <DOT> com>
AuthorDate: Tue May  7 11:36:16 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May  7 16:06:18 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=df537266

Reorder gnu<-glibc wording, under "LIBC" for "--help", to follow with usage of other libs listed.

Signed-off-by: vindicatorr <nroycea+github <AT> gmail.com>
Closes: https://github.com/gentoo/crossdev/pull/20
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index d643aaa..6de317a 100755
--- a/crossdev
+++ b/crossdev
@@ -162,7 +162,7 @@ parse_target() {
 		   - sh / sh[1-5] / sh64
 		   - x86_64 (amd64)
 		Supported C Libraries (LIBC):
-		   - glibc (gnu)
+		   - gnu (glibc)
 		   - klibc       [prob wont work]
 		   - musl
 		   - newlib      [bare metal/no operating system]


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-07 13:04 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-07 13:04 UTC (permalink / raw
  To: gentoo-commits

commit:     118ced12162677ba67d634245dc56e701af9ce94
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue May  7 13:04:23 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May  7 13:04:23 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=118ced12

crossdev: fix whitespace in comment

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 8d8f186..d643aaa 100755
--- a/crossdev
+++ b/crossdev
@@ -1694,7 +1694,7 @@ doemerge() {
 	eend 0
 }
 
-# We include the '-u' so that we don't re-emerge packages.	Avoid
+# We include the '-u' so that we don't re-emerge packages. Avoid
 # using --nodeps as packages have more host depends nowadays (like
 # gcc wanting updated mpfr/gmp).  Don't use --oneshot anymore to
 # follow normal emerge behavior; people can pass the -1 to portage


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-07 13:01 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-07 13:01 UTC (permalink / raw
  To: gentoo-commits

commit:     656fb7aac1d118c3814b8d5997943791fbbf34ef
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue May  7 12:41:35 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May  7 12:41:35 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=656fb7aa

crossdev: fix setting EAPI

Fixes: c012baee91797ddbd87fa26f4cb73c9a58de3c0c
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index af47349..8d8f186 100755
--- a/crossdev
+++ b/crossdev
@@ -1498,7 +1498,7 @@ set_metadata() {
 
 	if [[ ! -f "${CROSSDEV_OVERLAY}"/profiles/eapi ]] ; then
 		cat <<-EOF > "${CROSSDEV_OVERLAY}"/profiles/eapi || die "could not write ${CROSSDEV_OVERLAY}/profiles/eapi"
-		${repo_name}
+		8
 		EOF
 	fi
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-04 11:57 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-04 11:57 UTC (permalink / raw
  To: gentoo-commits

commit:     5b76e726a4000e28a2bc7c76e3538027c745de48
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 11:57:12 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May  4 11:57:12 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=5b76e726

README: small fixes

Signed-off-by: Sam James <sam <AT> gentoo.org>

 README | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/README b/README
index d4198b2..c37472e 100644
--- a/README
+++ b/README
@@ -15,7 +15,7 @@ It is useful for various purposes:
 Crossdev nano HOWTO
 -------------------
 
-So you want to cross-compile a Gentoo package (say busybox to s390x):
+So you want to cross-compile a Gentoo package (say, busybox to s390x):
 
   # crossdev -t s390x-unknown-linux-gnu
   # (optional) ARCH=s390 PORTAGE_CONFIGROOT=/usr/s390x-unknown-linux-gnu eselect profile set default/linux/s390/17.0/s390x
@@ -30,7 +30,7 @@ You can use qemu-user to run this binary:
   $ qemu-s390x -L /usr/s390x-unknown-linux-gnu/ /usr/s390x-unknown-linux-gnu/bin/busybox uname -m
   s390x
 
-or even chroot to /usr/s390x-unknown-linux-gnu directory!
+or even chroot to the /usr/s390x-unknown-linux-gnu directory!
 
 https://wiki.gentoo.org/wiki/Crossdev_qemu-static-user-chroot
 
@@ -120,7 +120,7 @@ If toolchains were simple programs crossdev would be a one-liner script:
   ROOT=...    \
       emerge "$@"
 
-Unfortunately todays' toolchains have loops in their build-time dependencies:
+Unfortunately today's toolchains have cycles/loops in their build-time dependencies:
 
 - cross-compiler itself normally needs a libc built for <target> because
   libc defines various aspects of userland ABI and features provided.
@@ -153,11 +153,13 @@ Done!
 How crossdev works (more details)
 ---------------------------------
 
-This section contains more details on what actually happens.
+This section contains more details on what actually happens (what crossdev
+does for you).
+
 Here we elaborate on each step outlined in previous section:
 
 1. create an overlay with new ebuilds (symlinks to existing ebuilds)
-   <skipping numeruos mkdir and ln commands>. After this step the
+   <skipping numerous mkdir and ln commands>. After this step the
    outcomes are:
 
    - overlay layout is formed in cross-overlay/:
@@ -262,19 +264,19 @@ Various notes (AKA dirty little tricks)
   Some ./configure scripts rely on runtime feature testing. We would
   still like to enable things even in cross-environment.
 
-  crossdev installs /usr/share/config.site with a bunch of cache
+  crossdev installs /usr/share/config.site.d/80crossdev.conf with a bunch of cache
   variables preset for targets. It might be a nice place to drop
   more things into. Or it could be a source of all your cross-compilation
   problems if variables set incorrect values.
 
 - eclass importing
 
-  To find out various things about target crossdev loads multilib.eclass
-  and tries to find out default ABI supported by the target.
+  To find out various things about the target, crossdev loads multilib.eclass
+  and tries to find out the default ABI supported by the target.
 
 - crossdev is just a tiny shell script around emerge :)
 
-  It's full source code is comparable to the size of this README.
+  Its full source code is comparable to the size of this README.
 
 - USE=headers-only
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-04 11:52 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-04 11:52 UTC (permalink / raw
  To: gentoo-commits

commit:     250ce4a1e3661118f30626d5be4a597d27843615
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 11:51:04 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May  4 11:51:04 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=250ce4a1

crossdev: fix whitespace

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 5eef531..90381f9 100755
--- a/crossdev
+++ b/crossdev
@@ -1439,7 +1439,7 @@ set_metadata() {
 	fi
 
 	# build up a list of possible repos where we can pull from
-	for d in "${BOVL}" "${GOVL}" "${KOVL}" "${LOVL}" "${ROVL}"  "${DOVL}" ${SEARCH_OVERLAYS} "${MAIN_REPO_PATH}" ; do
+	for d in "${BOVL}" "${GOVL}" "${KOVL}" "${LOVL}" "${ROVL}" "${DOVL}" ${SEARCH_OVERLAYS} "${MAIN_REPO_PATH}" ; do
 		[[ -z ${d} ]] && continue
 
 		name=


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-04 11:52 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-04 11:52 UTC (permalink / raw
  To: gentoo-commits

commit:     fbbcdd8e4ba2dd77c6161745b43602dd69a1e096
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 11:52:49 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May  4 11:52:49 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=fbbcdd8e

crossdev: tweak comment

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 48a848c..af47349 100755
--- a/crossdev
+++ b/crossdev
@@ -315,7 +315,7 @@ parse_target() {
 			KPKG="[none]";
 			LCAT="dev-util"
 			LPKG="mingw64-runtime"
-			WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
+			WITH_DEF_HEADERS="yes" # gcc can't bootstrap without headers: bug #693770
 			GMASK+=" default-stack-clash-protection hardened"
 			GUSE+=" -default-stack-clash-protection -hardened" # gcc ICEs as libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc
 			;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-04 11:52 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-04 11:52 UTC (permalink / raw
  To: gentoo-commits

commit:     5bff6e60922c7eaa7ea9e8d11b7ee43ef467c994
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 11:51:15 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May  4 11:51:15 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=5bff6e60

crossdev: crank copyright

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 90381f9..48a848c 100755
--- a/crossdev
+++ b/crossdev
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 CROSSDEV_VER="@CDEVPV@"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-04 11:48 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-04 11:48 UTC (permalink / raw
  To: gentoo-commits

commit:     9e889bc74012c4d7bedb9f7fa31d6625be93cf3c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 11:44:11 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May  4 11:47:05 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=9e889bc7

crossdev: write profiles/repo_name

PMS requires it, the key in layout.conf isn't enough. Noticed after
pkgcraft rightly complained about it.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/crossdev b/crossdev
index 7a5ad37..1a63bb8 100755
--- a/crossdev
+++ b/crossdev
@@ -1490,6 +1490,12 @@ set_metadata() {
 	$(printf '%b' "${this_manifests}")
 	EOF
 
+	if [[ ! -f "${CROSSDEV_OVERLAY}"/profiles/repo_name ]] ; then
+		cat <<-EOF > "${CROSSDEV_OVERLAY}"/profiles/repo_name || die "could not write ${CROSSDEV_OVERLAY}/profiles/repo_name"
+		${repo_name}
+		EOF
+	fi
+
 	# If there is no repos.conf entry for the output overlay, create one here
 	if [[ -n ${CROSSDEV_OVERLAY_CREATE_REPOS_CONF} ]]; then
 		cat <<-EOF > "${CROSSDEV_OVERLAY_CREATE_REPOS_CONF}" || die "could not create the repo conf"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-05-04 11:48 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-05-04 11:48 UTC (permalink / raw
  To: gentoo-commits

commit:     c012baee91797ddbd87fa26f4cb73c9a58de3c0c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 11:47:08 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May  4 11:47:33 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=c012baee

crossdev: declare EAPI in profiles/

Declare the EAPI in profiles/, otherwise we're EAPI 0. pkgcraft rightly
complains about this.

* Similar to 9e889bc74012c4d7bedb9f7fa31d6625be93cf3c.
* See also 7f2f74f4e471172ceeceb78913fd8f8c88aa031d in app-eselect/eselect-repository.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/crossdev b/crossdev
index 1a63bb8..5eef531 100755
--- a/crossdev
+++ b/crossdev
@@ -1496,6 +1496,12 @@ set_metadata() {
 		EOF
 	fi
 
+	if [[ ! -f "${CROSSDEV_OVERLAY}"/profiles/eapi ]] ; then
+		cat <<-EOF > "${CROSSDEV_OVERLAY}"/profiles/eapi || die "could not write ${CROSSDEV_OVERLAY}/profiles/eapi"
+		${repo_name}
+		EOF
+	fi
+
 	# If there is no repos.conf entry for the output overlay, create one here
 	if [[ -n ${CROSSDEV_OVERLAY_CREATE_REPOS_CONF} ]]; then
 		cat <<-EOF > "${CROSSDEV_OVERLAY_CREATE_REPOS_CONF}" || die "could not create the repo conf"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-01-26  9:31 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-01-26  9:31 UTC (permalink / raw
  To: gentoo-commits

commit:     a5daa83d8dd73d73035403aa57b24f7e057e4e19
Author:     Alfred Persson Forsberg <cat <AT> catcream <DOT> org>
AuthorDate: Fri Jan 26 00:05:30 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan 26 09:30:46 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=a5daa83d

llvm.conf: set AS="clang -c" instead of llvm-as

Bug: https://bugs.gentoo.org/680652
Signed-off-by: Alfred Persson Forsberg <cat <AT> catcream.org>
Closes: https://github.com/gentoo/crossdev/pull/18
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 8788747..7a5ad37 100755
--- a/crossdev
+++ b/crossdev
@@ -1594,7 +1594,7 @@ esac
 if [[ "${LLVM}" == "yes" ]] ; then
 	cat <<-EOF > "${CONFIGROOT}/env/${CROSSDEV_OVERLAY_CATEGORY}/llvm.conf"
 	AR=llvm-ar
-	AS=llvm-as
+	AS="${CTARGET}-clang -c"
 	CC="${CTARGET}-clang"
 	CROSS_COMPILE="${CTARGET}-"
 	CXX="${CTARGET}-clang++"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2024-01-17  4:51 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2024-01-17  4:51 UTC (permalink / raw
  To: gentoo-commits

commit:     7aadbdb87851afeebae018b00679acfd105a21a5
Author:     Krzesimir Nowak <knowak <AT> microsoft <DOT> com>
AuthorDate: Tue Jan 16 16:21:11 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jan 17 04:51:20 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=7aadbdb8

crossdev: Make dev-debug a default category for gdb

The sys-devel/gdb package was moved to dev-debug category, so reflect
this change in the script.

Signed-off-by: Krzesimir Nowak <knowak <AT> microsoft.com>
Closes: https://github.com/gentoo/crossdev/pull/17
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 94313b9..8788747 100755
--- a/crossdev
+++ b/crossdev
@@ -853,7 +853,7 @@ BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL="" BMASK
 GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL="" GMASK="" GFORCE=""
 KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" KUSE="" KENV="" KOVL="" KMASK="" KFORCE=""
 LCAT="sys-libs"   ; LPKG="[none]"        ; LVER="" LUSE="" LENV="" LOVL="" LMASK="" LFORCE=""
-DCAT="sys-devel"  ; DPKG="gdb"           ; DVER="" DUSE="" DENV="" DOVL="" DMASK="" DFORCE=""
+DCAT="dev-debug"  ; DPKG="gdb"           ; DVER="" DUSE="" DENV="" DOVL="" DMASK="" DFORCE=""
 RCAT="sys-libs"   ; RPKG="compiler-rt"   ; RVER="" RUSE="" RENV="" ROVL="" RMASK="" RFORCE=""
 CCAT="sys-devel"  ; CPKG="clang-crossdev-wrappers" ; CVER="" CUSE="" CENV="" COVL="" CMASK="" CFORCE=""
 XPKGS=() XVERS=() XUSES=() XENVS=() XOVLS=() XMASKS=() XFORCES=()


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-09-26 18:30 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-09-26 18:30 UTC (permalink / raw
  To: gentoo-commits

commit:     90995af1950ac42dbb8795450dabd93de6d15dc3
Author:     Nathan Du <nathandu <AT> outlook <DOT> com>
AuthorDate: Tue Sep 26 07:39:19 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Sep 26 18:30:18 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=90995af1

make riscv targets use riscv portage arch

Closes: https://bugs.gentoo.org/914725
Signed-off-by: Nathan Du <nathandu <AT> outlook.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index f6ad232..94313b9 100755
--- a/crossdev
+++ b/crossdev
@@ -244,6 +244,7 @@ parse_target() {
 		mips*)      TARCH=mips;;
 		powerpc64*) TARCH=ppc64;;
 		powerpc*)   TARCH=ppc;;
+		riscv*)     TARCH=riscv;;
 		sparc*)     TARCH=sparc;;
 		s390*)      TARCH=s390;;
 		sh*)        TARCH=sh;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-09-23 12:26 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-09-23 12:26 UTC (permalink / raw
  To: gentoo-commits

commit:     c92086906ae712ffe5cd5dde9ad470f3950695d8
Author:     Benjamin Gilbert <bgilbert <AT> backtick <DOT> net>
AuthorDate: Sat Sep 23 11:09:50 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep 23 12:21:29 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=c9208690

Fix check for installed LLVM

It always succeeds, and then if LLVM isn't installed, crossdev fails with
a confusing error:

    Target architecture not supported by installed LLVM toolchain

Signed-off-by: Benjamin Gilbert <bgilbert <AT> backtick.net>
Closes: https://github.com/gentoo/crossdev/pull/14
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index b84b757..f6ad232 100755
--- a/crossdev
+++ b/crossdev
@@ -1722,7 +1722,7 @@ if ! ex_fast ; then
 
 	# stage 0: binutils
 	if [[ "${LLVM}" == "yes" ]] ; then
-		if [[ $(portageq has_version / "sys-devel/llvm") -ne 0 ]] ; then
+		if ! portageq has_version / "sys-devel/llvm" ; then
 			eerror "LLVM is not installed"
 			exit 1
 		fi


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-08-31  1:32 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-08-31  1:32 UTC (permalink / raw
  To: gentoo-commits

commit:     d787403e6b0a7715cc9a90024f7554690dd081bb
Author:     Alfred Persson Forsberg <cat <AT> catcream <DOT> org>
AuthorDate: Thu Aug 31 01:26:29 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Aug 31 01:32:14 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d787403e

LLVM/Clang: abort early if libc is glibc

Signed-off-by: Alfred Persson Forsberg <cat <AT> catcream.org>
Closes: https://github.com/gentoo/crossdev/pull/12
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/crossdev b/crossdev
index c1b59de..b84b757 100755
--- a/crossdev
+++ b/crossdev
@@ -966,6 +966,8 @@ done
 if [[ "${LLVM}" == "yes" ]] ; then
 	WITH_HEADERS="yes"
 	CROSSDEV_OVERLAY_CATEGORY_PREFIX="cross_llvm-"
+    # To avoid bug reports
+    [[ "${LPKG}" == "glibc" ]] && die "LLVM/Clang cannot currently compile glibc"
 fi
 
 CROSSDEV_OVERLAY_CATEGORY="${CROSSDEV_OVERLAY_CATEGORY_PREFIX}${CTARGET}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-08-31  1:15 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-08-31  1:15 UTC (permalink / raw
  To: gentoo-commits

commit:     7c2e00bf7c5f2ea52c2687e39cad70344c8596e2
Author:     Alfred Persson Forsberg <cat <AT> catcream <DOT> org>
AuthorDate: Wed Aug 30 11:01:15 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Aug 31 01:15:44 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=7c2e00bf

fix x86 in LLVM targets check

previously it would match CTARGET for amd64*.

Signed-off-by: Alfred Persson Forsberg <cat <AT> catcream.org>
Closes: https://github.com/gentoo/crossdev/pull/11
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 29adbeb..c1b59de 100755
--- a/crossdev
+++ b/crossdev
@@ -1730,7 +1730,7 @@ if ! ex_fast ; then
 
 		llvm_arch=""
 		case ${CTARGET} in
-			amd64*) llvm_arch="X86" ;;
+			x86*) llvm_arch="X86" ;;
 			arm*) llvm_arch="ARM" ;;
 			aarch64*) llvm_arch="AArch64" ;;
 			riscv*) llvm_arch="RISCV" ;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-03-21 22:41 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-03-21 22:41 UTC (permalink / raw
  To: gentoo-commits

commit:     32b6409942f31a8029d27ae3470d4338a8ae4d5d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 21 22:41:19 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 21 22:41:37 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=32b64099

crossdev: initial nvptx-none porting

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/crossdev b/crossdev
index 2282826..befce40 100755
--- a/crossdev
+++ b/crossdev
@@ -283,6 +283,12 @@ parse_target() {
 			WITH_DEF_HEADERS="no"
 			;;
 
+		nvptx*)
+			BPKG="nvptx-tools"
+			LPKG="newlib"
+			STAGE_DEFAULT=${STAGE_LIBC}
+			;;
+
 		# due to upstream lameness, build C/C++ at first glance
 		*-cygwin)
 			GUSE_DISABLE_STAGE_1+=" -nocxx cxx"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-02-25  1:14 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-02-25  1:14 UTC (permalink / raw
  To: gentoo-commits

commit:     45ec770440ce8b23673546a7d119656bfd4b1208
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 25 01:13:44 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Feb 25 01:14:39 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=45ec7704

crossdev: delete ${CTARGET}-ebuild too on --clean

Fixes: c4cf9b41b4b7b7bc36d3878383666a77d51c804b
Fixes: 7eeb1d8f8fbb712706165e780c9b2904e4da7b92
Fixes: 748fcd09f89d10b8cf85d11dc574aad3896281d9
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 2299661..2282826 100755
--- a/crossdev
+++ b/crossdev
@@ -682,7 +682,7 @@ uninstall() {
 
 	# clean out files from crossdev itself
 	[[ -e ${EPREFIX}/var/db/pkg/cross-${CTARGET} ]] && rmdir "${EPREFIX}"/var/db/pkg/cross-${CTARGET}
-	rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} "${EPREFIX}"/usr/bin/emerge-${CTARGET}
+	rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{emerge,ebuild,fix-root,pkg-config} "${EPREFIX}"/usr/bin/emerge-${CTARGET}
 
 	for f in make.{conf,globals,profile} ; do
 		f="${EPREFIX}/usr/${CTARGET}/etc/${f}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-02-02 17:40 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-02-02 17:40 UTC (permalink / raw
  To: gentoo-commits

commit:     f8695a7d33d03250bacc1dd833653adda34c357a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Feb  2 17:04:28 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Feb  2 17:13:55 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=f8695a7d

crossdev: style tweaks

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 125 ++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 76 insertions(+), 49 deletions(-)

diff --git a/crossdev b/crossdev
index bd13f7f..2299661 100755
--- a/crossdev
+++ b/crossdev
@@ -244,21 +244,23 @@ parse_target() {
 		# this is a linux+ target, not microcontroller (below)
 		avr32*) :;;
 
-		avr*) KPKG="[none]"
-		      LCAT="dev-embedded"
-		      LPKG="avr-libc"
-		      GUSE+=" -fortran -go" # doesn't work
-		      MULTILIB_USE="yes" #377039
-		      BUSE+=" cxx"
-		      STAGE_DEFAULT=${STAGE_LIBC}
-		      WITH_DEF_HEADERS="no";;
+		avr*)
+			KPKG="[none]"
+			LCAT="dev-embedded"
+			LPKG="avr-libc"
+			GUSE+=" -fortran -go" # doesn't work
+			MULTILIB_USE="yes" #377039
+			BUSE+=" cxx"
+			STAGE_DEFAULT=${STAGE_LIBC}
+			WITH_DEF_HEADERS="no"
+			;;
 
 		# Has no glibc support yet (or even ABI defined). Can
 		# only compile linux kernel:
 		# https://parisc.wiki.kernel.org/index.php/Userspace64
 		hppa64*)
-		      STAGE_DEFAULT=${STAGE_C_ONLY}
-		      WITH_DEF_HEADERS="no";;
+			STAGE_DEFAULT=${STAGE_C_ONLY}
+			WITH_DEF_HEADERS="no";;
 
 		ia64*)
 			# gcc's libgcc needs glibc headers for unwinder.
@@ -275,58 +277,80 @@ parse_target() {
 
 		# added in bug #609602
 		mmix*)
-		      KPKG="[none]"
-		      LPKG="newlib"
-		      STAGE_DEFAULT=${STAGE_LIBC}
-		      WITH_DEF_HEADERS="no";;
+			KPKG="[none]"
+			LPKG="newlib"
+			STAGE_DEFAULT=${STAGE_LIBC}
+			WITH_DEF_HEADERS="no"
+			;;
 
 		# due to upstream lameness, build C/C++ at first glance
 		*-cygwin)
-		      GUSE_DISABLE_STAGE_1+=" -nocxx cxx";;
+			GUSE_DISABLE_STAGE_1+=" -nocxx cxx"
+			;;
 
 		# these are the mingw64 targets that binutils seems to use
 		x86_64-*-mingw*|*-w64-mingw*)
-		      KPKG="[none]";
-		      LCAT="dev-util"; LPKG="mingw64-runtime"
-		      WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
-		      GMASK+=" default-stack-clash-protection hardened"
-		      GUSE+=" -default-stack-clash-protection -hardened" # gcc ICEs as libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc
-		      ;;
+			KPKG="[none]";
+			LCAT="dev-util"
+			LPKG="mingw64-runtime"
+			WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
+			GMASK+=" default-stack-clash-protection hardened"
+			GUSE+=" -default-stack-clash-protection -hardened" # gcc ICEs as libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc
+			;;
 
 		mingw*|*-mingw*)
-		      # bug #584858
-		      die "'${CTARGET}' target is not supported anymore, use i686-w64-mingw32"
-		      ;;
+			# bug #584858
+			die "'${CTARGET}' target is not supported anymore, use i686-w64-mingw32"
+			;;
 
-		spu*) TARCH=ppc64;
-		      KPKG="[none]";
-		      LPKG="newlib";;
-		ppu*) TARCH=ppc64;;
+		spu*)
+			TARCH=ppc64
+			KPKG="[none]"
+			LPKG="newlib"
+			;;
+		ppu*)
+			TARCH=ppc64
+			;;
 
 		mips64*-gnuabin32|mipsisa64*-gnuabin32)
-		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="n32";;
-		mips64*-gnuabi64|mipsisa64*-gnuabi64|\
-		mips64*-gnuabin64|mipsisa64*-gnuabin64)
-		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="n64";;
-		mips64*-gnuabi32|mipsisa64*-gnuabi32|\
-		mips64*-gnuabio32|mipsisa64*-gnuabio32)
-		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="o32";;
+			[[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="n32"
+			;;
+		mips64*-gnuabi64|mipsisa64*-gnuabi64|mips64*-gnuabin64|mipsisa64*-gnuabin64)
+			[[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="n64"
+			;;
+		mips64*-gnuabi32|mipsisa64*-gnuabi32|mips64*-gnuabio32|mipsisa64*-gnuabio32)
+			[[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="o32"
+			;;
 	esac
 
 	# Tweak packages based upon CTARGET
 	case ${CTARGET} in
 		# Normal Linux host, just diff libc
-		*-dietlibc) LPKG="dietlibc"; LCAT="dev-libs";;
-		*-gnu*)     LPKG="glibc";;
-		*-klibc)    LPKG="klibc";;
-		*-uclibc*)  LPKG="uclibc-ng";;
-		*-uclinux)  LPKG="uclibc-ng";;
-		*-musl*)    LPKG="musl";;
+		*-dietlibc)
+			LPKG="dietlibc"
+			LCAT="dev-libs"
+			;;
+		*-gnu*)
+			LPKG="glibc"
+			;;
+		*-klibc)
+			LPKG="klibc"
+			;;
+		*-uclibc*)
+			LPKG="uclibc-ng"
+			;;
+		*-uclinux)
+			LPKG="uclibc-ng"
+			;;
+		*-musl*)
+			LPKG="musl"
+			;;
 
 		# Windows targets
 		*-cygwin)
-			LCAT="dev-libs"; LPKG="cygwin";
-			KPKG="[none]";
+			LCAT="dev-libs"
+			LPKG="cygwin"
+			KPKG="[none]"
 			;;
 
 		# Bare metal targets
@@ -407,10 +431,13 @@ parse_target() {
 	case ${CTARGET} in
 		# [1.]: no -fPIC flag support:
 		#       check as '$CC -fPIC -c -x c - </dev/null'
-		avr*|mmix*) pie_support=no;;
+		avr*|mmix*)
+			pie_support=no
+			;;
 		# [2.] mingw32 startup code is broken: bug #644930
 		#      at least on i686-w64-mingw32 and x86_64-w64-mingw32
-		mingw*|*-mingw*) pie_support=no;;
+		mingw*|*-mingw*) pie_support=no
+			;;
 		# Many bare-metal targets don't work with pie as-is
 		*-elf|*-eabi)
 			# mips can't generate freestanding PIC:
@@ -422,7 +449,7 @@ parse_target() {
 			;;
 	esac
 	# Running a hardened profile on the host forces pie #831165
-	if [[ $pie_support = "no" ]]; then
+	if [[ ${pie_support} == "no" ]]; then
 		# pie is >=gcc-6, nopie is <gcc-6
 		GMASK+=" pie -nopie"
 		GFORCE+=" nopie"
@@ -438,7 +465,7 @@ parse_target() {
 		alpha*|avr*|hppa*|ia64*|mmix*|nios2*) ssp_support=no;;
 	esac
 	# Running a hardened profile on the host forces ssp #831165
-	if [[ $ssp_support = "no" ]]; then
+	if [[ ${ssp_support} == "no" ]]; then
 		# ssp is >=gcc-6, nossp is <gcc-6
 		# blacklist hardened too because it'll force -fstack-clash-protection
 		GMASK+=" default-stack-clash-protection ssp hardened -nossp"
@@ -1451,9 +1478,9 @@ emerge-wrapper --target ${CTARGET} --init || exit 1
 ### Create directories usually created by sys-apps/baselayout
 ###
 ### Why we do that at all:
-### For multilib-aware targets (ppc64, s390x, sparc64, x86_64) Gentoo
+### For multilib-aware targets (ppc64, s390x, sparc64, x86_64), Gentoo
 ### normally uses libdir=lib64.
-### For crossdev it means /lib and /usr/lib does not get created at all
+### For crossdev, it means /lib and /usr/lib does not get created at all
 ### but gcc relies on their presence by refering to =/lib64 as
 ### =/usr/lib/../lib64 when builds itself (see https://bugs.gentoo.org/652724)
 ###


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-02-02 17:40 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-02-02 17:40 UTC (permalink / raw
  To: gentoo-commits

commit:     47c9af8ca53f3612be6e4ddfb0090644cde4d94a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Feb  2 17:03:53 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Feb  2 17:03:53 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=47c9af8c

crossdev: disable SSP for freestanding/no libc targets

Otherwise, we end up with a mess like:
```
[...]
/usr/libexec/gcc/arm-none-eabi/ld: /usr/lib/gcc/arm-none-eabi/12/../../../../arm-none-eabi/lib/libg.a(libc_a-stack_protector.o): in function `__stack_chk_fail':
stack_protector.c:(.text.__stack_chk_fail+0x60): undefined reference to `_exit'
[...]
```

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 902d9dc..bd13f7f 100755
--- a/crossdev
+++ b/crossdev
@@ -334,10 +334,11 @@ parse_target() {
 			LPKG="newlib"
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
-			GMASK+=" hardened"
+			GMASK+=" default-stack-clash-protection hardened ssp"
 			GUSE+=" cxx -openmp" #489798
 			GUSE+=" -fortran" #589672, needs syscalls
 			GUSE+=" -hardened" #687598, needs -fstack-check=specific support
+			GUSE+=" -default-stack-clash-protection -ssp" # SSP isn't supported for freestanding anyway
 			MULTILIB_USE="yes" #407275
 			WITH_DEF_HEADERS="no"
 			;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2023-01-14 17:58 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2023-01-14 17:58 UTC (permalink / raw
  To: gentoo-commits

commit:     dd89e2ff97e249a0800660cd6d135ff161e30ed0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 14 17:58:08 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jan 14 17:58:08 2023 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=dd89e2ff

crossdev: add TODO re picking versions from overlays & best version

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/crossdev b/crossdev
index de9ce7a..902d9dc 100755
--- a/crossdev
+++ b/crossdev
@@ -1225,6 +1225,8 @@ set_links() {
 					;;
 			esac
 
+			# TODO: Import eapi7-ver.eclass and prefer the best version
+			# rather than just the first we find.
 			if grep -qre "KEYWORDS=.*${search_kw_string}" "${s}/${cat}/${pkg}" ; then
 				# ... so only skip if we found one which is at least stable.
 				srcdir=${s}


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-12-28 15:17 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-12-28 15:17 UTC (permalink / raw
  To: gentoo-commits

commit:     82dd3e00f1838f3ce00c4a156e67d73bbb1a2760
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 28 15:17:40 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Dec 28 15:17:40 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=82dd3e00

crossdev: adapt to new USE=default-stack-clash-protection

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index caf912e..de9ce7a 100755
--- a/crossdev
+++ b/crossdev
@@ -289,8 +289,8 @@ parse_target() {
 		      KPKG="[none]";
 		      LCAT="dev-util"; LPKG="mingw64-runtime"
 		      WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
-		      GUSE+=" -hardened" # gcc ICEs as libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc
-		      GMASK+=" hardened"
+		      GMASK+=" default-stack-clash-protection hardened"
+		      GUSE+=" -default-stack-clash-protection -hardened" # gcc ICEs as libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc
 		      ;;
 
 		mingw*|*-mingw*)
@@ -440,7 +440,7 @@ parse_target() {
 	if [[ $ssp_support = "no" ]]; then
 		# ssp is >=gcc-6, nossp is <gcc-6
 		# blacklist hardened too because it'll force -fstack-clash-protection
-		GMASK+=" ssp hardened -nossp"
+		GMASK+=" default-stack-clash-protection ssp hardened -nossp"
 		GFORCE+=" nossp"
 	fi
 }


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-12-28 15:17 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-12-28 15:17 UTC (permalink / raw
  To: gentoo-commits

commit:     0f55fd20c5d70f84bbf009a8f4c08ad1558ba9b0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 28 15:17:09 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Dec 28 15:17:09 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=0f55fd20

crossdev: force off hardened in more cases (avoid leaking hardened from host)

See: c439961a06625b27d39d683beee00e8c3a54005f
See: cb41e7e05c55f6ef64e7a617869bbb644899e724
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/crossdev b/crossdev
index 1b37e47..caf912e 100755
--- a/crossdev
+++ b/crossdev
@@ -290,6 +290,7 @@ parse_target() {
 		      LCAT="dev-util"; LPKG="mingw64-runtime"
 		      WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
 		      GUSE+=" -hardened" # gcc ICEs as libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc
+		      GMASK+=" hardened"
 		      ;;
 
 		mingw*|*-mingw*)
@@ -333,6 +334,7 @@ parse_target() {
 			LPKG="newlib"
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
+			GMASK+=" hardened"
 			GUSE+=" cxx -openmp" #489798
 			GUSE+=" -fortran" #589672, needs syscalls
 			GUSE+=" -hardened" #687598, needs -fstack-check=specific support


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-11-18 17:57 Mike Gilbert
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Gilbert @ 2022-11-18 17:57 UTC (permalink / raw
  To: gentoo-commits

commit:     f7af005b835e7fee7cb9990fa551128e3fc480a5
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 18 17:34:50 2022 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Nov 18 17:34:50 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=f7af005b

Revert "crossdev: clean world file on uninstall"

This hack is unnecessary if we use emerge for uninstalls instead.

Reverts: bec5fd6a5597f736a868e79017f99b5bc79a9dbf
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 crossdev | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/crossdev b/crossdev
index 6c3a3e4..1b37e47 100755
--- a/crossdev
+++ b/crossdev
@@ -584,9 +584,6 @@ uninstall() {
 	ewarn "Uninstalling target '${CTARGET}' ..."
 
 	# clean out portage config files
-	if grep -qs "^cross-${CTARGET}/" "${EPREFIX}"/var/lib/portage/world ; then
-		sed -i "/^cross-${CTARGET}/d" "${EPREFIX}"/var/lib/portage/world
-	fi
 	if [[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]]; then
 		rm -r "${CROSSDEV_OVERLAY}"/cross-${CTARGET}
 		# if we remove all the package in the category,


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-11-18 17:57 Mike Gilbert
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Gilbert @ 2022-11-18 17:57 UTC (permalink / raw
  To: gentoo-commits

commit:     10a87d6f135b30140a168190b408c49daf8a15ae
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 23 15:19:26 2022 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Sep 23 15:23:24 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=10a87d6f

Call emerge instead of qmerge to unmerge packages

qmerge does not remove packages from the world file.
Also, this allows us to drop the dependency on portage-utils.

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 6b868f8..6c3a3e4 100755
--- a/crossdev
+++ b/crossdev
@@ -638,7 +638,7 @@ uninstall() {
 	rmdir "${EPREFIX}"/etc/revdep-rebuild 2>/dev/null
 
 	# Unmerge all toolchain packages for this target.
-	qmerge -Uqy $(qlist -IC "cross-${CTARGET}/")
+	emerge -q --rage-clean "cross-${CTARGET}/*"
 
 	# clean out known toolchain files (binutils/gcc)
 	for f in \


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-07-09  3:45 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-07-09  3:45 UTC (permalink / raw
  To: gentoo-commits

commit:     718184e68a99cad05475854c136ab4664da12dee
Author:     Krzesimir Nowak <knowak <AT> microsoft <DOT> com>
AuthorDate: Wed Jul  6 19:44:21 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jul  9 03:45:00 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=718184e6

crossdev: Fix matching of stable keywords

Not sure how this worked before - in our case emerge couldn't find a
matching ebuild any more when requesting stable versions.

Signed-off-by: Krzesimir Nowak <knowak <AT> microsoft.com>
Closes: https://github.com/gentoo/crossdev/pull/3
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 954d2ce..6b868f8 100755
--- a/crossdev
+++ b/crossdev
@@ -1219,7 +1219,7 @@ set_links() {
 
 			case "${LVER}" in
 				"[stable]")
-					search_kw_string="^[~]${TARCH}"
+					search_kw_string="[^~]${TARCH}"
 					;;
 				*)
 					search_kw_string="${TARCH}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-07-09  3:45 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-07-09  3:45 UTC (permalink / raw
  To: gentoo-commits

commit:     e4acb756ed5c898e4b244807fa5d3d14464765ea
Author:     Krzesimir Nowak <knowak <AT> microsoft <DOT> com>
AuthorDate: Thu Jul  7 12:56:57 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jul  9 03:45:00 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=e4acb756

crossdev: Fall back to default version for gdb too

Passing `--stable` didn't affect the version of built GDB, thus we
needed to pass `--gdb '[stable]'` on our own.

Signed-off-by: Krzesimir Nowak <knowak <AT> microsoft.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index a7566ba..8cc3693 100755
--- a/crossdev
+++ b/crossdev
@@ -900,6 +900,7 @@ BVER=${BVER:-${DEFAULT_VER}}
 GVER=${GVER:-${DEFAULT_VER}}
 KVER=${KVER:-${DEFAULT_VER}}
 LVER=${LVER:-${DEFAULT_VER}}
+DVER=${DVER:-${DEFAULT_VER}}
 STAGE=${STAGE:-${STAGE_DEFAULT}}
 [[ -z ${CTARGET} ]] && usage 1
 for with in HEADERS ; do


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-07-09  3:45 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-07-09  3:45 UTC (permalink / raw
  To: gentoo-commits

commit:     951e3f54dae6c815fbd89c16004c99b5c4c391ae
Author:     Krzesimir Nowak <knowak <AT> microsoft <DOT> com>
AuthorDate: Thu Jul  7 12:58:55 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jul  9 03:45:00 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=951e3f54

crossdev: Take gdb variables into account

When restoring user settings and when figuring out the list of repos.

Signed-off-by: Krzesimir Nowak <knowak <AT> microsoft.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 8cc3693..954d2ce 100755
--- a/crossdev
+++ b/crossdev
@@ -988,7 +988,7 @@ done
 
 # grab user settings
 d="${CONFIGROOT}/crossdev/${CTARGET}"
-for v in MULTILIB_ABIS USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS ASFLAGS ; do
+for v in MULTILIB_ABIS USE BVER GVER KVER LVER DVER STAGE CFLAGS LDFLAGS ASFLAGS ; do
 	if [[ -e ${d}/${v} ]] ; then
 		# yes, quotes are needed in this instance (export $var="...")
 		export ${v}="$(<"${d}"/${v})"
@@ -1347,7 +1347,7 @@ set_metadata() {
 	fi
 
 	# build up a list of possible repos where we can pull from
-	for d in "${BOVL}" "${GOVL}" "${KOVL}" "${LOVL}" ${SEARCH_OVERLAYS} "${MAIN_REPO_PATH}" ; do
+	for d in "${BOVL}" "${GOVL}" "${KOVL}" "${LOVL}" "${DOVL}" ${SEARCH_OVERLAYS} "${MAIN_REPO_PATH}" ; do
 		[[ -z ${d} ]] && continue
 
 		name=


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-05-02 23:19 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-05-02 23:19 UTC (permalink / raw
  To: gentoo-commits

commit:     cb41e7e05c55f6ef64e7a617869bbb644899e724
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon May  2 23:17:29 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon May  2 23:18:51 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=cb41e7e0

crossdev: force off USE=hardened where no SSP

This fixes e.g. hppa2.0-unknown-linux-gnu where the stack
grows up and hence we lack SSP, but also -fstack-clash-protection
which is forced on by USE=hardened.

glibc failed to build before this with:
```
checking for broken __attribute__((alias()))... yes
configure: error: working alias attribute support required
 * ERROR: cross-hppa2.0-unknown-linux-gnu/glibc-2.35-r4::crossdev failed (configure phase):
```

config.log:
```
configure:4199: checking if compiler warns about alias for function with incompatible types
cc1: error: '-fstack-clash-protection' is not supported on targets where the stack grows from lower to higher addresses [-Werror]
conftest.c:9:34: error: 'foo_alias' alias between functions of incompatible types 'int(const void *, int)' and 'int (*(void))(const void *, int)' [-Werror=attribute-alias=]
    9 | extern __typeof (__redirect_foo) foo_alias __attribute__ ((alias ("foo")));
      |                                  ^~~~~~~~~
conftest.c:4:28: note: aliased declaration here
    4 | __typeof (__redirect_foo) *foo_impl (void)
      |                            ^~~~~~~~
cc1: all warnings being treated as errors
```

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 7ec9a9d..a7566ba 100755
--- a/crossdev
+++ b/crossdev
@@ -437,7 +437,8 @@ parse_target() {
 	# Running a hardened profile on the host forces ssp #831165
 	if [[ $ssp_support = "no" ]]; then
 		# ssp is >=gcc-6, nossp is <gcc-6
-		GMASK+=" ssp -nossp"
+		# blacklist hardened too because it'll force -fstack-clash-protection
+		GMASK+=" ssp hardened -nossp"
 		GFORCE+=" nossp"
 	fi
 }


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-04-24 16:30 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-04-24 16:30 UTC (permalink / raw
  To: gentoo-commits

commit:     7bd38b79de36573ba1f19e9754fb78072993c387
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Mon Aug  9 13:22:30 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Apr 24 16:29:56 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=7bd38b79

crossdev: Add support for LoongArch (ARCH=loong)

Closes: https://bugs.gentoo.org/840431
Closes: https://github.com/gentoo/crossdev/pull/2
Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 README   |  1 +
 crossdev | 11 ++++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/README b/README
index 5c72e7b..d4198b2 100644
--- a/README
+++ b/README
@@ -60,6 +60,7 @@ executables or kernels if applies):
  i686-pc-gnu
  i686-w64-mingw32
  ia64-unknown-linux-gnu
+ loongarch64-unknown-linux-gnu
  m68k-unknown-linux-gnu
  mips-unknown-linux-gnu
  mips64-unknown-linux-gnu

diff --git a/crossdev b/crossdev
index d8e25fb..7ec9a9d 100755
--- a/crossdev
+++ b/crossdev
@@ -136,6 +136,7 @@ parse_target() {
 		   - hppa (parisc)
 		   - ia64
 		   - i386 / i486 / i586 / i686 (x86)
+		   - loongarch64
 		   - m68k
 		   - mips / mipsel / mips64 / mips64el
 		   - or1k
@@ -208,7 +209,7 @@ parse_target() {
 				CTARGET="${CTARGET}-unknown-linux-gnueabihf";;
 			arm*)
 				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
-			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|riscv*|sparc*|sh*|tile*)
+			aarch64*|alpha*|cris*|hppa*|ia64*|loongarch*|m68*|mips*|powerpc*|riscv*|sparc*|sh*|tile*)
 				CTARGET="${CTARGET}-unknown-linux-gnu";;
 			bfin*|h8300*|msp430*|nds32*|nios2*|spu*|xc16x*)
 				CTARGET="${CTARGET}-elf";;
@@ -223,6 +224,7 @@ parse_target() {
 		hppa*)      TARCH=hppa;;
 		ia64*)      TARCH=ia64;;
 		i?86*)      TARCH=x86;;
+		loongarch*) TARCH=loong;;
 		m68*)       TARCH=m68k;;
 		mips*)      TARCH=mips;;
 		powerpc64*) TARCH=ppc64;;
@@ -264,6 +266,13 @@ parse_target() {
 			WITH_DEF_HEADERS="yes"
 			;;
 
+		loongarch*)
+			# have to bring in the experimental LoongArch patchset before
+			# everything is upstream
+			KUSE+=" experimental-loong"
+			LUSE+=" experimental-loong"
+			;;
+
 		# added in bug #609602
 		mmix*)
 		      KPKG="[none]"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-04-19 20:25 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-04-19 20:25 UTC (permalink / raw
  To: gentoo-commits

commit:     b15c1d5f590a309d6015ae6f225fc1b4611ff427
Author:     Mikk Margus Möll <mikk.margus.moll <AT> eesti <DOT> ee>
AuthorDate: Tue Apr 19 18:01:54 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Apr 19 20:25:18 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b15c1d5f

crossdev: add quotes to set_keywords variable

Signed-off-by: Mikk Margus Möll <mikk.margus.moll <AT> eesti.ee>
Closes: https://github.com/gentoo/crossdev/pull/1
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index db9dbd5..d8e25fb 100755
--- a/crossdev
+++ b/crossdev
@@ -1304,7 +1304,7 @@ set_portage() {
 
 	set_use_mask ${pkg} "${mask}"
 	set_use_force ${pkg} "${force}"
-	set_keywords ${pkg} ${ver}
+	set_keywords ${pkg} "${ver}"
 	set_use ${pkg} ${use}
 	set_links ${cat} ${pkg} "${ovl}"
 	set_env ${l} ${pkg} "${env}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-03-17 23:42 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-03-17 23:42 UTC (permalink / raw
  To: gentoo-commits

commit:     e8bc12da4e22b0a1dc0d52f4ea01905b0ab3db2d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 17 23:42:26 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Mar 17 23:42:36 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=e8bc12da

crossdev: update copyright line

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 4e88913..db9dbd5 100755
--- a/crossdev
+++ b/crossdev
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 CROSSDEV_VER="@CDEVPV@"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-03-06  2:08 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-03-06  2:08 UTC (permalink / raw
  To: gentoo-commits

commit:     82b44f1d6efa18a9339e69a8f12ea1603ec8b48b
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  6 02:08:17 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Mar  6 02:08:17 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=82b44f1d

crossdev: fix typo in comment

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index fcf6a65..4e88913 100755
--- a/crossdev
+++ b/crossdev
@@ -898,7 +898,7 @@ for with in HEADERS ; do
 done
 
 # ::gentoo has no stable 'mingw64-runtime' or 'newlib'.
-# Let's default to 'latest' unles suser specified something else.
+# Let's default to 'latest' unless user specified something else.
 if [[ ${LPKG} == "mingw64-runtime" && ${LVER} == "[stable]" ]]; then
 	LVER="[latest]"
 fi


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-02-20  2:19 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-02-20  2:19 UTC (permalink / raw
  To: gentoo-commits

commit:     c439961a06625b27d39d683beee00e8c3a54005f
Author:     Oskari Pirhonen <xxc3ncoredxx <AT> gmail <DOT> com>
AuthorDate: Thu Jan 13 05:08:03 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Feb 20 02:04:16 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=c439961a

crossdev: use package.use.{mask,force} for pie/ssp

A hardened host profile forces the pie and ssp USE flags which is
overriding GUSE="-pie -ssp". Use package.use.mask and package.use.force
to control the flags.

Closes: https://bugs.gentoo.org/831165
Signed-off-by: Oskari Pirhonen <xxc3ncoredxx <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 45 +++++++++++++++++++++++++++++----------------
 1 file changed, 29 insertions(+), 16 deletions(-)

diff --git a/crossdev b/crossdev
index e2e01e8..fcf6a65 100755
--- a/crossdev
+++ b/crossdev
@@ -409,9 +409,11 @@ parse_target() {
 			pie_support=no
 			;;
 	esac
+	# Running a hardened profile on the host forces pie #831165
 	if [[ $pie_support = "no" ]]; then
 		# pie is >=gcc-6, nopie is <gcc-6
-		GUSE+=" -pie nopie"
+		GMASK+=" pie -nopie"
+		GFORCE+=" nopie"
 	fi
 
 	local ssp_support=yes
@@ -423,9 +425,11 @@ parse_target() {
 		#       check as '$CC -fstack-protector -c -x c - </dev/null'
 		alpha*|avr*|hppa*|ia64*|mmix*|nios2*) ssp_support=no;;
 	esac
+	# Running a hardened profile on the host forces ssp #831165
 	if [[ $ssp_support = "no" ]]; then
 		# ssp is >=gcc-6, nossp is <gcc-6
-		GUSE+=" -ssp nossp"
+		GMASK+=" ssp -nossp"
+		GFORCE+=" nossp"
 	fi
 }
 
@@ -726,6 +730,8 @@ for_each_extra_pkg() {
 		XUSE=${XUSES[i]} \
 		XENV=${XENVS[i]} \
 		XOVL=${XOVLS[i]} \
+		XMASK=${XMASKS[i]} \
+		XFORCE=${XFORCES[i]} \
 		"$@"
 	done
 }
@@ -775,12 +781,13 @@ MULTILIB_USE=""
 HOST_ABI="default"
 STAGE=""
 AENV=""
-BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL=""
-GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL=""
-KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" KUSE="" KENV="" KOVL=""
-LCAT="sys-libs"   ; LPKG="[none]"        ; LVER="" LUSE="" LENV="" LOVL=""
-DCAT="sys-devel"  ; DPKG="gdb"           ; DVER="" DUSE="" DENV="" DOVL=""
-XPKGS=() XVERS=() XUSES=() XENVS=() XOVLS=()
+# Only GMASK/GFORCE are currently used
+BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL="" BMASK="" BFORCE=""
+GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL="" GMASK="" GFORCE=""
+KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" KUSE="" KENV="" KOVL="" KMASK="" KFORCE=""
+LCAT="sys-libs"   ; LPKG="[none]"        ; LVER="" LUSE="" LENV="" LOVL="" LMASK="" LFORCE=""
+DCAT="sys-devel"  ; DPKG="gdb"           ; DVER="" DUSE="" DENV="" DOVL="" DMASK="" DFORCE=""
+XPKGS=() XVERS=() XUSES=() XENVS=() XOVLS=() XMASKS=() XFORCES=()
 DEFAULT_VER="[latest]"
 SEARCH_OVERLAYS=""
 CROSSDEV_OVERLAY=""
@@ -1273,9 +1280,9 @@ set_env() {
 }
 set_portage() {
 	local l=$1
-	eval set -- \${${l}CAT} \${${l}PKG} \"\${${l}VER}\" \"\${${l}ENV}\" \"\${${l}OVL}\"
-	local cat=$1 pkg=$2 ver=$3 env=$4 ovl=$5
-	shift 5
+	eval set -- \${${l}CAT} \${${l}PKG} \"\${${l}VER}\" \"\${${l}ENV}\" \"\${${l}OVL}\" \"\${${l}MASK}\" \"\${${l}FORCE}\"
+	local cat=$1 pkg=$2 ver=$3 env=$4 ovl=$5 mask=$6 force=$7
+	shift 7
 	local use=$*
 
 	[[ ${pkg} == "[none]" ]] && return 0
@@ -1283,14 +1290,20 @@ set_portage() {
 	case ${CTARGET} in
 		# avr requires multilib, that provides
 		# libgcc for all sub-architectures #378387
-		avr*)   set_use_force ${pkg} multilib
-			set_use_mask ${pkg} -multilib;;
+		avr*)
+			mask+=" -multilib"
+			force+=" multilib"
+			;;
 		*-newlib|*-elf|*-eabi)
-			set_use_force ${pkg} multilib;
-			set_use_mask ${pkg} -multilib;;
-		*)      set_use_force ${pkg} -multilib;;
+			mask+=" -multilib"
+			force+=" multilib"
+			;;
+		*)
+			mask+=" multilib";;
 	esac
 
+	set_use_mask ${pkg} "${mask}"
+	set_use_force ${pkg} "${force}"
 	set_keywords ${pkg} ${ver}
 	set_use ${pkg} ${use}
 	set_links ${cat} ${pkg} "${ovl}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-02-11 22:53 Andreas K. Hüttel
  0 siblings, 0 replies; 217+ messages in thread
From: Andreas K. Hüttel @ 2022-02-11 22:53 UTC (permalink / raw
  To: gentoo-commits

commit:     63338c99d5ee1e5b3b6d4eb99f4ddf438c36917e
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Feb  5 18:35:11 2022 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Feb  5 18:35:11 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=63338c99

Add some special riscv sauce. Ugly.

This is necessary since
* for glibc, the "fallback" libdir for 64bit is lib64
* for gcc, the "fallback" libdir for 64bit is lib

By providing the full multilib libdirs and a compatibility
symlink as in baselayout, the pieces fit together again.

riscv32 is kinda not affected since both gcc and glibc
use lib (NOT lib32, as in the multilib libdirs).

Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 crossdev | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/crossdev b/crossdev
index 287fd53..e2e01e8 100755
--- a/crossdev
+++ b/crossdev
@@ -1434,6 +1434,38 @@ emerge-wrapper --target ${CTARGET} --init || exit 1
 ### Thus we create non-symlinked layout early.
 xmkdir -p "${EPREFIX}"/usr/${CTARGET}/lib
 xmkdir -p "${EPREFIX}"/usr/${CTARGET}/usr/lib
+###
+### We need some special riscv sauce here similar as in baselayout. Ugly.
+### step 1: set up all multilib libdirs
+### step 2: set up the compat symlink of the default abi for non-multilib
+case ${CTARGET} in
+	riscv*)
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/lib64
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/lib64/lp64
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/lib64/lp64d
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/usr/lib64
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/usr/lib64/lp64
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/usr/lib64/lp64d
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/lib32
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/lib32/ilp32
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/lib32/ilp32d
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/usr/lib32
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/usr/lib32/ilp32
+			xmkdir -p "${EPREFIX}"/usr/${CTARGET}/usr/lib32/ilp32d
+			;;&
+	riscv64*)
+			rmdir "${EPREFIX}"/usr/${CTARGET}/lib64/${DEFAULT_ABI}
+			ln -s . "${EPREFIX}"/usr/${CTARGET}/lib64/${DEFAULT_ABI}
+			rmdir "${EPREFIX}"/usr/${CTARGET}/usr/lib64/${DEFAULT_ABI}
+			ln -s . "${EPREFIX}"/usr/${CTARGET}/usr/lib64/${DEFAULT_ABI}
+			;;
+	riscv32*)
+			rmdir "${EPREFIX}"/usr/${CTARGET}/lib32/${DEFAULT_ABI}
+			ln -s ../lib "${EPREFIX}"/usr/${CTARGET}/lib32/${DEFAULT_ABI}
+			rmdir "${EPREFIX}"/usr/${CTARGET}/usr/lib32/${DEFAULT_ABI}
+			ln -s ../lib "${EPREFIX}"/usr/${CTARGET}/usr/lib32/${DEFAULT_ABI}
+			;;
+esac
 
 #################
 emerged_with_use() {


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-01-31  2:06 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2022-01-31  2:06 UTC (permalink / raw
  To: gentoo-commits

commit:     65364fa2fa675ed05152f8fe5e4665cf262ed4b7
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 31 02:02:36 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jan 31 02:06:03 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=65364fa2

crossdev: don't pick ebuild version from overlay if unmatching KEYWORDS

We don't want to e.g. pick a GCC from an overlay if it doesn't
have KEYWORDS for our target, which then leads to an early
crossdev failure as it obviously can't then emerge GCC.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 806a66c..287fd53 100755
--- a/crossdev
+++ b/crossdev
@@ -1194,9 +1194,26 @@ set_links() {
 	fi
 	for s in ${ovl} ${SEARCH_OVERLAYS} ; do
 		if [[ -d ${s}/${cat}/${pkg} ]] ; then
-			srcdir=${s}
-			einfo "getting ${cat}/${pkg} from ${srcdir}"
-			break
+			# Versions in an additional non-crossdev overlay may not have the right keywords.
+			# e.g. suppose we have sys-devel/gcc in an overlay with just ~arch keywords.
+			# (Or not be keyworded for our target arch at all!)
+			local search_kw_string=
+
+			case "${LVER}" in
+				"[stable]")
+					search_kw_string="^[~]${TARCH}"
+					;;
+				*)
+					search_kw_string="${TARCH}"
+					;;
+			esac
+
+			if grep -qre "KEYWORDS=.*${search_kw_string}" "${s}/${cat}/${pkg}" ; then
+				# ... so only skip if we found one which is at least stable.
+				srcdir=${s}
+				einfo "getting ${cat}/${pkg} from ${srcdir}"
+				break
+			fi
 		fi
 	done
 	ln -s "${srcdir}"/${cat}/${pkg} "${d}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2022-01-28 12:30 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2022-01-28 12:30 UTC (permalink / raw
  To: gentoo-commits

commit:     95f9af2ff80b5c20103f7048303d5e6d9617cfda
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 28 12:30:20 2022 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Jan 28 12:30:20 2022 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=95f9af2f

crossdev: handle rtems targets via newlib

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

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index dbce501..806a66c 100755
--- a/crossdev
+++ b/crossdev
@@ -320,7 +320,7 @@ parse_target() {
 			;;
 
 		# Bare metal targets
-		*-newlib|*-elf|*-eabi)
+		*-newlib|*-elf|*-eabi|*-rtems*)
 			LPKG="newlib"
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-11-21 13:08 Sam James
  0 siblings, 0 replies; 217+ messages in thread
From: Sam James @ 2021-11-21 13:08 UTC (permalink / raw
  To: gentoo-commits

commit:     7f338ea13570c1d729177425097bf9a72491b902
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 21 13:07:54 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Nov 21 13:07:54 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=7f338ea1

Revert "crossdev: disable default ssp support on x86 and ppc on musl"

This should be working now -- we've imported fixed GCC to ::gentoo
from the musl overlay and we've unmasked + re-enabled SSP everywhere
other than crossdev anyway.

Bug: https://bugs.gentoo.org/706210
This reverts commit 3756849289a449ff09e329aaa7e26fbd5739805e.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 crossdev | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/crossdev b/crossdev
index 25b7acf..dbce501 100755
--- a/crossdev
+++ b/crossdev
@@ -422,9 +422,6 @@ parse_target() {
 		# [1.]: no -fstack-protector flag support:
 		#       check as '$CC -fstack-protector -c -x c - </dev/null'
 		alpha*|avr*|hppa*|ia64*|mmix*|nios2*) ssp_support=no;;
-		# [2.]: musl does not provide __stack_chk_fail_local:
-		#       and is broken on ARCH=x86 and ppc32: https://bugs.gentoo.org/706210
-		i[3-6]86-*-musl*|powerpc-*-musl*|powerpcle-*-musl*) ssp_support=no;;
 	esac
 	if [[ $ssp_support = "no" ]]; then
 		# ssp is >=gcc-6, nossp is <gcc-6


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-10-27 17:20 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2021-10-27 17:20 UTC (permalink / raw
  To: gentoo-commits

commit:     8de2bc98d6f618674d25da7850751c44db557f54
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 27 09:23:29 2021 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Oct 27 09:23:29 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=8de2bc98

crossdev: fix broken banner

The "prefixify build system and scripts" commit changed the banner
code for some reason, and the logic change was completely wrong.
So revert that.

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

 crossdev | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index ed75935..25b7acf 100755
--- a/crossdev
+++ b/crossdev
@@ -742,9 +742,9 @@ hr() {
 			|| c=${c##* }
 	fi
 	local ext=${1:-  _  -  ~  -}
-	local sext=${ext/?/ }
+	local sext=${ext//?/ }
 	local br=$(printf "%$((c + ${#ext}))s")
-	local banner=${br/${sext}/${ext}}
+	local banner=${br//${sext}/${ext}}
 	echo "${banner:0:${c}}"
 }
 ver_get_op() {


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-10-27  9:19 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2021-10-27  9:19 UTC (permalink / raw
  To: gentoo-commits

commit:     bec5fd6a5597f736a868e79017f99b5bc79a9dbf
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 27 09:19:31 2021 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Oct 27 09:19:31 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=bec5fd6a

crossdev: clean world file on uninstall

Closes: https://bugs.gentoo.org/676490
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

 crossdev | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/crossdev b/crossdev
index 6963d9d..ed75935 100755
--- a/crossdev
+++ b/crossdev
@@ -573,6 +573,9 @@ uninstall() {
 	ewarn "Uninstalling target '${CTARGET}' ..."
 
 	# clean out portage config files
+	if grep -qs "^cross-${CTARGET}/" "${EPREFIX}"/var/lib/portage/world ; then
+		sed -i "/^cross-${CTARGET}/d" "${EPREFIX}"/var/lib/portage/world
+	fi
 	if [[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]]; then
 		rm -r "${CROSSDEV_OVERLAY}"/cross-${CTARGET}
 		# if we remove all the package in the category,


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-10-27  8:56 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2021-10-27  8:56 UTC (permalink / raw
  To: gentoo-commits

commit:     47ee5ddb13ec874d6f776fe720a3ece604b27f09
Author:     Dan Callaghan <dcallagh <AT> google <DOT> com>
AuthorDate: Mon Oct 25 09:42:09 2021 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Oct 27 08:56:33 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=47ee5ddb

crossdev: add command-line options to override toolchain packages

For some unusual targets, it may be desirable to use a different package
name than the default. For example, a target might use picolibc instead
of newlib for its libc package, or it might use a different copy of the
gcc package than the usual sys-devel/gcc.

Closes: https://bugs.gentoo.org/820176
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

 crossdev | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/crossdev b/crossdev
index e3dd6fe..6963d9d 100755
--- a/crossdev
+++ b/crossdev
@@ -59,6 +59,8 @@ Options:
     ${GOOD}--env${NORMAL} env                Specify env settings for all packages (see below)
     ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gdb/gcc/kernel/libc
                                 Note: make sure to quote: 'VAR="some value"\nFOO="cow"'
+    ${GOOD}--[bdgkl]cat${NORMAL} category    Use binutils/gdb/gcc/kernel/libc package from category
+    ${GOOD}--[bdgkl]pkg${NORMAL} pkg         Use binutils/gdb/gcc/kernel/libc package with given name
     ${GOOD}-f, --force${NORMAL}              I don't need a seat belt!
     ${GOOD}-S, --stable${NORMAL}             Use latest stable versions as default
     ${GOOD}-C, --clean${NORMAL} target       Uninstall specified target
@@ -66,6 +68,7 @@ Options:
     ${GOOD}--with[out]-headers${NORMAL}      Build C library headers before C compiler?
     ${GOOD}--show-fail-log${NORMAL}          If the build fails, dump the failing log
 
+
 Overlay Options:
     ${GOOD}-oS, --overlays${NORMAL} list     Space delimited list of overlays to search
                                 [default: \`portageq repositories_configuration\`]
@@ -821,18 +824,28 @@ while [[ $# -gt 0 ]] ; do
 	--b|--binutils)    shift; BVER=$1;;
 	--benv)            shift; BENV=$1;;
 	-ob|--ov-binutils) shift; BOVL=$1;;
+	--bcat)            shift; BCAT=$1;;
+	--bpkg)            shift; BPKG=$1;;
 	--d|--gdb)         shift; DVER=$1;;
 	--denv)            shift; DENV=$1;;
 	-od|--ov-gdb)      shift; DOVL=$1;;
+	--dcat)            shift; DCAT=$1;;
+	--dpkg)            shift; DPKG=$1;;
 	--g|--gcc)         shift; GVER=$1;;
 	--genv)            shift; GENV=$1;;
 	-og|--ov-gcc)      shift; GOVL=$1;;
+	--gcat)            shift; GCAT=$1;;
+	--gpkg)            shift; GPKG=$1;;
 	--k|--kernel)      shift; KVER=$1;;
 	--kenv)            shift; KENV=$1;;
 	-ok|--ov-kernel)   shift; KOVL=$1;;
+	--kcat)            shift; KCAT=$1;;
+	--kpkg)            shift; KPKG=$1;;
 	--l|--libc)        shift; LVER=$1;;
 	--lenv)            shift; LENV=$1;;
 	-ol|--ov-libc)     shift; LOVL=$1;;
+	--lcat)            shift; LCAT=$1;;
+	--lpkg)            shift; LPKG=$1;;
 	-ox|--ov-extra)    shift; XOVLS+=( "$1" );;
 	--env)             shift; AENV=$1;;
 	-A|--abis)         shift; MULTILIB_ABIS=$1;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-10-27  8:55 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2021-10-27  8:55 UTC (permalink / raw
  To: gentoo-commits

commit:     382529803e066b4234af237dd97ee730adaef07e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 27 08:39:23 2021 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Oct 27 08:39:23 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=38252980

Revert "crossdev: follow ARCH=sh removal from ::gentoo"

This reverts commit d4773156d1fb82e26aceefec99355b2546febe23.

We maintain a complete list here at all times to keep it simple.

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

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index cde01c2..e3dd6fe 100755
--- a/crossdev
+++ b/crossdev
@@ -226,6 +226,7 @@ parse_target() {
 		powerpc*)   TARCH=ppc;;
 		sparc*)     TARCH=sparc;;
 		s390*)      TARCH=s390;;
+		sh*)        TARCH=sh;;
 		x86_64*)    TARCH=amd64;;
 		*)          TARCH="*";;
 	esac


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-07-17 23:38 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-07-17 23:38 UTC (permalink / raw
  To: gentoo-commits

commit:     5d7a0f2bd35ea01f24883bc2e21e1bda5458584e
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 17 23:37:58 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jul 17 23:37:58 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=5d7a0f2b

crossdev: disable USE=sanitize for gcc-stage2 as well

Reported-by: tt_1
Bug: https://bugs.gentoo.org/799707
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 57ffbb5..cde01c2 100755
--- a/crossdev
+++ b/crossdev
@@ -788,7 +788,10 @@ AUTOGEN_TAG="# Autogenerated and managed by crossdev"
 GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
 # These are disabled only for stage1 gcc. Normally need libc presence.
 GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go -jit -cxx -mpx -openmp -sanitize -vtv"
-GUSE_DISABLE_STAGE_2="${GUSE_DISABLE}"
+# These are also disabled for stage2, but could be used later if dependencies
+# are installed into ${SYSROOT}:
+# - sanitize needs crypt.h: #799707
+GUSE_DISABLE_STAGE_2="${GUSE_DISABLE} -sanitize"
 
 # mingw64-runtime needs a stage2 compiler to build libraries: https://bugs.gentoo.org/751295
 LUSE_DISABLE="-libraries"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-06-21 21:23 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-06-21 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     0d6117cbc17312f82dedca03b1bf5bc9eff37653
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 21 16:38:23 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jun 21 16:38:23 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=0d6117cb

README: override PORT_LOGDIR to dry-run tests

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README b/README
index 25e005e..5c72e7b 100644
--- a/README
+++ b/README
@@ -284,7 +284,7 @@ Various notes (AKA dirty little tricks)
 - How to test crossdev layout generation:
 
   $ mkdir -p foo
-  $ PORTAGE_CONFIGROOT=$(pwd)/foo EPREFIX=$(pwd)/foo ./crossdev -t mmix -P -p
+  $ PORTAGE_CONFIGROOT=$(pwd)/foo EPREFIX=$(pwd)/foo PORT_LOGDIR=$(pwd)/foo ./crossdev -t mmix -P -p
 
   This needs some local patching. TODO: fix it to Just Work (perhaps with
   additional --test options).


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-06-21 21:23 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-06-21 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     0f2a105de5c407a2fa0113d0815d54e0067bbb4b
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 21 18:42:28 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jun 21 18:42:28 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=0f2a105d

crossdev: fail eval when multilib.eclass sourcing fails

Before the change failure to source 'multilib.eclass' resuled in
a fallback mode to be used instead of hard failure.

It was caused by two expansion layers of 'eval $(...)'.

After the change falure to source 'mmultilib.eclass' hard fails early:

```
$ PORTAGE_CONFIGROOT=$(pwd)/foo EPREFIX=$(pwd)/foo PORT_LOGDIR=$(pwd)/foo ./crossdev -t mmix -P -p
 * error: : EAPI 0 not supported
 *
 * If you file a bug, please attach the following logfiles:
 * /home/slyfox/dev/git/crossdev/foo/cross--info.log
 *
 * error: could not load multilib settings for 'HCHOST'
 *
 * If you file a bug, please attach the following logfiles:
 * /home/slyfox/dev/git/crossdev/foo/cross-mmix-info.log
```

Reported-by: Marco Scardovi (scardracs)
Bug: https://bugs.gentoo.org/797367
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/crossdev b/crossdev
index 1a2b030..619603f 100755
--- a/crossdev
+++ b/crossdev
@@ -968,6 +968,9 @@ fi
 # parse multilib settings until profiles are sane
 load_multilib_env() {
 	local var=$1
+	# TODO: avoid eval+subshell and use subshell only. It will make error
+	# handling simpler.
+	local eval_result=failed
 	eval $(
 	# see what target to parse
 	CTARGET=${!var}
@@ -1016,7 +1019,9 @@ load_multilib_env() {
 			echo ${_v}=\'${!d}\'
 		done
 	done
+	echo "eval_result='succeeded'"
 	)
+	[[ $eval_result = succeeded ]] || die "could not load multilib settings for '${var}'"
 }
 # Load settings for the host.
 MULTILIB_ABIS=${HOST_ABI} load_multilib_env HCHOST


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-06-21 21:23 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-06-21 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     d4127c98b4b90b33e9c2e937aa71c20d0956ebc0
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 21 17:56:37 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jun 21 17:56:37 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d4127c98

crossdev: use die() in eval() context to avoid error message swallowing

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/crossdev b/crossdev
index 7bceed5..1a2b030 100755
--- a/crossdev
+++ b/crossdev
@@ -991,10 +991,7 @@ load_multilib_env() {
 	else
 		single_abi=false
 	fi
-	if ! multilib_env ; then
-		echo "die 'could not load multilib settings for ${var}'"
-		exit 1
-	fi
+	multilib_env || die "die 'could not load multilib settings for ${var}'"
 	${single_abi} && MULTILIB_ABIS=${DEFAULT_ABI}
 
 	# output the desired env


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-06-21 21:23 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-06-21 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     f7eda23993a201d85a6099a3011b9b48af6fb149
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 21 16:35:05 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jun 21 16:35:05 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=f7eda239

crossdev: fix "for for" typo

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 06ec400..7bceed5 100755
--- a/crossdev
+++ b/crossdev
@@ -502,7 +502,7 @@ setup_portage_vars() {
 	HCHOST=${CHOST}
 	[[ ${chost_set} == "set" ]] && CHOST=${chost} || unset CHOST
 
-	# Collect all CHOST* visible for for host. We need to make sure
+	# Collect all CHOST* visible for host. We need to make sure
 	# not to clobber any of native CHOSTs.
 	HCHOSTS=(${HCHOST})
 	for abi in $(portageq envvar ABI MULTILIB_ABIS DEFAULT_ABI); do


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-06-08 22:44 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-06-08 22:44 UTC (permalink / raw
  To: gentoo-commits

commit:     bcedb8deeb2e08b91db7b6f5c31623d2a777cb8b
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Jun  8 22:43:39 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Jun  8 22:43:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=bcedb8de

crossdev: mark ia64* targets as targets that always require libc headers

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/crossdev b/crossdev
index 3d18e3c..06ec400 100755
--- a/crossdev
+++ b/crossdev
@@ -254,6 +254,12 @@ parse_target() {
 		      STAGE_DEFAULT=${STAGE_C_ONLY}
 		      WITH_DEF_HEADERS="no";;
 
+		ia64*)
+			# gcc's libgcc needs glibc headers for unwinder.
+			# Thus gcc-stage1 can't be built without glibc headers.
+			WITH_DEF_HEADERS="yes"
+			;;
+
 		# added in bug #609602
 		mmix*)
 		      KPKG="[none]"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-06-07 20:44 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-06-07 20:44 UTC (permalink / raw
  To: gentoo-commits

commit:     e2846804da4e52d9aa59d8d0223fe8b57b309e95
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Jun  7 20:44:03 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jun  7 20:44:03 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=e2846804

crossdev: make 'crossdev -t help' a single column output

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/crossdev b/crossdev
index 39924aa..3d18e3c 100755
--- a/crossdev
+++ b/crossdev
@@ -99,7 +99,7 @@ Extra Fun (must be run after above stages):
     ${GOOD}--ex-gdb${NORMAL}                 Build a cross gdb
     ${GOOD}--ex-pkg${NORMAL} pkg             Build extra packages (may be used multiple times)
 
-${BRACKET}Target (-t)${NORMAL} takes a tuple ${BRACKET}ARCH-VENDOR-OS-LIBC${NORMAL}; see 'crossdev -t help'
+${BRACKET}Target (-t)${NORMAL} takes a tuple ${BRACKET}ARCHITECTURE-VENDOR-OS-LIBC${NORMAL}; see 'crossdev -t help'
 EOF
 	[[ -n $* ]] && echo && eerror "Error: $*"
 	exit ${exit_status}
@@ -125,23 +125,30 @@ parse_target() {
 
 	if [[ ${CTARGET} == "help" ]] ; then
 		cat <<-EOF
-		Supported Architectures:
-		   - alpha                                     - arm / armeb / aarch64
-		   - hppa (parisc)                             - ia64
-		   - i386 / i486 / i586 / i686 (x86)           - m68k
+		Target (-t) takes a tuple ARCHITECTURE-VENDOR-OS-LIBC:
+
+		Supported Architectures (ARCHITECTURE):
+		   - alpha
+		   - arm / armeb / aarch64
+		   - hppa (parisc)
+		   - ia64
+		   - i386 / i486 / i586 / i686 (x86)
+		   - m68k
 		   - mips / mipsel / mips64 / mips64el
 		   - or1k
 		   - powerpc (ppc) / powerpc64 (ppc64)
 		   - riscv32 / riscv64
-		   - sparc / sparc64                           - s390 / s390x
-		   - sh / sh[1-5] / sh64                       - x86_64 (amd64)
-		Supported C Libraries:
+		   - sparc / sparc64
+		   - s390 / s390x
+		   - sh / sh[1-5] / sh64
+		   - x86_64 (amd64)
+		Supported C Libraries (LIBC):
 		   - glibc (gnu)
 		   - klibc       [prob wont work]
 		   - musl
 		   - newlib      [bare metal/no operating system]
 		   - uclibc      [not all arches are ported]
-		Special Targets:
+		Special Targets (full tuple):
 		   - avr      http://www.nongnu.org/avr-libc/
 		   - bfin     http://blackfin.uclinux.org/
 		   - h8300    http://h8300-hms.sourceforge.net/


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-01-05 23:25 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-01-05 23:25 UTC (permalink / raw
  To: gentoo-commits

commit:     9cf82e7d074495419ae1a801ee081b2fa6c83441
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  5 23:25:21 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Jan  5 23:25:21 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=9cf82e7d

README: add more tuple examples that happen to work today

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 README | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/README b/README
index 480cba5..25e005e 100644
--- a/README
+++ b/README
@@ -46,10 +46,12 @@ understand what crossdev does and does not do.
 A few examples of targets that worked today (produce running
 executables or kernels if applies):
 
+ aarch64-gentoo-linux-musl
  aarch64-unknown-linux-gnu
  alpha-unknown-linux-gnu
  arm-none-eabi
  armv5tel-softfloat-linux-gnueabi
+ armv6zk-unknown-linux-musleabihf
  armv7a-unknown-linux-gnueabihf
  avr
  hppa-unknown-linux-gnu
@@ -64,7 +66,9 @@ executables or kernels if applies):
  mips64el-unknown-linux-gnu
  mipsel-unknown-linux-gnu
  mmix
+ msp430-elf
  nios2-unknown-linux-gnu
+ or1k-linux-musl
  powerpc-unknown-linux-gnu
  powerpc64-unknown-linux-gnu
  powerpc64le-unknown-linux-gnu
@@ -73,10 +77,12 @@ executables or kernels if applies):
  sh4-unknown-linux-gnu
  sparc-unknown-linux-gnu
  sparc64-unknown-linux-gnu
+ vax-unknown-linux-gnu
  x86_64-HEAD-linux-gnu
  x86_64-UNREG-linux-gnu
  x86_64-pc-linux-gnu
  x86_64-w64-mingw32
+ xtensa-esp32-elf
 
 A few more targets are likely to Just Work.
 And many more can be made to work with a litle touch.


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-01-05 23:25 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-01-05 23:25 UTC (permalink / raw
  To: gentoo-commits

commit:     f990e6df8eb60ce7cee5efb7634b3c705c8b6e6a
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  5 23:22:16 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Jan  5 23:22:16 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=f990e6df

README: drop toolchain version from examples

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 README | 62 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 31 insertions(+), 31 deletions(-)

diff --git a/README b/README
index 7aecdc4..480cba5 100644
--- a/README
+++ b/README
@@ -46,37 +46,37 @@ understand what crossdev does and does not do.
 A few examples of targets that worked today (produce running
 executables or kernels if applies):
 
- aarch64-unknown-linux-gnu-7.3.0
- alpha-unknown-linux-gnu-7.3.0
- arm-none-eabi-7.3.0
- armv5tel-softfloat-linux-gnueabi-7.3.0
- armv7a-unknown-linux-gnueabihf-7.3.0
- avr-7.3.0
- hppa-unknown-linux-gnu-7.3.0
- hppa2.0-unknown-linux-gnu-7.3.0
- hppa64-unknown-linux-gnu-7.3.0
- i686-pc-gnu-7.3.0
- i686-w64-mingw32-7.3.0
- ia64-unknown-linux-gnu-7.3.0
- m68k-unknown-linux-gnu-7.3.0
- mips-unknown-linux-gnu-7.3.0
- mips64-unknown-linux-gnu-7.3.0
- mips64el-unknown-linux-gnu-7.3.0
- mipsel-unknown-linux-gnu-7.3.0
- mmix-7.3.0
- nios2-unknown-linux-gnu-7.3.0
- powerpc-unknown-linux-gnu-7.3.0
- powerpc64-unknown-linux-gnu-7.3.0
- powerpc64le-unknown-linux-gnu-7.3.0
- s390-unknown-linux-gnu-7.3.0
- s390x-unknown-linux-gnu-7.3.0
- sh4-unknown-linux-gnu-7.3.0
- sparc-unknown-linux-gnu-7.3.0
- sparc64-unknown-linux-gnu-7.3.0
- x86_64-HEAD-linux-gnu-7.3.0
- x86_64-UNREG-linux-gnu-7.3.0
- x86_64-pc-linux-gnu-7.3.0
- x86_64-w64-mingw32-7.3.0
+ aarch64-unknown-linux-gnu
+ alpha-unknown-linux-gnu
+ arm-none-eabi
+ armv5tel-softfloat-linux-gnueabi
+ armv7a-unknown-linux-gnueabihf
+ avr
+ hppa-unknown-linux-gnu
+ hppa2.0-unknown-linux-gnu
+ hppa64-unknown-linux-gnu
+ i686-pc-gnu
+ i686-w64-mingw32
+ ia64-unknown-linux-gnu
+ m68k-unknown-linux-gnu
+ mips-unknown-linux-gnu
+ mips64-unknown-linux-gnu
+ mips64el-unknown-linux-gnu
+ mipsel-unknown-linux-gnu
+ mmix
+ nios2-unknown-linux-gnu
+ powerpc-unknown-linux-gnu
+ powerpc64-unknown-linux-gnu
+ powerpc64le-unknown-linux-gnu
+ s390-unknown-linux-gnu
+ s390x-unknown-linux-gnu
+ sh4-unknown-linux-gnu
+ sparc-unknown-linux-gnu
+ sparc64-unknown-linux-gnu
+ x86_64-HEAD-linux-gnu
+ x86_64-UNREG-linux-gnu
+ x86_64-pc-linux-gnu
+ x86_64-w64-mingw32
 
 A few more targets are likely to Just Work.
 And many more can be made to work with a litle touch.


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2021-01-05 23:25 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2021-01-05 23:25 UTC (permalink / raw
  To: gentoo-commits

commit:     e8aa5739238f994b79fa4586a6494098b7ab3888
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  5 23:22:02 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Jan  5 23:22:02 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=e8aa5739

crossdev: add or1k example

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index d53a6e8..39924aa 100755
--- a/crossdev
+++ b/crossdev
@@ -130,6 +130,7 @@ parse_target() {
 		   - hppa (parisc)                             - ia64
 		   - i386 / i486 / i586 / i686 (x86)           - m68k
 		   - mips / mipsel / mips64 / mips64el
+		   - or1k
 		   - powerpc (ppc) / powerpc64 (ppc64)
 		   - riscv32 / riscv64
 		   - sparc / sparc64                           - s390 / s390x


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-12-31 12:23 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-12-31 12:23 UTC (permalink / raw
  To: gentoo-commits

commit:     67ac02f3abb1bacda57b6166662a1b526814225e
Author:     Sven Wegener <swegener <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 31 11:08:16 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Dec 31 12:22:35 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=67ac02f3

crossdev: stop maintaining /etc/portage/categories

portage uses profiles/categories from all overlays and we don't need to
define them in /etc/portage/categories

Closes: https://bugs.gentoo.org/762772
Signed-off-by: Sven Wegener <swegener <AT> gentoo.org>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index 3f75778..d53a6e8 100755
--- a/crossdev
+++ b/crossdev
@@ -595,7 +595,7 @@ uninstall() {
 		done < <(find "${CONFIGROOT}"/repos.conf -type f -print0)
 	fi
 	# crossdev stopped creating 'package.keywords' in Jan 2020
-	for f in categories package.{accept_keywords,env,mask,keywords,use} profile/package.use.{force,mask} ; do
+	for f in package.{accept_keywords,env,mask,keywords,use} profile/package.use.{force,mask} ; do
 		f="${CONFIGROOT}/${f}"
 		rm -f "${f}"/cross-${CTARGET}
 		rmdir "${f}" 2>/dev/null
@@ -1336,13 +1336,13 @@ set_metadata() {
 	fi
 }
 
-xmkdir -p "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/{cross-${CTARGET},profiles}
-for f in "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/profiles ; do
-	f+="/categories"
-	check_trailing_newline "${f}"
-	grep -qs "^cross-${CTARGET}$" "${f}" \
-		|| echo cross-${CTARGET} >> "${f}"
-done
+xmkdir -p "${CROSSDEV_OVERLAY}"/{cross-${CTARGET},profiles}
+f="${CROSSDEV_OVERLAY}"/profiles/categories
+check_trailing_newline "${f}"
+grep -qs "^cross-${CTARGET}$" "${f}" \
+	|| echo cross-${CTARGET} >> "${f}"
+
+xmkdir -p "${CONFIGROOT}"
 cd "${CONFIGROOT}" || die "wtf!?"
 for f in package.{accept_keywords,env,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
 	[[ -f ${f} ]] && die "please convert ${CONFIGROOT}/${f} to a directory"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-11-29 22:30 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-11-29 22:30 UTC (permalink / raw
  To: gentoo-commits

commit:     e2c717c7399959089907225e44134f92503da22d
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 22:28:04 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Nov 29 22:28:04 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=e2c717c7

crossdev: explicitly avoid USE=hardened for gcc on mingw targets

Gentoo's USE=hardened unconditionally enables stack check code
generation not compatible with external libssp. This leads to
gcc ICEs like:
    libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc

Disable USE=hardened until it works on gcc side.

Reported-by: redsh
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index 7aa2f5f..3f75778 100755
--- a/crossdev
+++ b/crossdev
@@ -262,6 +262,7 @@ parse_target() {
 		      KPKG="[none]";
 		      LCAT="dev-util"; LPKG="mingw64-runtime"
 		      WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
+		      GUSE+=" -hardened" # gcc ICEs as libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc
 		      ;;
 
 		mingw*|*-mingw*)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-11-22 20:41 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-11-22 20:41 UTC (permalink / raw
  To: gentoo-commits

commit:     a7a785c24d80eb22cc6f612d907765b695a7001e
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 22 20:40:14 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Nov 22 20:40:14 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=a7a785c2

crossdev: default to latest newlib even for stable toolchains.

::gentoo does not have stable keywords for newlib for a while.
Let's default to 'latest' to make standard use case to just work.

Reported-by: Thymo van Beers
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 5399925..7aa2f5f 100755
--- a/crossdev
+++ b/crossdev
@@ -858,11 +858,14 @@ for with in HEADERS ; do
 	[[ ${!var} == "COW" ]] && eval ${var}=${!defvar}
 done
 
-# ::gentoo has no stable 'mingw64-runtime'. Let's default to 'latest'
-# unles suser specified something else.
+# ::gentoo has no stable 'mingw64-runtime' or 'newlib'.
+# Let's default to 'latest' unles suser specified something else.
 if [[ ${LPKG} == "mingw64-runtime" && ${LVER} == "[stable]" ]]; then
 	LVER="[latest]"
 fi
+if [[ ${LPKG} == "newlib" && ${LVER} == "[stable]" ]]; then
+	LVER="[latest]"
+fi
 
 show_target_cfg() {
 	local pkgs crosspkgs=()


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-11-08 13:26 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-11-08 13:26 UTC (permalink / raw
  To: gentoo-commits

commit:     9dfb51bc9790b9368b5e2b346ce72c785652c926
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  8 13:17:22 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Nov  8 13:17:22 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=9dfb51bc

crossdev: drop debug output

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 --
 1 file changed, 2 deletions(-)

diff --git a/crossdev b/crossdev
index fec7ed3..870b7c7 100755
--- a/crossdev
+++ b/crossdev
@@ -857,8 +857,6 @@ done
 
 # ::gentoo has no stable 'mingw64-runtime'. Let's default to 'latest'
 # unles suser specified something else.
-echo "LPKG=${LPKG}"
-echo "LVER=${LVER}"
 if [[ ${LPKG} == "mingw64-runtime" && ${LVER} == "[stable]" ]]; then
 	LVER="[latest]"
 fi


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-11-08 13:26 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-11-08 13:26 UTC (permalink / raw
  To: gentoo-commits

commit:     f952e6bd7030033b2e4a3c8b9d62accb91e8e354
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  8 13:25:05 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Nov  8 13:25:05 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=f952e6bd

crossdev: disable USE=libraries for stage1 install

Reported-by: Paul Bordukov
Bug: https://bugs.gentoo.org/751295
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 870b7c7..5399925 100755
--- a/crossdev
+++ b/crossdev
@@ -771,10 +771,13 @@ AUTOGEN_TAG="# Autogenerated and managed by crossdev"
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
-# These are disabled only for stage1 gcc. Normally need libc present.
+# These are disabled only for stage1 gcc. Normally need libc presence.
 GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go -jit -cxx -mpx -openmp -sanitize -vtv"
 GUSE_DISABLE_STAGE_2="${GUSE_DISABLE}"
 
+# mingw64-runtime needs a stage2 compiler to build libraries: https://bugs.gentoo.org/751295
+LUSE_DISABLE="-libraries"
+
 # Past history of WITH_DEF_HEADERS:
 # - ????-2005: "no"
 # - 2005-2019: "yes": #227065 gcc-4.3+ is a pita w/out headers
@@ -1485,7 +1488,7 @@ if ! ex_fast ; then
 				# we have to use --nodeps as glibc itself might have
 				# a dependency on newer gcc versions that we don't
 				# care about at this point -- we aren't compiling yet
-				USE="${LUSE} ${USE} headers-only" \
+				USE="${LUSE} ${USE} ${LUSE_DISABLE} headers-only" \
 				CROSSCOMPILE_OPTS="headers-only" \
 				EOPTS="${EOPTS} --nodeps" \
 					doemerge ${LPKG} ${LPKG}-headers
@@ -1513,7 +1516,7 @@ if ! ex_fast ; then
 
 		set_eopts_on_pkg_status ${LPKG} crosscompile_opts_headers-only headers-only
 
-		USE="${LUSE} ${USE}" \
+		USE="${LUSE} ${USE} ${LUSE_DISABLE}" \
 		CROSSCOMPILE_OPTS="" \
 			doemerge ${LPKG}
 	fi


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-08-01 19:50 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-08-01 19:50 UTC (permalink / raw
  To: gentoo-commits

commit:     e17747e23e4b38b545658687b4ca2553717ac02a
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  1 19:49:34 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Aug  1 19:49:34 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=e17747e2

crossdev: default to latest mingw64-runtime even for stable toolchains.

::gentoo does not have stable keywords for mingw64-runtime for a while.
Let's default to 'latest' to make standard use case to just work..

Reported-by: i.Dark_Templar
Bug: https://bugs.gentoo.org/733346
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/crossdev b/crossdev
index 8812021..fec7ed3 100755
--- a/crossdev
+++ b/crossdev
@@ -855,6 +855,14 @@ for with in HEADERS ; do
 	[[ ${!var} == "COW" ]] && eval ${var}=${!defvar}
 done
 
+# ::gentoo has no stable 'mingw64-runtime'. Let's default to 'latest'
+# unles suser specified something else.
+echo "LPKG=${LPKG}"
+echo "LVER=${LVER}"
+if [[ ${LPKG} == "mingw64-runtime" && ${LVER} == "[stable]" ]]; then
+	LVER="[latest]"
+fi
+
 show_target_cfg() {
 	local pkgs crosspkgs=()
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-03-26 23:52 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-03-26 23:52 UTC (permalink / raw
  To: gentoo-commits

commit:     d4773156d1fb82e26aceefec99355b2546febe23
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 26 23:51:20 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Mar 26 23:51:20 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d4773156

crossdev: follow ARCH=sh removal from ::gentoo

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 1 -
 1 file changed, 1 deletion(-)

diff --git a/crossdev b/crossdev
index 12e14e3..8812021 100755
--- a/crossdev
+++ b/crossdev
@@ -218,7 +218,6 @@ parse_target() {
 		powerpc*)   TARCH=ppc;;
 		sparc*)     TARCH=sparc;;
 		s390*)      TARCH=s390;;
-		sh*)        TARCH=sh;;
 		x86_64*)    TARCH=amd64;;
 		*)          TARCH="*";;
 	esac


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-01-31  7:36 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-01-31  7:36 UTC (permalink / raw
  To: gentoo-commits

commit:     2a35343c7e4ebde7a6d509b546c9d66e9f8da9a7
Author:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 31 02:56:06 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Jan 31 07:36:46 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=2a35343c

crossdev: update profiles/categories during uninstall

If we remove the category cross-${CTARGET} in the output overlay,
remove the category itself from profiles/categories.

Signed-off-by: Göktürk Yüksek <gokturk <AT> gentoo.org>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index b460d53..9427cf1 100755
--- a/crossdev
+++ b/crossdev
@@ -555,8 +555,13 @@ uninstall() {
 	ewarn "Uninstalling target '${CTARGET}' ..."
 
 	# clean out portage config files
-	[[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]] \
-		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
+	if [[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]]; then
+		rm -r "${CROSSDEV_OVERLAY}"/cross-${CTARGET}
+		# if we remove all the package in the category,
+		# might as well remove the category itself
+		sed -e "/cross-${CTARGET}/d" \
+		    -i "${CROSSDEV_OVERLAY}"/profiles/categories
+	fi
 	# crossdev stopped creating 'package.keywords' in Jan 2020
 	for f in categories package.{accept_keywords,env,mask,keywords,use} profile/package.use.{force,mask} ; do
 		f="${CONFIGROOT}/${f}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-01-31  7:36 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-01-31  7:36 UTC (permalink / raw
  To: gentoo-commits

commit:     be107b6d5b572d9f13e64b4b53dc687f74193c56
Author:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 31 02:56:07 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Jan 31 07:36:49 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=be107b6d

crossdev: remove the output overlay during uninstallation when possible

If the output overlay is created solely for one specific CTARGET, and
not modified by the user in any way, it makes no sense to leave it
behind.

Remove the output overlay if the following conditions are met:
- The profiles/categories is empty
- metadata/layout.conf is managed by crossdev
- The only files in the overlay are profiles/categories and metadata/layout.conf

Signed-off-by: Göktürk Yüksek <gokturk <AT> gentoo.org>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/crossdev b/crossdev
index 9427cf1..4576e0f 100755
--- a/crossdev
+++ b/crossdev
@@ -562,6 +562,24 @@ uninstall() {
 		sed -e "/cross-${CTARGET}/d" \
 		    -i "${CROSSDEV_OVERLAY}"/profiles/categories
 	fi
+	# If profiles/categories is empty, see if we can remove the output overlay entirely
+	# The conservative criteria for removal are as follows:
+	# - The profiles/categories is empty
+	# - metadata/layout.conf is managed by crossdev
+	# - The only files in the overlay are profiles/categories and metadata/layout.conf
+	# Otherwise, we leave the overlay alone
+	if [[ ! -s "${CROSSDEV_OVERLAY}"/profiles/categories ]]; then
+		# Check if layout.conf is managed by crossdev
+		if grep -qs "^${AUTOGEN_TAG}" "${CROSSDEV_OVERLAY}"/metadata/layout.conf; then
+			# Check that there are no other files
+			local i=0
+			while IFS="" read -d $'\0' -r; do
+				i=$((i + 1))
+			done < <(find "${CROSSDEV_OVERLAY}" -type f -print0)
+			# Remove the overlay if we can
+			[[ ${i} -eq 2 ]] && rm -r "${CROSSDEV_OVERLAY}"
+		fi
+	fi
 	# crossdev stopped creating 'package.keywords' in Jan 2020
 	for f in categories package.{accept_keywords,env,mask,keywords,use} profile/package.use.{force,mask} ; do
 		f="${CONFIGROOT}/${f}"
@@ -736,6 +754,7 @@ SEARCH_OVERLAYS=""
 CROSSDEV_OVERLAY=""
 CROSSDEV_OVERLAY_NAME=""
 CROSSDEV_OVERLAY_CREATE_REPOS_CONF=""
+AUTOGEN_TAG="# Autogenerated and managed by crossdev"
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
@@ -1206,7 +1225,6 @@ set_metadata() {
 	# a layout.conf file so portage can find them.  this is a crapshoot
 	# when diff overlay sources have conflicting eclasses, but nothing
 	# we really can do about that.
-	local autogen_tag="# Autogenerated and managed by crossdev"
 	local meta=${CROSSDEV_OVERLAY}/metadata
 	local repo_name
 	local layout=${meta}/layout.conf
@@ -1219,7 +1237,7 @@ set_metadata() {
 
 	xmkdir -p "${meta}"
 	if [[ -e ${layout} ]] ; then
-		if ! grep -qs "^${autogen_tag}" "${layout}" ; then
+		if ! grep -qs "^${AUTOGEN_TAG}" "${layout}" ; then
 			einfo "leaving metadata/layout.conf alone in ${CROSSDEV_OVERLAY}"
 			return
 		fi
@@ -1273,7 +1291,7 @@ set_metadata() {
 
 	# write out that layout.conf!
 	cat <<-EOF > "${layout}" || die "could not write ${layout}"
-	${autogen_tag}
+	${AUTOGEN_TAG}
 	# Delete the above line if you want to manage this file yourself
 	masters = ${masters% }
 	repo-name = ${repo_name}
@@ -1283,7 +1301,7 @@ set_metadata() {
 	# If there is no repos.conf entry for the output overlay, create one here
 	if [[ -n ${CROSSDEV_OVERLAY_CREATE_REPOS_CONF} ]]; then
 		cat <<-EOF > "${CROSSDEV_OVERLAY_CREATE_REPOS_CONF}" || die "could not create the repo conf"
-		${autogen_tag}
+		${AUTOGEN_TAG}
 		[${repo_name}]
 		location = ${CROSSDEV_OVERLAY}
 		masters = ${masters% }


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-01-31  7:36 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-01-31  7:36 UTC (permalink / raw
  To: gentoo-commits

commit:     9ff664072a17b88a33e78addefc10d04c12e6197
Author:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 31 02:56:08 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Jan 31 07:36:49 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=9ff66407

crossdev: remove the repos.conf entry for the output overlay during uninstall

If the output overlay is completely removed during uninstall, it is
incorrect to leave behind the repos.conf file since the location
specified in the conf file points to a non-existing directory.

We scan all the conf files under ${CONFIGROOT}/repos.conf, looking for
the file that defines the output overlay and remove it if it is
managed by crossdev.

Signed-off-by: Göktürk Yüksek <gokturk <AT> gentoo.org>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/crossdev b/crossdev
index 4576e0f..12e14e3 100755
--- a/crossdev
+++ b/crossdev
@@ -580,6 +580,20 @@ uninstall() {
 			[[ ${i} -eq 2 ]] && rm -r "${CROSSDEV_OVERLAY}"
 		fi
 	fi
+	# Remove the repos.conf entry if the output overlay is completely removed
+	if [[ ! -e "${CROSSDEV_OVERLAY}" ]]; then
+		# There is no easy way to reverse map an overlay entry
+		# to a particular file under repos.conf
+		# We'll scan every conf file for a match on repo name and
+		# remove if the file is managed by crossdev
+		while IFS="" read -d $'\0' -r f ; do
+			grep -qs "^${AUTOGEN_TAG}" "${f}" || continue
+			if grep -qs "^\[${CROSSDEV_OVERLAY_NAME}\]$" "${f}"; then
+				rm -f "${f}"
+				break
+			fi
+		done < <(find "${CONFIGROOT}"/repos.conf -type f -print0)
+	fi
 	# crossdev stopped creating 'package.keywords' in Jan 2020
 	for f in categories package.{accept_keywords,env,mask,keywords,use} profile/package.use.{force,mask} ; do
 		f="${CONFIGROOT}/${f}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-01-30  8:36 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-01-30  8:36 UTC (permalink / raw
  To: gentoo-commits

commit:     71b2d76a8ae33cae46db8677f4d3cd52d3ec4b96
Author:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 30 02:58:56 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Jan 30 08:36:35 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=71b2d76a

crossdev: create a repos.conf entry for the output overlay if necessary

If --ov-output is specified on the command line but there is no
corresponding repos.conf entry for the output overlay, it is of no use
since the package manager will not take it into consideration.

Determine and create a repos.conf entry when necessary for the output
overlay. Derive it's name from the basename of the overlay path and
also take into account possible file path collisions.

Signed-off-by: Göktürk Yüksek <gokturk <AT> gentoo.org>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 8783a9a..b460d53 100755
--- a/crossdev
+++ b/crossdev
@@ -516,6 +516,30 @@ setup_portage_vars() {
 		done
 
 		: ${CROSSDEV_OVERLAY:=$(echo "${SEARCH_OVERLAYS}" | head -1)}
+	else
+		# Check if there is a repos.conf entry whose
+		# location matches ${CROSSDEV_OVERLAY}
+		local repo_name conf_base i=""
+
+		repo_name="$(echo "${REPO_CONFIG}" | sed -n "\|:${CROSSDEV_OVERLAY}$|s,:.*,,p")"
+		if [[ -n ${repo_name} ]]; then
+			# Match the name specified in the corresponding repos.conf entry
+			CROSSDEV_OVERLAY_NAME="${repo_name}"
+		else
+			# Derive the name
+			: ${CROSSDEV_OVERLAY_NAME:="$(basename "${CROSSDEV_OVERLAY}")"}
+			# Note that there is no repos.conf entry and set up the path for the conf file
+			# We'll create the conf file itself in set_metadata()
+			conf_base="${CONFIGROOT}/repos.conf/${CROSSDEV_OVERLAY_NAME}"
+			while [[ -e "${conf_base}${i}.conf" ]]; do
+				# If there is a file collision with the conf file we target,
+				# we'll first append '1' before '.conf' and try.
+				# If that doesn't work, we'll retry with an incremented number
+				# Incrementing an empty string returns '1' in the shell
+				i=$((i + 1))
+			done
+			CROSSDEV_OVERLAY_CREATE_REPOS_CONF="${conf_base}${i}.conf"
+		fi
 	fi
 
 	# make sure we have a valid logdir
@@ -705,7 +729,8 @@ XPKGS=() XVERS=() XUSES=() XENVS=() XOVLS=()
 DEFAULT_VER="[latest]"
 SEARCH_OVERLAYS=""
 CROSSDEV_OVERLAY=""
-CROSSDEV_OVERLAY_NAME="crossdev"
+CROSSDEV_OVERLAY_NAME=""
+CROSSDEV_OVERLAY_CREATE_REPOS_CONF=""
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
@@ -1249,6 +1274,17 @@ set_metadata() {
 	repo-name = ${repo_name}
 	$(printf '%b' "${this_manifests}")
 	EOF
+
+	# If there is no repos.conf entry for the output overlay, create one here
+	if [[ -n ${CROSSDEV_OVERLAY_CREATE_REPOS_CONF} ]]; then
+		cat <<-EOF > "${CROSSDEV_OVERLAY_CREATE_REPOS_CONF}" || die "could not create the repo conf"
+		${autogen_tag}
+		[${repo_name}]
+		location = ${CROSSDEV_OVERLAY}
+		masters = ${masters% }
+		auto-sync = no
+		EOF
+	fi
 }
 
 xmkdir -p "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/{cross-${CTARGET},profiles}


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-01-29 23:20 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-01-29 23:20 UTC (permalink / raw
  To: gentoo-commits

commit:     7472a72787d046a4b47b752df64b4a8182fcf5ff
Author:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 29 23:14:08 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Wed Jan 29 23:20:30 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=7472a727

crossdev: adjust repo-name in layout.conf based on repos.conf

When '--ov-output' is not provided, crossdev searches the list of
overlays for a repo matching the name "crossdev" or
"cross-${CTARGET}". When there is a match for "cross-${CTARGET}" but
the location does not exist, crossdev attempts to populate the overlay
structure. However, it incorrectly names the repo "crossdev" in
metadata/layout.conf under repo-name, as opposed to
"cross-${CTARGET}". This creates further problems when the list of
overlays is restricted using the '--overlays' option, given that the
name of the repo under repos.conf will not match what is in
layout.conf.

Use the correct repo-name when creating layout.conf. This preserves
the default behavior of using the repo-name "crossdev" when
'--ov-output' is provided.

Signed-off-by: Göktürk Yüksek <gokturk <AT> gentoo.org>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/crossdev b/crossdev
index 1722942..8783a9a 100755
--- a/crossdev
+++ b/crossdev
@@ -503,11 +503,14 @@ setup_portage_vars() {
 	# set up some repos.conf magic if possible.  if not,
 	# install our stuff to the first overlay in the list.
 	if [[ -z ${CROSSDEV_OVERLAY} ]] ; then
-		local repo
-		for repo in "cross-${CTARGET}" crossdev ; do
-			repo=$(echo "${REPO_CONFIG}" | sed -n "/^${repo}:/s,^[^:]*:,,p")
-			if [[ -n ${repo} ]] ; then
-				CROSSDEV_OVERLAY=${repo}
+		local repo_path repo_name
+		for repo_name in "cross-${CTARGET}" crossdev ; do
+			repo_path=$(echo "${REPO_CONFIG}" | sed -n "/^${repo_name}:/s,^[^:]*:,,p")
+			if [[ -n ${repo_path} ]] ; then
+				CROSSDEV_OVERLAY=${repo_path}
+				# if we end up installing our stuff, save the name of the repo
+				# for further use in metadata/layout.conf
+				CROSSDEV_OVERLAY_NAME=${repo_name}
 				break
 			fi
 		done
@@ -702,6 +705,7 @@ XPKGS=() XVERS=() XUSES=() XENVS=() XOVLS=()
 DEFAULT_VER="[latest]"
 SEARCH_OVERLAYS=""
 CROSSDEV_OVERLAY=""
+CROSSDEV_OVERLAY_NAME="crossdev"
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
@@ -1181,7 +1185,7 @@ set_metadata() {
 	# See if this repo is already named.
 	f="${CROSSDEV_OVERLAY}/profiles/repo_name"
 	repo_name=$(cat "${f}" 2>/dev/null)
-	: ${repo_name:="crossdev"}
+	: ${repo_name:="${CROSSDEV_OVERLAY_NAME}"}
 
 	xmkdir -p "${meta}"
 	if [[ -e ${layout} ]] ; then


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-01-25 21:17 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-01-25 21:17 UTC (permalink / raw
  To: gentoo-commits

commit:     44dc00f87317dc5697da14bc9e8e9540c670dbc0
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 25 21:11:11 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jan 25 21:11:11 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=44dc00f8

crossdev: migrate from package.keywords to package.accept_keywords

Reported-by: Doppler
Bug: https://bugs.gentoo.org/706212
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 5dcd82d..1722942 100755
--- a/crossdev
+++ b/crossdev
@@ -530,7 +530,8 @@ uninstall() {
 	# clean out portage config files
 	[[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]] \
 		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
-	for f in categories package.{env,mask,keywords,use} profile/package.use.{force,mask} ; do
+	# crossdev stopped creating 'package.keywords' in Jan 2020
+	for f in categories package.{accept_keywords,env,mask,keywords,use} profile/package.use.{force,mask} ; do
 		f="${CONFIGROOT}/${f}"
 		rm -f "${f}"/cross-${CTARGET}
 		rmdir "${f}" 2>/dev/null
@@ -1016,7 +1017,7 @@ _set_portage_file() {
 set_keywords() {
 	local pkg=$1 ver=$2 output
 	[[ -z ${pkg} ]] && return 0
-	output=$(_set_portage_file ${pkg} package.keywords)
+	output=$(_set_portage_file ${pkg} package.accept_keywords)
 
 	if [[ ${ver} == "["*"]" ]] || [[ -z ${ver} ]] ; then
 		local keywords=""
@@ -1254,7 +1255,7 @@ for f in "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/profiles ; do
 		|| echo cross-${CTARGET} >> "${f}"
 done
 cd "${CONFIGROOT}" || die "wtf!?"
-for f in package.{env,keywords,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
+for f in package.{accept_keywords,env,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
 	[[ -f ${f} ]] && die "please convert ${CONFIGROOT}/${f} to a directory"
 	xmkdir -p "${f}"
 	rm -f "${f}/cross-${CTARGET}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-01-25 12:05 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-01-25 12:05 UTC (permalink / raw
  To: gentoo-commits

commit:     b78ac789c9cb68a670ff8a37221e545388315168
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 25 11:42:46 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jan 25 11:42:46 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b78ac789

crossdev: drop outdated msp430* and nios* toolchain lower bounds

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/crossdev b/crossdev
index c370535..5dcd82d 100755
--- a/crossdev
+++ b/crossdev
@@ -270,18 +270,6 @@ parse_target() {
 		      die "'${CTARGET}' target is not supported anymore, use i686-w64-mingw32"
 		      ;;
 
-		msp430*)
-		      BVER=">=2.24.90";
-		      GVER=">=4.9.1";
-		      LVER=">=2.1.0";
-		      DVER=">=7.7";;
-
-		nios2*)
-		      BVER=">=2.24";
-		      GVER=">=4.9.1";
-		      LVER=">=2.21";
-		      KVER=">=4.0";;
-
 		spu*) TARCH=ppc64;
 		      KPKG="[none]";
 		      LPKG="newlib";;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2020-01-25 12:05 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2020-01-25 12:05 UTC (permalink / raw
  To: gentoo-commits

commit:     3756849289a449ff09e329aaa7e26fbd5739805e
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 25 11:20:53 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jan 25 11:20:53 2020 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=37568492

crossdev: disable default ssp support on x86 and ppc on musl

Set USE=-ssp by default. User can still manually override
via environment variable to see how it breaks:
    USE=ssp crossdev -t i686-gentoo-linux-musl

Reported-by: Andrew Aladjev
Bug: https://bugs.gentoo.org/706210
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/crossdev b/crossdev
index b0c44c5..c370535 100755
--- a/crossdev
+++ b/crossdev
@@ -416,6 +416,9 @@ parse_target() {
 		# [1.]: no -fstack-protector flag support:
 		#       check as '$CC -fstack-protector -c -x c - </dev/null'
 		alpha*|avr*|hppa*|ia64*|mmix*|nios2*) ssp_support=no;;
+		# [2.]: musl does not provide __stack_chk_fail_local:
+		#       and is broken on ARCH=x86 and ppc32: https://bugs.gentoo.org/706210
+		i[3-6]86-*-musl*|powerpc-*-musl*|powerpcle-*-musl*) ssp_support=no;;
 	esac
 	if [[ $ssp_support = "no" ]]; then
 		# ssp is >=gcc-6, nossp is <gcc-6


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-12-22 22:32 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-12-22 22:32 UTC (permalink / raw
  To: gentoo-commits

commit:     1ebd639ccc8605f3e69b5973788101264902559e
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 22:29:39 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Dec 22 22:29:39 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=1ebd639c

crossdev: refuse to install crossdev on all CHOST ABIs, not just default

In bug #500338 attempt to install toolchain for secondary ABY (x86 on amd64
system) clobbered native tools with tools that target --systroot=/usr/${CTARGET}.

That is never an intended state. Block all CHOSTs and suggest using
sys-devel/multilib-gcc-wrapper for distcc-like workloads.

Bug: https://bugs.gentoo.org/500338
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index cec8170..b0c44c5 100755
--- a/crossdev
+++ b/crossdev
@@ -486,6 +486,7 @@ show_repo_cfg() {
 setup_portage_vars() {
 	local arch=${ARCH} arch_set=${ARCH+set}
 	local chost=${CHOST} chost_set=${CHOST+set}
+	local abi
 	unset ARCH CHOST
 	eval $(portageq envvar -v PORT_LOGDIR PORTAGE_TMPDIR ARCH CHOST)
 	parse_repo_config
@@ -496,6 +497,17 @@ setup_portage_vars() {
 	HCHOST=${CHOST}
 	[[ ${chost_set} == "set" ]] && CHOST=${chost} || unset CHOST
 
+	# Collect all CHOST* visible for for host. We need to make sure
+	# not to clobber any of native CHOSTs.
+	HCHOSTS=(${HCHOST})
+	for abi in $(portageq envvar ABI MULTILIB_ABIS DEFAULT_ABI); do
+		HCHOSTS+=($(portageq envvar CHOST_${abi}))
+	done
+	# uniq
+	HCHOSTS=(
+		$(printf "%s\n" "${HCHOSTS[@]}" | sort -u)
+	)
+
 	# see if user told us where to write things, otherwise
 	# set up some repos.conf magic if possible.  if not,
 	# install our stuff to the first overlay in the list.
@@ -682,6 +694,7 @@ UOPTS=
 TARCH=
 HARCH=
 HCHOST=
+HCHOSTS=()
 CTARGET=
 MULTILIB_ABIS="default"
 MULTILIB_USE=""
@@ -844,6 +857,15 @@ if [[ ${HCHOST} == "${CTARGET}" ]] ; then
 	exit 1
 fi
 
+for hchost in "${HCHOSTS[@]}"; do
+	if [[ ${hchost} == "${CTARGET}" ]] ; then
+		eerror "Refusing to create a cross-compiler using the same"
+		eerror "target name as your host utils."
+		eerror "Consider using sys-devel/multilib-gcc-wrapper package."
+		exit 1
+	fi
+done
+
 # grab user settings
 d="${CONFIGROOT}/crossdev/${CTARGET}"
 for v in MULTILIB_ABIS USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS ASFLAGS ; do
@@ -935,7 +957,7 @@ info() {
 hr -
 einfo "crossdev version:      ${CROSSDEV_VER}"
 einfo "Host Portage ARCH:     ${HARCH}"
-einfo "Host Portage System:   ${HCHOST}"
+einfo "Host Portage System:   ${HCHOST} (${HCHOSTS[*]})"
 einfo "Target Portage ARCH:   ${TARCH}"
 einfo "Target System:         ${CTARGET}"
 einfo "Stage:                 ${STAGE} (${STAGE_DISP[${STAGE}]})"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-12-22 22:04 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-12-22 22:04 UTC (permalink / raw
  To: gentoo-commits

commit:     44cbd70e68f919b61d7a430ddf0ce6362c66f394
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 22:04:00 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Dec 22 22:04:00 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=44cbd70e

crossdev: clarify ABIs to be target ABIs

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 864fd1b..cec8170 100755
--- a/crossdev
+++ b/crossdev
@@ -941,7 +941,7 @@ einfo "Target System:         ${CTARGET}"
 einfo "Stage:                 ${STAGE} (${STAGE_DISP[${STAGE}]})"
 einfo "USE=multilib:          ${MULTILIB_USE}"
 [[ ${DEFAULT_ABI} != "${MULTILIB_ABIS}" ]] && def_out=" (default: ${DEFAULT_ABI})" || def_out=
-einfo "ABIs:                  ${MULTILIB_ABIS}${def_out}"
+einfo "Target ABIs:           ${MULTILIB_ABIS}${def_out}"
 echo
 ex_fast || {
 is_s0 && {


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-12-22 22:01 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-12-22 22:01 UTC (permalink / raw
  To: gentoo-commits

commit:     33d38029e82142d5d6c911a7a2792a48d4737ff3
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 21:53:56 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Dec 22 21:58:42 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=33d38029

crossdev: explicitly document HCHOST as a sourced variable

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/crossdev b/crossdev
index da78d03..864fd1b 100755
--- a/crossdev
+++ b/crossdev
@@ -681,6 +681,7 @@ EOPTS=
 UOPTS=
 TARCH=
 HARCH=
+HCHOST=
 CTARGET=
 MULTILIB_ABIS="default"
 MULTILIB_USE=""
@@ -934,6 +935,7 @@ info() {
 hr -
 einfo "crossdev version:      ${CROSSDEV_VER}"
 einfo "Host Portage ARCH:     ${HARCH}"
+einfo "Host Portage System:   ${HCHOST}"
 einfo "Target Portage ARCH:   ${TARCH}"
 einfo "Target System:         ${CTARGET}"
 einfo "Stage:                 ${STAGE} (${STAGE_DISP[${STAGE}]})"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-10-21 22:54 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-10-21 22:54 UTC (permalink / raw
  To: gentoo-commits

commit:     7a87b173c40de6c4fc44e6ba0c8376bbfdda9d67
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 21 22:53:54 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Oct 21 22:53:54 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=7a87b173

crossdev: drop Sony Playstation 2 aliases (ee, dvp, iop)

These require toolchain version not present in ::gentoo

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/crossdev b/crossdev
index a6ee915..da78d03 100755
--- a/crossdev
+++ b/crossdev
@@ -150,7 +150,6 @@ parse_target() {
 		   - nds32    http://github.com/nds32
 		   - nios2    http://www.altera.com/products/ip/processors/nios2/ni2-index.html
 		   - xc16x    http://www.infineon.com/
-		   - ee / iop / dvp (ps2) [Playstation 2 targets]
 		   - ppu / spu (cell) [Cell/Playstation 3 targets]
 		Softfloat toolchains:
 		   Include 'softfloat' in the 'vendor' field
@@ -166,7 +165,6 @@ parse_target() {
 		case ${CTARGET} in
 			cell)    aliases=( ppu spu-elf );;
 			mingw64) aliases=( x86_64-w64-mingw32 );;
-			ps2)     aliases=( ee iop dvp );;
 		esac
 		if [[ ${#aliases[@]} -eq 1 ]] ; then
 			CTARGET=${aliases[0]}
@@ -297,18 +295,6 @@ parse_target() {
 		mips64*-gnuabi32|mipsisa64*-gnuabi32|\
 		mips64*-gnuabio32|mipsisa64*-gnuabio32)
 		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="o32";;
-		ee*)  TARCH=mips;
-		      KPKG="[none]"
-		      GVER="3.2.2"; BVER="2.14";
-		      STAGE_DEFAULT=${STAGE_C_ONLY};
-		      GUSE=${GUSE_DISABLE_STAGE_1};;
-		iop*) TARCH=mips;
-		      GVER="3.2.2"; BVER="2.14";
-		      STAGE_DEFAULT=${STAGE_C_ONLY};
-		      GUSE=${GUSE_DISABLE_STAGE_1};;
-		dvp*) TARCH=mips;
-		      GVER="3.2.2"; BVER="2.14";
-		      STAGE_DEFAULT=${STAGE_BINUTILS};;
 	esac
 
 	# Tweak packages based upon CTARGET


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-10-21 22:50 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-10-21 22:50 UTC (permalink / raw
  To: gentoo-commits

commit:     052eb4853c0bdcb6803f1528ea4acc2ad837aa94
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 21 22:50:17 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Oct 21 22:50:17 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=052eb485

crossdev: drop mingw32 reference

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 1 -
 1 file changed, 1 deletion(-)

diff --git a/crossdev b/crossdev
index 8be6e17..a6ee915 100755
--- a/crossdev
+++ b/crossdev
@@ -144,7 +144,6 @@ parse_target() {
 		   - avr      http://www.nongnu.org/avr-libc/
 		   - bfin     http://blackfin.uclinux.org/
 		   - h8300    http://h8300-hms.sourceforge.net/
-		   - mingw32  http://www.mingw.org/
 		   - mingw64  http://mingw-w64.sourceforge.net/
 		   - mmix     http://www-cs-faculty.stanford.edu/~knuth/mmix.html
 		   - msp430   http://www.ti.com/msp430


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-10-14  7:35 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-10-14  7:35 UTC (permalink / raw
  To: gentoo-commits

commit:     b141f7e376212dbda5c70bdabd366a0161caa9ef
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 14 07:34:17 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Oct 14 07:34:17 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b141f7e3

crossdev:drop support for short 'minw', 'mingw32' aliases

From now on to get a 32-bit toolchain users would need to specify
full tuple like:
    i686-w64-mingw32

That will use 'dev-util/mingw64-runtime'.

Bug: https://bugs.gentoo.org/584858
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 3c867b5..8be6e17 100755
--- a/crossdev
+++ b/crossdev
@@ -269,9 +269,8 @@ parse_target() {
 		      ;;
 
 		mingw*|*-mingw*)
-		      KCAT="dev-util"; KPKG="w32api";
-		      LCAT="dev-util"; LPKG="mingw-runtime"
-		      WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
+		      # bug #584858
+		      die "'${CTARGET}' target is not supported anymore, use i686-w64-mingw32"
 		      ;;
 
 		msp430*)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-09-08 11:16 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-09-08 11:16 UTC (permalink / raw
  To: gentoo-commits

commit:     090d76eaa97df4429e3e06c0811d758045539783
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Sep  8 11:14:42 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Sep  8 11:14:42 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=090d76ea

crossdev: reenable --with-headers for mingw targets

gcc can't build libgcc2.c on --without-headers setup.
Needs more investigation.

Reported-by: Kyle Elbert
Bug: https://bugs.gentoo.org/693770
Bug: https://bugs.gentoo.org/693730
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 305185a..3c867b5 100755
--- a/crossdev
+++ b/crossdev
@@ -264,11 +264,15 @@ parse_target() {
 		# these are the mingw64 targets that binutils seems to use
 		x86_64-*-mingw*|*-w64-mingw*)
 		      KPKG="[none]";
-		      LCAT="dev-util"; LPKG="mingw64-runtime";;
+		      LCAT="dev-util"; LPKG="mingw64-runtime"
+		      WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
+		      ;;
 
 		mingw*|*-mingw*)
 		      KCAT="dev-util"; KPKG="w32api";
-		      LCAT="dev-util"; LPKG="mingw-runtime";;
+		      LCAT="dev-util"; LPKG="mingw-runtime"
+		      WITH_DEF_HEADERS="yes" # gcc can't boot without headers: bug #693770
+		      ;;
 
 		msp430*)
 		      BVER=">=2.24.90";


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-09-01 19:02 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-09-01 19:02 UTC (permalink / raw
  To: gentoo-commits

commit:     89ee52a62051492a50fc655623bb7cd23215b1b1
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Sep  1 19:01:53 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Sep  1 19:01:53 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=89ee52a6

crossdev: whitespace in gcc stages

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index e03ea78..305185a 100755
--- a/crossdev
+++ b/crossdev
@@ -110,7 +110,13 @@ STAGE_C_KERNEL=2
 STAGE_LIBC=3
 STAGE_C_CPP=4
 STAGE_DEFAULT=${STAGE_C_CPP}
-STAGE_DISP=( "binutils" "C compiler only" "kernel headers" "C compiler & libc" "C/C++ compiler" )
+STAGE_DISP=(
+	"binutils"
+	"C compiler only"
+	"kernel headers"
+	"C compiler & libc"
+	"C/C++ compiler"
+)
 
 parse_target() {
 	CTARGET=${1#cross-}


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-09-01 16:14 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-09-01 16:14 UTC (permalink / raw
  To: gentoo-commits

commit:     7283a01fc3dd7523793c28d8acd04ce7fd049389
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Sep  1 16:08:26 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Sep  1 16:14:27 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=7283a01f

crossdev: set --without-headers by default

In https://sourceware.org/PR24577 we discovered that riscv
can't really install libc headers as it needs a cross-compiler.

Before this change we had the following default build order:
- cross-binutils
- kernel/libc headers
- stage1 gcc
- glibc
- stage2 gcc

After this change it's:
- cross-binutils
- stage1 gcc
- kernel headers
- glibc
- stage2 gcc

Users can still fors headers installation with '--ith-headers' option.

Bug: https://sourceware.org/PR24577
Bug: https://bugs.gentoo.org/692052
Bug: https://bugs.gentoo.org/686248
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 6d61f1c..e03ea78 100755
--- a/crossdev
+++ b/crossdev
@@ -708,7 +708,14 @@ GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-
 # These are disabled only for stage1 gcc. Normally need libc present.
 GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go -jit -cxx -mpx -openmp -sanitize -vtv"
 GUSE_DISABLE_STAGE_2="${GUSE_DISABLE}"
-WITH_HEADERS="COW"   WITH_DEF_HEADERS="yes" #227065 gcc-4.3+ is a pita w/out headers
+
+# Past history of WITH_DEF_HEADERS:
+# - ????-2005: "no"
+# - 2005-2019: "yes": #227065 gcc-4.3+ is a pita w/out headers
+# - 2019-????: "no" again: glibc does not really support headers install
+#              at least on riscv-*: #686248
+WITH_HEADERS="COW"
+WITH_DEF_HEADERS="no"
 EX_FAST="no"
 EX_GCC="no"
 EX_GDB="no"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-08-25  9:38 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-08-25  9:38 UTC (permalink / raw
  To: gentoo-commits

commit:     5295ec128ea4e588322240c97a650a4394508e2e
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 25 09:36:33 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Aug 25 09:37:31 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=5295ec12

crossdev: add a comment into revdep-rebuild entry where is comes from.

Bug: https://bugs.gentoo.org/692844
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 5e31e7b..6d61f1c 100755
--- a/crossdev
+++ b/crossdev
@@ -1250,9 +1250,12 @@ done
 for_each_extra_pkg set_portage X
 set_metadata
 
-# filter out revdep rebuild stuff #182601
 xmkdir -p "${EPREFIX}"/etc/revdep-rebuild
-echo "SEARCH_DIRS_MASK=${EPREFIX}/usr/${CTARGET}" > "${EPREFIX}"/etc/revdep-rebuild/05cross-${CTARGET}
+cat > "${EPREFIX}"/etc/revdep-rebuild/05cross-${CTARGET} << EOF
+# Generated by crossdev-${CROSSDEV_VER}
+# Ignore ${CTARGET} root, https://bugs.gentoo.org/182601.
+SEARCH_DIRS_MASK="${EPREFIX}/usr/${CTARGET}"
+EOF
 
 hr
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-06-08 18:20 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-06-08 18:20 UTC (permalink / raw
  To: gentoo-commits

commit:     d2568f29e87347c458b1b124d9c669b9995effb9
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  8 18:14:47 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jun  8 18:14:47 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d2568f29

crossdev: disable USE=hardened by default on bare-metal

USE=hardened enables more stack-check options by default
At least on arm-none-eabi that causes build failure:
    gcc-8.3.0/libstdc++-v3/libsupc++/array_type_info.cc:30:2:
        sorry, unimplemented: -fstack-check=specific for Thumb-1
     {}
      ^

Reported-by: Bertrand Jacquin
Bug: https://bugs.gentoo.org/687598
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index 673f5f8..5e31e7b 100755
--- a/crossdev
+++ b/crossdev
@@ -326,6 +326,7 @@ parse_target() {
 			STAGE_DEFAULT=${STAGE_LIBC}
 			GUSE+=" cxx -openmp" #489798
 			GUSE+=" -fortran" #589672, needs syscalls
+			GUSE+=" -hardened" #687598, needs -fstack-check=specific support
 			MULTILIB_USE="yes" #407275
 			WITH_DEF_HEADERS="no"
 			;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2019-03-18 22:54 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2019-03-18 22:54 UTC (permalink / raw
  To: gentoo-commits

commit:     3f952ff7041e98dc39bcd2f6a77098eeb9afd87e
Author:     Palmer Dabbelt <palmer <AT> dabbelt <DOT> com>
AuthorDate: Mon Mar 18 10:25:58 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Mar 18 22:51:24 2019 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=3f952ff7

Add riscv* to the Linux short list

This allows "crossdev -t riscv64" to install a RISC-V cross compiler for
Linux targets.

Signed-off-by: Palmer Dabbelt <palmer <AT> dabbelt.com>

 crossdev | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index d38b0e7..673f5f8 100755
--- a/crossdev
+++ b/crossdev
@@ -125,6 +125,7 @@ parse_target() {
 		   - i386 / i486 / i586 / i686 (x86)           - m68k
 		   - mips / mipsel / mips64 / mips64el
 		   - powerpc (ppc) / powerpc64 (ppc64)
+		   - riscv32 / riscv64
 		   - sparc / sparc64                           - s390 / s390x
 		   - sh / sh[1-5] / sh64                       - x86_64 (amd64)
 		Supported C Libraries:
@@ -193,7 +194,7 @@ parse_target() {
 				CTARGET="${CTARGET}-unknown-linux-gnueabihf";;
 			arm*)
 				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
-			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*|tile*)
+			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|riscv*|sparc*|sh*|tile*)
 				CTARGET="${CTARGET}-unknown-linux-gnu";;
 			bfin*|h8300*|msp430*|nds32*|nios2*|spu*|xc16x*)
 				CTARGET="${CTARGET}-elf";;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-10-18 22:26 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-10-18 22:26 UTC (permalink / raw
  To: gentoo-commits

commit:     82edc6ad7e32ad28dce50153ca9a2de17c3afcf8
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 18 22:24:46 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Oct 18 22:24:46 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=82edc6ad

crossdev: disable USE=jit and USE=mpx gcc-stage1

jit and mpx need working libc to link against it.
gcc-stage1 is too early for it.

Disable those as well.

Reported-by: Andrius Štikonas
Bug: https://bugs.gentoo.org/666880
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 909801f..915ffc0 100755
--- a/crossdev
+++ b/crossdev
@@ -703,8 +703,8 @@ CROSSDEV_OVERLAY=""
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
-# These are disabled only for stage1 gcc
-GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go -cxx -openmp -sanitize -vtv"
+# These are disabled only for stage1 gcc. Normally need libc present.
+GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go -jit -cxx -mpx -openmp -sanitize -vtv"
 GUSE_DISABLE_STAGE_2="${GUSE_DISABLE}"
 WITH_HEADERS="COW"   WITH_DEF_HEADERS="yes" #227065 gcc-4.3+ is a pita w/out headers
 EX_FAST="no"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-10-17 21:45 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-10-17 21:45 UTC (permalink / raw
  To: gentoo-commits

commit:     75b0da4c161dd9a93f80ff0fa223ecc9d4c03cd5
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 17 21:45:10 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Wed Oct 17 21:45:10 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=75b0da4c

crossdev: tweak comment

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 997b0a1..909801f 100755
--- a/crossdev
+++ b/crossdev
@@ -365,7 +365,7 @@ parse_target() {
 	fi
 
 	local vtv_support=no
-	# Whitelist asan on explicitly supported arches for linux.
+	# Whitelist vtv on explicitly supported arches for linux.
 	# Broken examples:
 	# - musl libc
 	# - bare metal targets


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-09-27 23:44 Jason Donenfeld
  0 siblings, 0 replies; 217+ messages in thread
From: Jason Donenfeld @ 2018-09-27 23:44 UTC (permalink / raw
  To: gentoo-commits

commit:     d30e5756540a0590ae9dd81fdc1bbf75accf9ded
Author:     Jason A. Donenfeld <zx2c4 <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 27 23:37:26 2018 +0000
Commit:     Jason Donenfeld <zx2c4 <AT> gentoo <DOT> org>
CommitDate: Thu Sep 27 23:37:26 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d30e5756

crossdev: mips64 is sometimes called mipsisa64

This is the case for tuples like `mipsisa64r6-pc-linux-gnu`, which are
required for making a working mips64r6 compiler.

Signed-off-by: Jason A. Donenfeld <zx2c4 <AT> gentoo.org>

 crossdev | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/crossdev b/crossdev
index b8027a3..997b0a1 100755
--- a/crossdev
+++ b/crossdev
@@ -280,13 +280,13 @@ parse_target() {
 		      LPKG="newlib";;
 		ppu*) TARCH=ppc64;;
 
-		mips64*-gnuabin32)
+		mips64*-gnuabin32|mipsisa64*-gnuabin32)
 		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="n32";;
-		mips64*-gnuabi64|\
-		mips64*-gnuabin64)
+		mips64*-gnuabi64|mipsisa64*-gnuabi64|\
+		mips64*-gnuabin64|mipsisa64*-gnuabin64)
 		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="n64";;
-		mips64*-gnuabi32|\
-		mips64*-gnuabio32)
+		mips64*-gnuabi32|mipsisa64*-gnuabi32|\
+		mips64*-gnuabio32|mipsisa64*-gnuabio32)
 		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="o32";;
 		ee*)  TARCH=mips;
 		      KPKG="[none]"
@@ -351,7 +351,7 @@ parse_target() {
 		# glibc targets
 		*-gnu*)
 			case ${CTARGET} in
-				mips64*)
+				mips64*|mipsisa64*)
 					# has some support code, fails to build
 					;;
 				x86_64*|i?86*|arm*|aarch64*|powerpc*)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-09-18 22:44 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-09-18 22:44 UTC (permalink / raw
  To: gentoo-commits

commit:     a23e6057c94403e010a4ccd06091b59cc332e593
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 18 22:36:48 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Sep 18 22:36:48 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=a23e6057

crossdev: don't enable USE=pie by default on any bare-metal targets

Unfortunately embedded world has a long way to go
to adopt --enable-default-pie as a first class citizen.

Note:
  --enable-default-pie enabled two things:
    - PIC-friendly code generation (-fPIE)
    - PIE executables (-pie)

  Normally one would expect firmware to pass compiler modes explicitly
  to gcc: -fPIC (or -mauto-pic, -fno-PIC), -ffreestanding, -nostdlib.

  Unfortunately upstreams are frequently reluctant to explicitly specify
  new moving parts available in gcc (in this case -no-pie) and expect
  gcc to behave as it used to in the world before --enable-default-pie.
  Unfortunate but not entirely unreasonable.

Disable --enable-default-pie until user explicitly requests USE=pie.

Reported-by: Bertrand Jacquin
Reported-by: sklv
Bug: https://lists.gnupg.org/pipermail/gnuk-users/2018-August/000086.html
Bug: https://github.com/gl-sergei/u2f-token/issues/14
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/crossdev b/crossdev
index 81bd50d..b8027a3 100755
--- a/crossdev
+++ b/crossdev
@@ -397,13 +397,14 @@ parse_target() {
 		# [2.] mingw32 startup code is broken: bug #644930
 		#      at least on i686-w64-mingw32 and x86_64-w64-mingw32
 		mingw*|*-mingw*) pie_support=no;;
-		# Some bare-metal targets don't work with pie as-is
+		# Many bare-metal targets don't work with pie as-is
 		*-elf|*-eabi)
-			case ${CTARGET} in
-				# mips can't generate freestanding PIC:
-				#   cc1: error: position-independent code requires ‘-mabicalls’
-				mips*) pie_support=no;;
-			esac
+			# mips can't generate freestanding PIC:
+			#   cc1: error: position-independent code requires ‘-mabicalls’
+			# arm firmware packages don't expect pie-by-default:
+			#   https://lists.gnupg.org/pipermail/gnuk-users/2018-August/000086.html
+			#   https://github.com/gl-sergei/u2f-token/issues/14
+			pie_support=no
 			;;
 	esac
 	if [[ $pie_support = "no" ]]; then


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-08-18 15:42 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-08-18 15:42 UTC (permalink / raw
  To: gentoo-commits

commit:     d6c59e8252caed2b0b382a5ea81db6988ebe585c
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 15:40:53 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 15:40:53 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d6c59e82

crossdev: default to USE=-pie for bare-metal mips targets

When built with pie-by-default compiling gcc fails as:
    cc1: error: position-independent code requires ‘-mabicalls’

Tested as:
    USE=-pie crossdev -t mipsel-elf

Reported-by: rhn
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/crossdev b/crossdev
index 4ee7076..81bd50d 100755
--- a/crossdev
+++ b/crossdev
@@ -397,6 +397,14 @@ parse_target() {
 		# [2.] mingw32 startup code is broken: bug #644930
 		#      at least on i686-w64-mingw32 and x86_64-w64-mingw32
 		mingw*|*-mingw*) pie_support=no;;
+		# Some bare-metal targets don't work with pie as-is
+		*-elf|*-eabi)
+			case ${CTARGET} in
+				# mips can't generate freestanding PIC:
+				#   cc1: error: position-independent code requires ‘-mabicalls’
+				mips*) pie_support=no;;
+			esac
+			;;
 	esac
 	if [[ $pie_support = "no" ]]; then
 		# pie is >=gcc-6, nopie is <gcc-6


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-07-24 23:44 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-07-24 23:44 UTC (permalink / raw
  To: gentoo-commits

commit:     712070946fb41c145b455813dc33e10f10f5ce06
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 24 23:11:18 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Jul 24 23:43:59 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=71207094

crossdev: Make armv[67] default to hardfloat following eclass change

armv7a-unknown-linux-gnueabi would have previously been treated as
hardfloat but is now softfloat.

I have removed the armv7a-hardfloat-linux-gnueabi-7.3.0 example from
the README to avoid confusion even though it does still work.

Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 README   | 3 +--
 crossdev | 2 ++
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/README b/README
index 99287a1..7aecdc4 100644
--- a/README
+++ b/README
@@ -50,8 +50,7 @@ executables or kernels if applies):
  alpha-unknown-linux-gnu-7.3.0
  arm-none-eabi-7.3.0
  armv5tel-softfloat-linux-gnueabi-7.3.0
- armv7a-hardfloat-linux-gnueabi-7.3.0
- armv7a-unknown-linux-gnueabi-7.3.0
+ armv7a-unknown-linux-gnueabihf-7.3.0
  avr-7.3.0
  hppa-unknown-linux-gnu-7.3.0
  hppa2.0-unknown-linux-gnu-7.3.0

diff --git a/crossdev b/crossdev
index a4b32a2..4ee7076 100755
--- a/crossdev
+++ b/crossdev
@@ -189,6 +189,8 @@ parse_target() {
 				CTARGET="${CTARGET}-ibm-linux-gnu";;
 			arm64*)
 				CTARGET="aarch${CTARGET#arm}-unknown-linux-gnu";;
+			armv[67]*)
+				CTARGET="${CTARGET}-unknown-linux-gnueabihf";;
 			arm*)
 				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
 			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*|tile*)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-05-08 21:40 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-05-08 21:40 UTC (permalink / raw
  To: gentoo-commits

commit:     56de3cc88635c85f96298072111a81dadf424e9f
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue May  8 21:38:40 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue May  8 21:38:40 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=56de3cc8

crossdev: disable USE=pie for all mingw targets

Jernej reports that x86_64-w64-mingw32 also exhibits
the same runtime failures with USE=pie.

Reported-by: Jernej Simoncic
Bug: https://bugs.gentoo.org/644930
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index bb03316..a4b32a2 100755
--- a/crossdev
+++ b/crossdev
@@ -393,7 +393,8 @@ parse_target() {
 		#       check as '$CC -fPIC -c -x c - </dev/null'
 		avr*|mmix*) pie_support=no;;
 		# [2.] mingw32 startup code is broken: bug #644930
-		mingw32|i686-w64-mingw32) pie_support=no;;
+		#      at least on i686-w64-mingw32 and x86_64-w64-mingw32
+		mingw*|*-mingw*) pie_support=no;;
 	esac
 	if [[ $pie_support = "no" ]]; then
 		# pie is >=gcc-6, nopie is <gcc-6


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-04-10  7:15 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-04-10  7:15 UTC (permalink / raw
  To: gentoo-commits

commit:     78d402061875170020c6ad4a29a45296007372e4
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 10 07:00:10 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Apr 10 07:00:10 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=78d40206

crossdev: unconditionally create /usr/${CTARGET}/{lib,usr/lib}

Copying note as-is here:

```
Create directories usually created by sys-apps/baselayout

Why we do that at all:
For multilib-aware targets (ppc64, s390x, sparc64, x86_64) Gentoo
normally uses libdir=lib64.
For crossdev it means /lib and /usr/lib does not get created at all
but gcc relies on their presence by refering to =/lib64 as
=/usr/lib/../lib64 when builds itself (see https://bugs.gentoo.org/652724)

Thus we create non-symlinked layout early.
```

Before the change 'crossdev -t powerpc64le-foo-linux-gnu' failed
at gcc-stage2 as:

```
    ... \
    -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 \
    -o ./libgcc_s.so.1.tmp \
    ... \
/usr/libexec/gcc/powerpc64le-foo-linux-gnu/ld:
    cannot find crti.o: No such file or directory

access("/usr/powerpc64le-foo-linux-gnu/usr/lib/../lib64/crti.o", R_OK) = -1
    ENOENT (No such file or directory)
```

The change adds empty directory '/usr/powerpc64le-foo-linux-gnu/usr/lib'
to make ld probing finally find 'crti.o' in $SYSROOT.

Reported-by: Luke-Jr
Bug: https://bugs.gentoo.org/652724
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/crossdev b/crossdev
index b68f821..bb03316 100755
--- a/crossdev
+++ b/crossdev
@@ -1248,6 +1248,20 @@ hr
 xmkdir -p "${EPREFIX}"/usr/${CTARGET}
 emerge-wrapper --target ${CTARGET} --init || exit 1
 
+#############################################################
+### Create directories usually created by sys-apps/baselayout
+###
+### Why we do that at all:
+### For multilib-aware targets (ppc64, s390x, sparc64, x86_64) Gentoo
+### normally uses libdir=lib64.
+### For crossdev it means /lib and /usr/lib does not get created at all
+### but gcc relies on their presence by refering to =/lib64 as
+### =/usr/lib/../lib64 when builds itself (see https://bugs.gentoo.org/652724)
+###
+### Thus we create non-symlinked layout early.
+xmkdir -p "${EPREFIX}"/usr/${CTARGET}/lib
+xmkdir -p "${EPREFIX}"/usr/${CTARGET}/usr/lib
+
 #################
 emerged_with_use() {
 	local pkg=$1 use=$2


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-04-09 20:46 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-04-09 20:46 UTC (permalink / raw
  To: gentoo-commits

commit:     4722cdec3ab449b35283ef6f954c11953d160cc5
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Apr  9 20:45:43 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Apr  9 20:45:43 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=4722cdec

crossdev: add USE=mutilib reporting injected for targets

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index ae26995..b68f821 100755
--- a/crossdev
+++ b/crossdev
@@ -922,6 +922,7 @@ einfo "Host Portage ARCH:     ${HARCH}"
 einfo "Target Portage ARCH:   ${TARCH}"
 einfo "Target System:         ${CTARGET}"
 einfo "Stage:                 ${STAGE} (${STAGE_DISP[${STAGE}]})"
+einfo "USE=multilib:          ${MULTILIB_USE}"
 [[ ${DEFAULT_ABI} != "${MULTILIB_ABIS}" ]] && def_out=" (default: ${DEFAULT_ABI})" || def_out=
 einfo "ABIs:                  ${MULTILIB_ABIS}${def_out}"
 echo


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-04-07 15:57 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-04-07 15:57 UTC (permalink / raw
  To: gentoo-commits

commit:     3b51089b55836bb36e0e0123f68068642ee0437f
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  7 15:56:49 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Apr  7 15:56:49 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=3b51089b

README: wordsmithing, fixed a few typos

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 README | 146 ++++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 76 insertions(+), 70 deletions(-)

diff --git a/README b/README
index 65703cb..99287a1 100644
--- a/README
+++ b/README
@@ -6,27 +6,31 @@ crossdev is a cross-compiler environment generator for Gentoo.
 It is useful for various purposes:
 
 - build cross-compiler toolchain for an operating system
-- build cross-compiler toolchain for embedded targets (bare metal)
+- build cross-compiler toolchain for embedded target (bare metal)
 - cross-compile whole Gentoo on a new (or existing) target
 - cross-compile your favourite tool for every target out there
   just to make sure it still compiles and works. Countless bugs
-  were found fixed like that :)
+  were found and fixed like that :)
 
 Crossdev nano HOWTO
 -------------------
 
-So you want to cross-compile a Gentoo package (say busybox):
+So you want to cross-compile a Gentoo package (say busybox to s390x):
 
-# crossdev -t s390x-unknown-linux-gnu
-# (optional) ARCH=s390 PORTAGE_CONFIGROOT=/usr/s390x-unknown-linux-gnu eselect profile set default/linux/s390/17.0/s390x
-# USE=static s390x-unknown-linux-gnu emerge -v1 busybox
-# file /usr/s390x-unknown-linux-gnu/bin/busybox
-/usr/s390x-unknown-linux-gnu/bin/busybox: ELF 64-bit MSB executable, IBM S/390, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.2.0, stripped
+  # crossdev -t s390x-unknown-linux-gnu
+  # (optional) ARCH=s390 PORTAGE_CONFIGROOT=/usr/s390x-unknown-linux-gnu eselect profile set default/linux/s390/17.0/s390x
+  # USE=static s390x-unknown-linux-gnu-emerge -v1 busybox
+  # file /usr/s390x-unknown-linux-gnu/bin/busybox
+  /usr/s390x-unknown-linux-gnu/bin/busybox: ELF 64-bit MSB executable, IBM S/390, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.2.0, stripped
 
 Done!
 
-You can even use qemu-user to run this binary (or even chroot
-to /usr/s390x-unknown-linux-gnu!
+You can use qemu-user to run this binary:
+
+  $ qemu-s390x -L /usr/s390x-unknown-linux-gnu/ /usr/s390x-unknown-linux-gnu/bin/busybox uname -m
+  s390x
+
+or even chroot to /usr/s390x-unknown-linux-gnu directory!
 
 https://wiki.gentoo.org/wiki/Crossdev_qemu-static-user-chroot
 
@@ -36,7 +40,7 @@ Supported platforms
 Cross-compilation is fairly well supported to linux targets.
 Windows is not too broken either.
 
-But prepare for rough corners. This doc will try to help you
+Be prepared for rough corners. This doc will try to help you
 understand what crossdev does and does not do.
 
 A few examples of targets that worked today (produce running
@@ -75,31 +79,31 @@ executables or kernels if applies):
  x86_64-pc-linux-gnu-7.3.0
  x86_64-w64-mingw32-7.3.0
 
-A few more things are likely to Just Work
-and many more can be made work with a litle touch.
+A few more targets are likely to Just Work.
+And many more can be made to work with a litle touch.
 
 How crossdev works (high-level overview)
 ----------------------------------------
 
-crossdev is a tiny shell wrapper around emerge. Wrapper overrides
-a few variabled to aim emerge to another target.
+crossdev is a tiny shell wrapper around emerge tool. The wrapper
+overrides a few variables to aim emerge at another target.
 
-Crossdev leverages following features of portage (and ::gentoo ebulds):
+Crossdev leverages the following features of portage (and ::gentoo
+ebulds):
 
 - ability to override ROOT=/usr/<target> to install cross-compiled
   packages into a new root on a filesystem to avoid cluttering host.
 
 - ability to override PORTAGE_CONFIGROOT=/usr/<target> to untangle
-  from host's portage configuration.
-
-  Namely crossdev populates /usr/<target>/etc/portage/ with defaults
-  suitable for cross-compiling (ARCH, KERNEL, ELIBC variables and so on).
-  You can change all of it.
+  from host's /etc/portage/ configuration. Namely crossdev populates
+      /usr/<target>/etc/portage/
+  with defaults suitable for cross-compiling (ARCH, KERNEL, ELIBC
+  variables and so on). You can change all of them.
 
 - set CBUILD/CHOST/CTARGET variables accordingly to force build
   system into cross-compiling mode. For autotools-based system
-  it means running the following configure script:
-    ./configure --build=${CBUILD} --host=${CHOST} --target=${CTARGET}
+  it means running ./configure script using following options:
+    ./configure --build=${CBUILD} --host=${CHOST} --target=${CTARGET} ...
 
 If toolchains were simple programs crossdev would be a one-liner script:
 
@@ -114,27 +118,29 @@ Unfortunately todays' toolchains have loops in their build-time dependencies:
 
 - cross-compiler itself normally needs a libc built for <target> because
   libc defines various aspects of userland ABI and features provided.
-- and libc for <target> needs a cross-comiler because it's written in C
+- and libc is written in C and thus needs a cross-compiler to be built for
+  <target>.
 
 That's where crossdev comes in useful. It unties this vicious compiler<->libc
-circle by carefully running the following emerge commands (assume s390x-linux
+circle by carefully running the following emerge commands (assume s390x
 example).
 
 Here is what crossdev actually does:
 
 1. create an overlay with new ebuilds (symlinks to existing ebuilds)
-2. build cross-binutils
-    $ emerge cross-s390x-unknown-linux-gnu/binutils
-3. Install minimal set of system headers (kernel and libc)
+2. build cross-binutils:
+   $ emerge cross-s390x-unknown-linux-gnu/binutils
+3. Install system headers (kernel headers and libc headers):
    $ USE="headers-only" emerge cross-s390x-unknown-linux-gnu/linux-headers
    $ USE="headers-only" emerge cross-s390x-unknown-linux-gnu/glibc
-4. Build minimal GCC without libc support (not able link final executables yet)
+4. Build minimal GCC without libc support (not able to link final
+   executables yet)
    $ USE="-*" emerge cross-s390x-unknown-linux-gnu/gcc
-5. Build complete libc
-   $ USE="-headers-only" emerge cross-s390x-unknown-linux-gnu/linux-headers
-   $ USE="-headers-only" emerge cross-s390x-unknown-linux-gnu/glibc
-6. Build full GCC (able to link final binaries and can do c++)
-   $ USE="" emerge cross-s390x-unknown-linux-gnu/gcc
+5. Build complete libc (gcc will need crt.o files)
+   $ emerge cross-s390x-unknown-linux-gnu/linux-headers
+   $ emerge cross-s390x-unknown-linux-gnu/glibc
+6. Build full GCC (able to link final binaries for C and C++)
+   $ emerge cross-s390x-unknown-linux-gnu/gcc
 
 Done!
 
@@ -142,12 +148,13 @@ How crossdev works (more details)
 ---------------------------------
 
 This section contains more details on what actually happens.
-Here we expand on each step briefly outlined in previous section:
+Here we elaborate on each step outlined in previous section:
 
 1. create an overlay with new ebuilds (symlinks to existing ebuilds)
-   <skipping actual commands>. After this step the outcomes are:
+   <skipping numeruos mkdir and ln commands>. After this step the
+   outcomes are:
 
-   - overlay layout is formed:
+   - overlay layout is formed in cross-overlay/:
 
      $ ls -l cross-overlay/cross-s390x-unknown-linux-gnu
      binutils -> /gentoo-ebuilds/gentoo/sys-devel/binutils
@@ -165,7 +172,6 @@ Here we expand on each step briefly outlined in previous section:
      Here we override ARCH, LIBC, KERNEL, CBUILD, CHOST, CTARGET and a
      few other variables.
 
-
    - a few convenience wrappers are created:
 
      /usr/bin/s390x-unknown-linux-gnu-emerge -> cross-emerge
@@ -173,13 +179,13 @@ Here we expand on each step briefly outlined in previous section:
      /usr/bin/s390x-unknown-linux-gnu-fix-root -> cross-fix-root
 
    This way we share ebuild code and still can install cross-compilers
-   independently. Each with it's owv version of libc.
+   independently. Each with it's own version of libc.
 
 2. build cross-binutils
-   $ emerge cross-s390x-unknown-linux-gnu/binutils
+   # emerge cross-s390x-unknown-linux-gnu/binutils
 
-   This way we can install the same version of binutils aiming different
-   targets. As a result we get tools like:
+   This way we can install the same version of binutils aiming at
+   a new target. As a result we get tools like:
    s390x-unknown-linux-gnu-ar (static library archiver)
    s390x-unknown-linux-gnu-as (assembler)
    s390x-unknown-linux-gnu-ld (linker)
@@ -191,56 +197,56 @@ Here we expand on each step briefly outlined in previous section:
    $ USE="headers-only" emerge cross-s390x-unknown-linux-gnu/linux-headers
    $ USE="headers-only" emerge cross-s390x-unknown-linux-gnu/glibc
 
-   As we don't have cross-compiler yet we just copy a bunch on
+   As we don't have cross-compiler yet ebuilds just copy a bunch of
    header files into
        /usr/s390x-unknown-linux-gnu/usr/include
    and setup symlinks like:
        /usr/s390x-unknown-linux-gnu/sys-include -> usr/include
    to make cross-gcc happy.
 
-   These symlinks are target-dependent. A few unusual examples:
+   These include symlinks are target-dependent. A few unusual examples:
 
    - windows (mingw): /usr/x86_64-w64-mingw32/mingw -> usr
    - hurd: /usr/i686-pc-gnu/include -> usr/include
-   - DOS (didn't try yet): /usr/i686-pc-gnu/dev/env/DJDIR/include -> ../../../usr/include
+   - DOS: /usr/i686-pc-gnu/dev/env/DJDIR/include -> ../../../usr/include
 
    Side note: we could have omited symlink creation completely
    and build gcc with parameter:
      --with-native-system-header-dir=${EPREFIX}/usr/include
-   That way ${SYSROOT} would be even more like normal root.
-   Worth a try this one line :)
+   That way ${SYSROOT} directory contents would be even more like normal
+   root. Worth a try! TODO: actually do it.
 
-4. Build minimal GCC without libc support (not able link final executables yet)
-   $ USE="-*" emerge cross-s390x-unknown-linux-gnu/gcc
+4. Build minimal GCC without libc support (not able to link final executables
+   yet)
+   # USE="-*" emerge cross-s390x-unknown-linux-gnu/gcc
 
-   Here gcc uses headers from step [3.] to find out what
-   target libc can do:
+   Here gcc uses headers from step [3.] to find out what target libc can do:
 
    - POSIX support
    - trigonometry functions
    - threading
    - vital constants
 
-   As a result we only get C code generator. No knowledge
-   of how to link executables or shared libraries as those
-   require bits of libc.
+   As a result we only get C code generator. No knowledge of how to link
+   executables or shared libraries as those require bits of libc.
 
-   For tiniest targets (bare-metal) this can be a final step to get basic toolchain.
+   For tiniest targets (bare-metal) this can be a final step to get basic
+   C toolchain.
 
 5. Build complete libc
-   $ USE="-headers-only" emerge cross-s390x-unknown-linux-gnu/linux-headers
-   $ USE="-headers-only" emerge cross-s390x-unknown-linux-gnu/glibc
+   # emerge cross-s390x-unknown-linux-gnu/linux-headers
+   # emerge cross-s390x-unknown-linux-gnu/glibc
 
-   Here we rebuild full libc against system headers. As a result we get C startup
-   files and can link full programs!
+   Here we build full libc against system headers. As a result we get C
+   startup files (crt.o) and can now link full C programs!
 
-6. Build full GCC (able to link final binaries and can do c++)
-   $ USE="" emerge cross-s390x-unknown-linux-gnu/gcc
+6. Build full GCC (able to link final binaries for C and C++)
+   # USE="" emerge cross-s390x-unknown-linux-gnu/gcc
 
-   Here we get full c++ support, various default flags enabled (pie, sanitizers,
-   stack protectors and many other things).
+   Here we get full C++ support, various default flags enabled (pie,
+   sanitizers, stack protectors and others).
 
-   This thing is ready for large-scale operations.
+   The final result is ready for large-scale operations.
 
 Various notes (AKA dirty little tricks)
 ---------------------------------------
@@ -252,22 +258,22 @@ Various notes (AKA dirty little tricks)
 
   crossdev installs /usr/share/config.site with a bunch of cache
   variables preset for targets. It might be a nice place to drop
-  more things into. Or a source of all your cross-compilation
-  problems :)
+  more things into. Or it could be a source of all your cross-compilation
+  problems if variables set incorrect values.
 
-- eclass inheritance
+- eclass importing
 
   To find out various things about target crossdev loads multilib.eclass
   and tries to find out default ABI supported by the target.
 
 - crossdev is just a tiny shell script around emerge :)
 
-  It's full source code of comparable to the size of this README.
+  It's full source code is comparable to the size of this README.
 
 - USE=headers-only
 
-  Many toolchain ebuilds (mostly libcs and kernel headers) are aware
-  of headers-only install specifically for crossdev and similar tools
+  Many toolchain ebuilds (libcs and kernel headers) are aware of
+  headers-only install specifically for crossdev and similar tools
   to be able to build cross-toolchains.
 
 - How to test crossdev layout generation:


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-04-07 11:21 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-04-07 11:21 UTC (permalink / raw
  To: gentoo-commits

commit:     c684ab8846a927d79a9cd0bf4c2c0e94cea34595
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  7 11:21:04 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Apr  7 11:21:04 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=c684ab88

crossdev: don't try to delete files from /usr/${CTARGET}/bin/

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 0f64235..ae26995 100755
--- a/crossdev
+++ b/crossdev
@@ -538,7 +538,7 @@ uninstall() {
 		gcc-{ar,nm,ranlib} gccbug gcov-{dump,tool} gprof ld nm \
 		objcopy objdump ranlib readelf size strings strip windmc windres
 	do
-		rm -f "${EPREFIX}"/usr/bin/${CTARGET}-${f} "${EPREFIX}"/usr/${CTARGET}/bin/${f}
+		rm -f "${EPREFIX}"/usr/bin/${CTARGET}-${f}
 	done
 	rm -f "${EPREFIX}"/usr/${CTARGET}/{sys-include,usr}
 	rmdir "${EPREFIX}"/usr/${CTARGET}/{include/asm,include} 2>/dev/null


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-04-07 10:56 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-04-07 10:56 UTC (permalink / raw
  To: gentoo-commits

commit:     cb22827620f16f8e29fdeb3654a7e5a846af517e
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  7 10:51:11 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Apr  7 10:51:11 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=cb228276

crossdev: revert ldscripts hack

Commit 03640757f2af1471324fc3e305f899f377d6409d
("add one more avr-specific hack")
added ${EPREFIX}/usr/${CTARGET}/lib/ldscripts symlink for avr targets.

The bug was not avr-specific but manifested only on avr ecause it's one
of rare targets that don't embed default inker scripts intofinal ld executable.

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b023986de7d466d361798bae98f45f8ba7a42e8a
fixed search path in binutils ebuild and we are safe to revert this change.

Bug: https://bugs.gentoo.org/147155
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/crossdev b/crossdev
index a646158..0f64235 100755
--- a/crossdev
+++ b/crossdev
@@ -232,7 +232,6 @@ parse_target() {
 		      MULTILIB_USE="yes" #377039
 		      BUSE+=" cxx"
 		      STAGE_DEFAULT=${STAGE_LIBC}
-		      MAKE_SYMLINK="yes"
 		      WITH_DEF_HEADERS="no";;
 
 		# Has no glibc support yet (or even ABI defined). Can
@@ -549,7 +548,6 @@ uninstall() {
 	# clean out files from crossdev itself
 	[[ -e ${EPREFIX}/var/db/pkg/cross-${CTARGET} ]] && rmdir "${EPREFIX}"/var/db/pkg/cross-${CTARGET}
 	rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} "${EPREFIX}"/usr/bin/emerge-${CTARGET}
-	[[ -h ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] && rm "${EPREFIX}"/usr/${CTARGET}/lib/ldscripts
 
 	for f in make.{conf,globals,profile} ; do
 		f="${EPREFIX}/usr/${CTARGET}/etc/${f}"
@@ -1395,16 +1393,6 @@ if ! ex_fast ; then
 		USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
 			doemerge ${GPKG} ${GPKG}-stage2
 	fi
-
-	# this is to make sure that avr linker can find its a**, er, ldscripts
-	if [[ ${MAKE_SYMLINK} == "yes" ]] ; then
-		case ${CTARGET} in
-			avr*)   ( ! [[ -h ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] && [[ -d ${EPREFIX}/usr/${CTARGET}/lib ]] ) && \
-					ln -s ${EPREFIX}/usr/${HCHOST}/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/
-				;;
-			*)      ;;
-		esac
-	fi
 fi
 
 # all the extra things (like debuggers)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-04-07  7:27 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-04-07  7:27 UTC (permalink / raw
  To: gentoo-commits

commit:     0df39675bc7412e755b147174c7f28b7669eb1d4
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  7 07:27:28 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Apr  7 07:27:28 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=0df39675

README: fixed typo s/rinning/running/

Reported-by: Marty E. Plummer
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README b/README
index 4924258..65703cb 100644
--- a/README
+++ b/README
@@ -117,7 +117,7 @@ Unfortunately todays' toolchains have loops in their build-time dependencies:
 - and libc for <target> needs a cross-comiler because it's written in C
 
 That's where crossdev comes in useful. It unties this vicious compiler<->libc
-circle by carefully rinning the following emerge commands (assume s390x-linux
+circle by carefully running the following emerge commands (assume s390x-linux
 example).
 
 Here is what crossdev actually does:


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-04-05 22:16 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-04-05 22:16 UTC (permalink / raw
  To: gentoo-commits

commit:     7ea765f7ff98a0f07ee1f21cc83d2b4db81c02b2
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Apr  5 22:15:26 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Apr  5 22:15:26 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=7ea765f7

README: basic description of what crossdev

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 README | 281 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 281 insertions(+)

diff --git a/README b/README
new file mode 100644
index 0000000..4924258
--- /dev/null
+++ b/README
@@ -0,0 +1,281 @@
+What is crossdev
+----------------
+
+crossdev is a cross-compiler environment generator for Gentoo.
+
+It is useful for various purposes:
+
+- build cross-compiler toolchain for an operating system
+- build cross-compiler toolchain for embedded targets (bare metal)
+- cross-compile whole Gentoo on a new (or existing) target
+- cross-compile your favourite tool for every target out there
+  just to make sure it still compiles and works. Countless bugs
+  were found fixed like that :)
+
+Crossdev nano HOWTO
+-------------------
+
+So you want to cross-compile a Gentoo package (say busybox):
+
+# crossdev -t s390x-unknown-linux-gnu
+# (optional) ARCH=s390 PORTAGE_CONFIGROOT=/usr/s390x-unknown-linux-gnu eselect profile set default/linux/s390/17.0/s390x
+# USE=static s390x-unknown-linux-gnu emerge -v1 busybox
+# file /usr/s390x-unknown-linux-gnu/bin/busybox
+/usr/s390x-unknown-linux-gnu/bin/busybox: ELF 64-bit MSB executable, IBM S/390, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.2.0, stripped
+
+Done!
+
+You can even use qemu-user to run this binary (or even chroot
+to /usr/s390x-unknown-linux-gnu!
+
+https://wiki.gentoo.org/wiki/Crossdev_qemu-static-user-chroot
+
+Supported platforms
+-------------------
+
+Cross-compilation is fairly well supported to linux targets.
+Windows is not too broken either.
+
+But prepare for rough corners. This doc will try to help you
+understand what crossdev does and does not do.
+
+A few examples of targets that worked today (produce running
+executables or kernels if applies):
+
+ aarch64-unknown-linux-gnu-7.3.0
+ alpha-unknown-linux-gnu-7.3.0
+ arm-none-eabi-7.3.0
+ armv5tel-softfloat-linux-gnueabi-7.3.0
+ armv7a-hardfloat-linux-gnueabi-7.3.0
+ armv7a-unknown-linux-gnueabi-7.3.0
+ avr-7.3.0
+ hppa-unknown-linux-gnu-7.3.0
+ hppa2.0-unknown-linux-gnu-7.3.0
+ hppa64-unknown-linux-gnu-7.3.0
+ i686-pc-gnu-7.3.0
+ i686-w64-mingw32-7.3.0
+ ia64-unknown-linux-gnu-7.3.0
+ m68k-unknown-linux-gnu-7.3.0
+ mips-unknown-linux-gnu-7.3.0
+ mips64-unknown-linux-gnu-7.3.0
+ mips64el-unknown-linux-gnu-7.3.0
+ mipsel-unknown-linux-gnu-7.3.0
+ mmix-7.3.0
+ nios2-unknown-linux-gnu-7.3.0
+ powerpc-unknown-linux-gnu-7.3.0
+ powerpc64-unknown-linux-gnu-7.3.0
+ powerpc64le-unknown-linux-gnu-7.3.0
+ s390-unknown-linux-gnu-7.3.0
+ s390x-unknown-linux-gnu-7.3.0
+ sh4-unknown-linux-gnu-7.3.0
+ sparc-unknown-linux-gnu-7.3.0
+ sparc64-unknown-linux-gnu-7.3.0
+ x86_64-HEAD-linux-gnu-7.3.0
+ x86_64-UNREG-linux-gnu-7.3.0
+ x86_64-pc-linux-gnu-7.3.0
+ x86_64-w64-mingw32-7.3.0
+
+A few more things are likely to Just Work
+and many more can be made work with a litle touch.
+
+How crossdev works (high-level overview)
+----------------------------------------
+
+crossdev is a tiny shell wrapper around emerge. Wrapper overrides
+a few variabled to aim emerge to another target.
+
+Crossdev leverages following features of portage (and ::gentoo ebulds):
+
+- ability to override ROOT=/usr/<target> to install cross-compiled
+  packages into a new root on a filesystem to avoid cluttering host.
+
+- ability to override PORTAGE_CONFIGROOT=/usr/<target> to untangle
+  from host's portage configuration.
+
+  Namely crossdev populates /usr/<target>/etc/portage/ with defaults
+  suitable for cross-compiling (ARCH, KERNEL, ELIBC variables and so on).
+  You can change all of it.
+
+- set CBUILD/CHOST/CTARGET variables accordingly to force build
+  system into cross-compiling mode. For autotools-based system
+  it means running the following configure script:
+    ./configure --build=${CBUILD} --host=${CHOST} --target=${CTARGET}
+
+If toolchains were simple programs crossdev would be a one-liner script:
+
+  ARCH=...    \
+  CBUILD=...  \
+  CHOST=...   \
+  CTARGET=... \
+  ROOT=...    \
+      emerge "$@"
+
+Unfortunately todays' toolchains have loops in their build-time dependencies:
+
+- cross-compiler itself normally needs a libc built for <target> because
+  libc defines various aspects of userland ABI and features provided.
+- and libc for <target> needs a cross-comiler because it's written in C
+
+That's where crossdev comes in useful. It unties this vicious compiler<->libc
+circle by carefully rinning the following emerge commands (assume s390x-linux
+example).
+
+Here is what crossdev actually does:
+
+1. create an overlay with new ebuilds (symlinks to existing ebuilds)
+2. build cross-binutils
+    $ emerge cross-s390x-unknown-linux-gnu/binutils
+3. Install minimal set of system headers (kernel and libc)
+   $ USE="headers-only" emerge cross-s390x-unknown-linux-gnu/linux-headers
+   $ USE="headers-only" emerge cross-s390x-unknown-linux-gnu/glibc
+4. Build minimal GCC without libc support (not able link final executables yet)
+   $ USE="-*" emerge cross-s390x-unknown-linux-gnu/gcc
+5. Build complete libc
+   $ USE="-headers-only" emerge cross-s390x-unknown-linux-gnu/linux-headers
+   $ USE="-headers-only" emerge cross-s390x-unknown-linux-gnu/glibc
+6. Build full GCC (able to link final binaries and can do c++)
+   $ USE="" emerge cross-s390x-unknown-linux-gnu/gcc
+
+Done!
+
+How crossdev works (more details)
+---------------------------------
+
+This section contains more details on what actually happens.
+Here we expand on each step briefly outlined in previous section:
+
+1. create an overlay with new ebuilds (symlinks to existing ebuilds)
+   <skipping actual commands>. After this step the outcomes are:
+
+   - overlay layout is formed:
+
+     $ ls -l cross-overlay/cross-s390x-unknown-linux-gnu
+     binutils -> /gentoo-ebuilds/gentoo/sys-devel/binutils
+     gcc -> /gentoo-ebuilds/gentoo/sys-devel/gcc
+     glibc -> /gentoo-ebuilds/gentoo/sys-libs/glibc
+     linux-headers -> /gentoo-ebuilds/gentoo/sys-kernel/linux-headers
+
+   - /usr/cross-s390x-unknown-linux-gnu (aka $SYSROOT) layout is set:
+
+     $ ls -l /usr/s390x-unknown-linux-gnu/etc/portage/
+     make.conf
+     make.profile -> /gentoo-ebuilds/gentoo/profiles/embedded
+     profile/
+
+     Here we override ARCH, LIBC, KERNEL, CBUILD, CHOST, CTARGET and a
+     few other variables.
+
+
+   - a few convenience wrappers are created:
+
+     /usr/bin/s390x-unknown-linux-gnu-emerge -> cross-emerge
+     /usr/bin/s390x-unknown-linux-gnu-pkg-config -> cross-pkg-config
+     /usr/bin/s390x-unknown-linux-gnu-fix-root -> cross-fix-root
+
+   This way we share ebuild code and still can install cross-compilers
+   independently. Each with it's owv version of libc.
+
+2. build cross-binutils
+   $ emerge cross-s390x-unknown-linux-gnu/binutils
+
+   This way we can install the same version of binutils aiming different
+   targets. As a result we get tools like:
+   s390x-unknown-linux-gnu-ar (static library archiver)
+   s390x-unknown-linux-gnu-as (assembler)
+   s390x-unknown-linux-gnu-ld (linker)
+   ... <many others>
+
+   Nothing special here.
+
+3. Install minimal set of system headers (kernel and libc)
+   $ USE="headers-only" emerge cross-s390x-unknown-linux-gnu/linux-headers
+   $ USE="headers-only" emerge cross-s390x-unknown-linux-gnu/glibc
+
+   As we don't have cross-compiler yet we just copy a bunch on
+   header files into
+       /usr/s390x-unknown-linux-gnu/usr/include
+   and setup symlinks like:
+       /usr/s390x-unknown-linux-gnu/sys-include -> usr/include
+   to make cross-gcc happy.
+
+   These symlinks are target-dependent. A few unusual examples:
+
+   - windows (mingw): /usr/x86_64-w64-mingw32/mingw -> usr
+   - hurd: /usr/i686-pc-gnu/include -> usr/include
+   - DOS (didn't try yet): /usr/i686-pc-gnu/dev/env/DJDIR/include -> ../../../usr/include
+
+   Side note: we could have omited symlink creation completely
+   and build gcc with parameter:
+     --with-native-system-header-dir=${EPREFIX}/usr/include
+   That way ${SYSROOT} would be even more like normal root.
+   Worth a try this one line :)
+
+4. Build minimal GCC without libc support (not able link final executables yet)
+   $ USE="-*" emerge cross-s390x-unknown-linux-gnu/gcc
+
+   Here gcc uses headers from step [3.] to find out what
+   target libc can do:
+
+   - POSIX support
+   - trigonometry functions
+   - threading
+   - vital constants
+
+   As a result we only get C code generator. No knowledge
+   of how to link executables or shared libraries as those
+   require bits of libc.
+
+   For tiniest targets (bare-metal) this can be a final step to get basic toolchain.
+
+5. Build complete libc
+   $ USE="-headers-only" emerge cross-s390x-unknown-linux-gnu/linux-headers
+   $ USE="-headers-only" emerge cross-s390x-unknown-linux-gnu/glibc
+
+   Here we rebuild full libc against system headers. As a result we get C startup
+   files and can link full programs!
+
+6. Build full GCC (able to link final binaries and can do c++)
+   $ USE="" emerge cross-s390x-unknown-linux-gnu/gcc
+
+   Here we get full c++ support, various default flags enabled (pie, sanitizers,
+   stack protectors and many other things).
+
+   This thing is ready for large-scale operations.
+
+Various notes (AKA dirty little tricks)
+---------------------------------------
+
+- config.site
+
+  Some ./configure scripts rely on runtime feature testing. We would
+  still like to enable things even in cross-environment.
+
+  crossdev installs /usr/share/config.site with a bunch of cache
+  variables preset for targets. It might be a nice place to drop
+  more things into. Or a source of all your cross-compilation
+  problems :)
+
+- eclass inheritance
+
+  To find out various things about target crossdev loads multilib.eclass
+  and tries to find out default ABI supported by the target.
+
+- crossdev is just a tiny shell script around emerge :)
+
+  It's full source code of comparable to the size of this README.
+
+- USE=headers-only
+
+  Many toolchain ebuilds (mostly libcs and kernel headers) are aware
+  of headers-only install specifically for crossdev and similar tools
+  to be able to build cross-toolchains.
+
+- How to test crossdev layout generation:
+
+  $ mkdir -p foo
+  $ PORTAGE_CONFIGROOT=$(pwd)/foo EPREFIX=$(pwd)/foo ./crossdev -t mmix -P -p
+
+  This needs some local patching. TODO: fix it to Just Work (perhaps with
+  additional --test options).
+
+Happy cross-compiling!


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-03-02 22:32 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-03-02 22:32 UTC (permalink / raw
  To: gentoo-commits

commit:     d7c82ccdd26f7212116a9ccc57b16d23d9cb2288
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  2 22:32:06 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Mar  2 22:32:06 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d7c82ccd

crossdev: disable fortran in gcc-stage2 no bare-metal targets, bug #589672

Bug: https://bugs.gentoo.org/589672
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index dac24b4..a646158 100755
--- a/crossdev
+++ b/crossdev
@@ -323,6 +323,7 @@ parse_target() {
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
 			GUSE+=" cxx -openmp" #489798
+			GUSE+=" -fortran" #589672, needs syscalls
 			MULTILIB_USE="yes" #407275
 			WITH_DEF_HEADERS="no"
 			;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-02-03  9:39 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-02-03  9:39 UTC (permalink / raw
  To: gentoo-commits

commit:     4d3efcb905f7b1babfe7c5c193ebb64e19534ec4
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Feb  3 09:38:36 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Feb  3 09:38:36 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=4d3efcb9

crossdev: update help test to point to new "overlay howto" location

Reported-by: gentoo <AT> frederic-gierlinger.at
Closes: https://bugs.gentoo.org/646144
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 3eccfcd..dac24b4 100755
--- a/crossdev
+++ b/crossdev
@@ -819,7 +819,7 @@ show_target_cfg() {
 setup_portage_vars
 if [[ -z ${CROSSDEV_OVERLAY} ]] ; then
 	eerror "You need to specify an output overlay.  Please use --ov-output, or consult"
-	eerror "https://wiki.gentoo.org/wiki/Overlay/Local_overlay for more details."
+	eerror "https://wiki.gentoo.org/wiki/Custom_repository for more details."
 	exit 1
 fi
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-01-20 12:37 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-01-20 12:37 UTC (permalink / raw
  To: gentoo-commits

commit:     1803a14a1ad634a1e1153efd2f906aa1c7bb0fc1
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 20 12:30:01 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jan 20 12:30:01 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=1803a14a

crossdev: blacklist known broken targets for PIE and SSP, bug #644930

- SSP is not supported by alpha, hppa, ia64, avr, nios2, mmix
- PIE is not supported by avr, mmix, mingw32

Bug: https://bugs.gentoo.org/644930
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 40 +++++++++++++++++++++++++++++++++++++---
 1 file changed, 37 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 10097a0..3eccfcd 100755
--- a/crossdev
+++ b/crossdev
@@ -228,7 +228,7 @@ parse_target() {
 		avr*) KPKG="[none]"
 		      LCAT="dev-embedded"
 		      LPKG="avr-libc"
-		      GUSE+=" -fortran -go -pie nopie" # doesn't work
+		      GUSE+=" -fortran -go" # doesn't work
 		      MULTILIB_USE="yes" #377039
 		      BUSE+=" cxx"
 		      STAGE_DEFAULT=${STAGE_LIBC}
@@ -334,6 +334,10 @@ parse_target() {
 			;;
 	esac
 
+	# Target-specific defaults (workarounds for upstream bugs). User
+	# can override them by passing 'USE=foo crossdev ...'. Useful when
+	# one wants to fix upstream bugs.
+
 	local sanitizer_support=no
 	# Whitelist asan on explicitly supported arches for linux.
 	# Broken examples:
@@ -379,6 +383,36 @@ parse_target() {
 	if [[ $vtv_support = "no" ]]; then
 		GUSE+=" -vtv"
 	fi
+
+	local pie_support=yes
+	# Blacklist rare targets that:
+	# 1. don't support -fPIC in compiler
+	# 2. have -fPIE broken
+	case ${CTARGET} in
+		# [1.]: no -fPIC flag support:
+		#       check as '$CC -fPIC -c -x c - </dev/null'
+		avr*|mmix*) pie_support=no;;
+		# [2.] mingw32 startup code is broken: bug #644930
+		mingw32|i686-w64-mingw32) pie_support=no;;
+	esac
+	if [[ $pie_support = "no" ]]; then
+		# pie is >=gcc-6, nopie is <gcc-6
+		GUSE+=" -pie nopie"
+	fi
+
+	local ssp_support=yes
+	# Blacklist rare targets that:
+	# 1. don't support -fstack-protector in compiler
+	# 2. have -fstack-protector broken
+	case ${CTARGET} in
+		# [1.]: no -fstack-protector flag support:
+		#       check as '$CC -fstack-protector -c -x c - </dev/null'
+		alpha*|avr*|hppa*|ia64*|mmix*|nios2*) ssp_support=no;;
+	esac
+	if [[ $ssp_support = "no" ]]; then
+		# ssp is >=gcc-6, nossp is <gcc-6
+		GUSE+=" -ssp nossp"
+	fi
 }
 
 parse_repo_config() {
@@ -1089,8 +1123,8 @@ set_portage() {
 	case ${CTARGET} in
 		# avr requires multilib, that provides
 		# libgcc for all sub-architectures #378387
-		avr*)   set_use_force ${pkg} multilib -pie;
-			set_use_mask ${pkg} -multilib pie;;
+		avr*)   set_use_force ${pkg} multilib
+			set_use_mask ${pkg} -multilib;;
 		*-newlib|*-elf|*-eabi)
 			set_use_force ${pkg} multilib;
 			set_use_mask ${pkg} -multilib;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-01-07 20:15 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-01-07 20:15 UTC (permalink / raw
  To: gentoo-commits

commit:     c3f4cc048c2158f1ff6e6002c72381bbebe0678e
Author:     Dennis Schridde <devurandom <AT> gmx <DOT> net>
AuthorDate: Wed Jan  3 22:55:43 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Jan  7 20:13:27 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=c3f4cc04

Fix parse_repo_config with regards to repository priority

This is a multi-part message in MIME format.

I just noticed a typo in the commit message.  Please commit this patch
instead.
From 0d0b4653e44f807802ef1fa9647c7395d6625609 Mon Sep 17 00:00:00 2001
From: Dennis Schridde <devurandom <AT> users.noreply.github.com>
Date: Wed, 3 Jan 2018 23:41:53 +0100
Subject: [PATCH] Fix parse_repo_config with regards to repository priority

Before this patch, the repository config would be inserted into a more or less
 place for the respective priority, resulting in a non-contiguous array, which
 would no longer be fully enumerated by an awk for loop.  Hence the config of
 repositories with the same priority would be omitted for all but the first
 few entries.

Signed-off-by: Dennis Schridde <devurandom <AT> gmx.net>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 92b7acf..10097a0 100755
--- a/crossdev
+++ b/crossdev
@@ -393,7 +393,7 @@ parse_repo_config() {
 	local flat_config=$(echo "${repo_config}" | gawk '
 		function push(arr, idx, ele) {
 			if (idx in arr)
-				arr[idx][length(arr) + 1] = ele
+				arr[idx][length(arr[idx]) + 1] = ele
 			else
 				arr[idx][0] = ele
 		}


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2018-01-05 23:27 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2018-01-05 23:27 UTC (permalink / raw
  To: gentoo-commits

commit:     0f5332fd4238765abe37647e70e9adaa09887574
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  5 23:23:55 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Jan  5 23:23:55 2018 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=0f5332fd

crossdev: uninstall gcov-{dump,tool} gprof, bug #643162

What hanetzer writes:
"""
These files are left behind after using `crossdev -C ${CHOST}` and should be
cleaned. the files are copies of /usr/$libdir/misc/gcc-config and should be
safe to delete.
"""

Closes: https://bugs.gentoo.org/643162
Fixed-by: hanetzer <AT> startmail.com
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index d661c86..92b7acf 100755
--- a/crossdev
+++ b/crossdev
@@ -501,8 +501,8 @@ uninstall() {
 	# clean out known toolchain files (binutils/gcc)
 	for f in \
 		addr2line ar as c++filt dlltool dllwrap dwp embedspu \
-		gcc-{ar,nm,ranlib} gccbug gprof ld nm objcopy objdump \
-		ranlib readelf size strings strip windmc windres
+		gcc-{ar,nm,ranlib} gccbug gcov-{dump,tool} gprof ld nm \
+		objcopy objdump ranlib readelf size strings strip windmc windres
 	do
 		rm -f "${EPREFIX}"/usr/bin/${CTARGET}-${f} "${EPREFIX}"/usr/${CTARGET}/bin/${f}
 	done


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-30 21:21 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-12-30 21:21 UTC (permalink / raw
  To: gentoo-commits

commit:     a2b2ed04676a184a3374386d0d19d4587f974ffb
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 30 21:19:26 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Dec 30 21:19:26 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=a2b2ed04

crossdev: whitelist USE=sanitize on powerpc*-*gnu*

While at it fix glob for powerpc64 and aarch64.
Noticed by Joakim Tjernlund!

Reported-by: Joakim Tjernlund
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index fd9f598..d661c86 100755
--- a/crossdev
+++ b/crossdev
@@ -348,7 +348,7 @@ parse_target() {
 				mips64*)
 					# has some support code, fails to build
 					;;
-				x86_64*|i?86*|arm*|aarch64|powerpc64)
+				x86_64*|i?86*|arm*|aarch64*|powerpc*)
 					sanitizer_support=yes
 					;;
 			esac


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-30 17:41 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-12-30 17:41 UTC (permalink / raw
  To: gentoo-commits

commit:     599c41fb4d25d18cd6571cb2a6c793906682c259
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 30 17:37:00 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Dec 30 17:37:00 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=599c41fb

crossdev: prepare for CROSSCOMPILE_OPTS=headers-only -> USE=headers-only transition

Crossdev will provide both
    CROSSCOMPILE_OPTS=headers-only USE=headers-only
to early toolchain bootstrap stage while ::gentoo
is not completely migrated off CROSSCOMPILE_OPTS=headers-only

The longer-term plan is to get rid of 'CROSSCOMPILE_OPTS=' completely.

Reported-by: Michał Górny
Bug: https://bugs.gentoo.org/642712
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/crossdev b/crossdev
index d546dbe..fd9f598 100755
--- a/crossdev
+++ b/crossdev
@@ -1312,7 +1312,7 @@ if ! ex_fast ; then
 		# first install headers if requested
 		if with_headers ; then
 			# install kernel headers (since the C library often uses them)
-			USE="${KUSE} ${USE}" \
+			USE="${KUSE} ${USE} headers-only" \
 			CROSSCOMPILE_OPTS="headers-only" \
 				doemerge ${KPKG} ${KPKG}-quick
 
@@ -1321,7 +1321,7 @@ if ! ex_fast ; then
 				# we have to use --nodeps as glibc itself might have
 				# a dependency on newer gcc versions that we don't
 				# care about at this point -- we aren't compiling yet
-				USE="${LUSE} ${USE}" \
+				USE="${LUSE} ${USE} headers-only" \
 				CROSSCOMPILE_OPTS="headers-only" \
 				EOPTS="${EOPTS} --nodeps" \
 					doemerge ${LPKG} ${LPKG}-headers
@@ -1336,7 +1336,7 @@ if ! ex_fast ; then
 
 	# stage2: kernel headers
 	if is_s2 ; then
-		set_eopts_on_pkg_status ${KPKG} crosscompile_opts_headers-only
+		set_eopts_on_pkg_status ${KPKG} crosscompile_opts_headers-only headers-only
 
 		USE="${KUSE} ${USE}" \
 		CROSSCOMPILE_OPTS="" \
@@ -1347,7 +1347,7 @@ if ! ex_fast ; then
 	if is_s3 ; then
 		[[ -z ${LPKG} ]] && die "Invalid target '${CTARGET}': unknown libc"
 
-		set_eopts_on_pkg_status ${LPKG} crosscompile_opts_headers-only
+		set_eopts_on_pkg_status ${LPKG} crosscompile_opts_headers-only headers-only
 
 		USE="${LUSE} ${USE}" \
 		CROSSCOMPILE_OPTS="" \


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-30 17:41 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-12-30 17:41 UTC (permalink / raw
  To: gentoo-commits

commit:     b0416b85570a5d30e12c4f7ebb45aa26657d3088
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 30 17:23:21 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Dec 30 17:23:21 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b0416b85

crossdev: allow set_eopts_on_pkg_status() to accept multiple USE flags

The semantics is "any-of" passed flags (if enabled) triggers full package
rebuild.

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/crossdev b/crossdev
index f7d2fdc..d546dbe 100755
--- a/crossdev
+++ b/crossdev
@@ -1219,11 +1219,22 @@ emerged_with_use() {
 	local pkg=$1 use=$2
 	grep -qs ${use} "${EPREFIX}"/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
 }
-# Force package rebuild if USE-flag is set otherwise install package only if flag is missing.
+# Force package rebuild if any of passed USE-flag is set otherwise install package only if flag is missing.
+# $1    - pkg
+# $2... - USE flags to check
 set_eopts_on_pkg_status() {
-	emerged_with_use "$@" \
-		&& EOPTS=${EOPTS_DEF} \
-		|| EOPTS=${EOPTS_UP}
+	local pkg=$1 flag
+	shift
+
+	for flag in "$@"; do
+		if emerged_with_use "${pkg}" "${flag}"; then
+			# Force rebuild
+			EOPTS=${EOPTS_DEF}
+			return
+		fi
+	done
+	# Install if missing
+	EOPTS=${EOPTS_UP}
 }
 doemerge() {
 	local category="cross-${CTARGET}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-30 14:52 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-12-30 14:52 UTC (permalink / raw
  To: gentoo-commits

commit:     89ffff20a246eacfda30825459713d6953a41250
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 30 14:51:48 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Dec 30 14:51:48 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=89ffff20

crossdev: drop CROSSCOMPILE_OPTS="bootstrap"

CROSSCOMPILE_OPTS="bootstrap" does not guard any code in ::gentoo or ::toolchain

I did not find any code in gcc ebuilds handling 'crosscompile_opts_bootstrap'.

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index d0f0bfc..f7d2fdc 100755
--- a/crossdev
+++ b/crossdev
@@ -1319,7 +1319,7 @@ if ! ex_fast ; then
 
 		# then finally get around to the C compiler
 		USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_1}" \
-		CROSSCOMPILE_OPTS="bootstrap" \
+		CROSSCOMPILE_OPTS="" \
 			doemerge ${GPKG} ${GPKG}-stage1
 	fi
 
@@ -1345,8 +1345,6 @@ if ! ex_fast ; then
 
 	# stage4: full compiler (C/C++/etc...)
 	if is_s4 ; then
-		set_eopts_on_pkg_status ${GPKG} crosscompile_opts_bootstrap
-
 		EOPTS="${EOPTS_UP} --newuse"
 		USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
 			doemerge ${GPKG} ${GPKG}-stage2


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-30 14:46 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-12-30 14:46 UTC (permalink / raw
  To: gentoo-commits

commit:     ec8ed598ec364d0cdae289eb0ce415158f7115b7
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 30 14:45:51 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Dec 30 14:45:51 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=ec8ed598

crossdev: add a comment around set_eopts_on_pkg_status()

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index 06d2775..d0f0bfc 100755
--- a/crossdev
+++ b/crossdev
@@ -1219,6 +1219,7 @@ emerged_with_use() {
 	local pkg=$1 use=$2
 	grep -qs ${use} "${EPREFIX}"/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
 }
+# Force package rebuild if USE-flag is set otherwise install package only if flag is missing.
 set_eopts_on_pkg_status() {
 	emerged_with_use "$@" \
 		&& EOPTS=${EOPTS_DEF} \


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-29 20:44 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-12-29 20:44 UTC (permalink / raw
  To: gentoo-commits

commit:     6027263a03cbfaa177399c466d48aa04f2e93f1d
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 29 20:30:54 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Dec 29 20:30:54 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=6027263a

crossdev: change USE=vtv to whitelist

Gentoo profiles enable vtv only for x86, amd64, arm and arm64.
vtv is known to be broken at least for:
- musl libc
- bare metal targets
- powerpc, powerpc64 (compiler SEGISEGVs: bug #618786)
- hppa, ia64 (missing vtv crt* files)

User can still explicitly enable vtv by tweaking
    /etc/portage/package.use/cross-${CTARGET}

Bug: https://bugs.gentoo.org/618786
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 76f9a06..06d2775 100755
--- a/crossdev
+++ b/crossdev
@@ -335,7 +335,7 @@ parse_target() {
 	esac
 
 	local sanitizer_support=no
-	# Whitelist asan on explicitly supported arches fo linux.
+	# Whitelist asan on explicitly supported arches for linux.
 	# Broken examples:
 	# - musl libc
 	# - bare metal targets
@@ -357,6 +357,28 @@ parse_target() {
 	if [[ $sanitizer_support = "no" ]]; then
 		GUSE+=" -sanitize"
 	fi
+
+	local vtv_support=no
+	# Whitelist asan on explicitly supported arches for linux.
+	# Broken examples:
+	# - musl libc
+	# - bare metal targets
+	# - powerpc
+	# Untested examples:
+	# - *BSD
+	case ${CTARGET} in
+		# glibc targets
+		*-gnu*)
+			case ${CTARGET} in
+				x86_64*|i?86*|arm*|aarch64)
+					vtv_support=yes
+					;;
+			esac
+			;;
+	esac
+	if [[ $vtv_support = "no" ]]; then
+		GUSE+=" -vtv"
+	fi
 }
 
 parse_repo_config() {


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-28 17:47 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-12-28 17:47 UTC (permalink / raw
  To: gentoo-commits

commit:     eedf77d75e5c31e21ec249ba7d4341c32e3ae84f
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 28 17:44:47 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Dec 28 17:44:47 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=eedf77d7

crossdev: change USE=sanitize to whitelist

asan needs explicit support code for every arch/OS.
Currently the following seem to have support:
- amd64-glibc
- x86-glibc
- arm-glibc
- aarch64-glibc
- powerpc64-glibc
- mips-glibc
- mips64-glibc (n32 ABI, fails to build)

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 1cd59fb..76f9a06 100755
--- a/crossdev
+++ b/crossdev
@@ -323,8 +323,6 @@ parse_target() {
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
 			GUSE+=" cxx -openmp" #489798
-			# asan needs OS support to implement sanitizers
-			GUSE+=" -sanitize"
 			MULTILIB_USE="yes" #407275
 			WITH_DEF_HEADERS="no"
 			;;
@@ -335,6 +333,30 @@ parse_target() {
 			KPKG="[none]"
 			;;
 	esac
+
+	local sanitizer_support=no
+	# Whitelist asan on explicitly supported arches fo linux.
+	# Broken examples:
+	# - musl libc
+	# - bare metal targets
+	# Untested examples:
+	# - *BSD
+	case ${CTARGET} in
+		# glibc targets
+		*-gnu*)
+			case ${CTARGET} in
+				mips64*)
+					# has some support code, fails to build
+					;;
+				x86_64*|i?86*|arm*|aarch64|powerpc64)
+					sanitizer_support=yes
+					;;
+			esac
+			;;
+	esac
+	if [[ $sanitizer_support = "no" ]]; then
+		GUSE+=" -sanitize"
+	fi
 }
 
 parse_repo_config() {


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-27 18:10 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-12-27 18:10 UTC (permalink / raw
  To: gentoo-commits

commit:     d7df0a350748f1380c737c20da66cabf7af15a64
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 27 18:07:37 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Wed Dec 27 18:07:37 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d7df0a35

Disable USE=sanitize on bare metal targets

USE=sanitize needs explicit support from OS to implement sanitizers.
Currently those are implemented for Linux and *BSDs.

Noticed by |Jeroen| on #gentoo-arm when building:
    crossdev -t arm-none-eabi

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/crossdev b/crossdev
index 9d614a2..1cd59fb 100755
--- a/crossdev
+++ b/crossdev
@@ -323,6 +323,8 @@ parse_target() {
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
 			GUSE+=" cxx -openmp" #489798
+			# asan needs OS support to implement sanitizers
+			GUSE+=" -sanitize"
 			MULTILIB_USE="yes" #407275
 			WITH_DEF_HEADERS="no"
 			;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-12-12 21:35 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-12-12 21:35 UTC (permalink / raw
  To: gentoo-commits

commit:     bde092588bad63b3532084d6a04cf41609151ac9
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 12 21:26:15 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Tue Dec 12 21:26:15 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=bde09258

crossdev: turn on multilib for bare metal arm cortex-M

* note this is required for a toolchain that supports more than one
  cpu/fpu
* also note this needs some toolchain patches for proper multilib
  and armv8-M support (currently applied in ada overlay)
* grab from dev.g.o/~nerdboy/files/gcc-6.4.0-arm-patches-1.0.tar.gz
  and apply after other patches (or the ned of src_prepare)

Signed-off-by: Steve Arnold <nerdboy <AT> gentoo.org>

 crossdev | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/crossdev b/crossdev
index 3df7f27..9d614a2 100755
--- a/crossdev
+++ b/crossdev
@@ -1045,6 +1045,9 @@ set_portage() {
 		# libgcc for all sub-architectures #378387
 		avr*)   set_use_force ${pkg} multilib -pie;
 			set_use_mask ${pkg} -multilib pie;;
+		*-newlib|*-elf|*-eabi)
+			set_use_force ${pkg} multilib;
+			set_use_mask ${pkg} -multilib;;
 		*)      set_use_force ${pkg} -multilib;;
 	esac
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-11-23 18:18 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-11-23 18:18 UTC (permalink / raw
  To: gentoo-commits

commit:     5a64f6df999643d6631b3d9cca71f6d70f048226
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 23 18:12:59 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Thu Nov 23 18:15:29 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=5a64f6df

crossdev: force USE=-pie for cross-avr toolchain

Signed-off-by: Steve Arnold <nerdboy <AT> gentoo.org>

 crossdev | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 2d937d1..3df7f27 100755
--- a/crossdev
+++ b/crossdev
@@ -69,7 +69,7 @@ Options:
 Overlay Options:
     ${GOOD}-oS, --overlays${NORMAL} list     Space delimited list of overlays to search
                                 [default: \`portageq repositories_configuration\`]
-    ${GOOD}-oO, --ov-output${NORMAL} path    Overlay to write crossdev package links
+    ${GOOD}-oO, --ov-output${NORMAL} path    Parent directory of overlay to write crossdev package links
                                 [default: uses repo with name 'crossdev', or
                                  'cross-\${CTARGET}', or falls back to first
                                  from --overlays list]
@@ -1043,8 +1043,8 @@ set_portage() {
 	case ${CTARGET} in
 		# avr requires multilib, that provides
 		# libgcc for all sub-architectures #378387
-		avr*)   set_use_force ${pkg} multilib;
-			set_use_mask ${pkg} -multilib;;
+		avr*)   set_use_force ${pkg} multilib -pie;
+			set_use_mask ${pkg} -multilib pie;;
 		*)      set_use_force ${pkg} -multilib;;
 	esac
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-11-21 23:01 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-11-21 23:01 UTC (permalink / raw
  To: gentoo-commits

commit:     97efbe3a9a544e4e295285cf17928ffd62031dfc
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 21 22:59:39 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Nov 21 22:59:39 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=97efbe3a

Add 'mmix' target, bug #609602

Add basic support for MMIX by Matthias Maier.

Usage example:

$ crossdev -t mmix

Closes: https://bugs.gentoo.org/609602
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/crossdev b/crossdev
index 7eca6fc..2d937d1 100755
--- a/crossdev
+++ b/crossdev
@@ -139,6 +139,7 @@ parse_target() {
 		   - h8300    http://h8300-hms.sourceforge.net/
 		   - mingw32  http://www.mingw.org/
 		   - mingw64  http://mingw-w64.sourceforge.net/
+		   - mmix     http://www-cs-faculty.stanford.edu/~knuth/mmix.html
 		   - msp430   http://www.ti.com/msp430
 		   - nds32    http://github.com/nds32
 		   - nios2    http://www.altera.com/products/ip/processors/nios2/ni2-index.html
@@ -241,6 +242,13 @@ parse_target() {
 		      STAGE_DEFAULT=${STAGE_C_ONLY}
 		      WITH_DEF_HEADERS="no";;
 
+		# added in bug #609602
+		mmix*)
+		      KPKG="[none]"
+		      LPKG="newlib"
+		      STAGE_DEFAULT=${STAGE_LIBC}
+		      WITH_DEF_HEADERS="no";;
+
 		# due to upstream lameness, build C/C++ at first glance
 		*-cygwin)
 		      GUSE_DISABLE_STAGE_1+=" -nocxx cxx";;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-11-21 22:13 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-11-21 22:13 UTC (permalink / raw
  To: gentoo-commits

commit:     abd77e713d4eb9f15b76889c6d354aad22271473
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 21 22:11:17 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Nov 21 22:11:17 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=abd77e71

add hppa64-* target support

This target builds only C compiler by default.
No glibc or linux headers as 64 userspace ABI
is not defined yet.
See https://parisc.wiki.kernel.org/index.php/Userspace64

Usage example:

$ crossdev -t hppa64-unknown-linux-gnu

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/crossdev b/crossdev
index 3a3fdf5..7eca6fc 100755
--- a/crossdev
+++ b/crossdev
@@ -234,6 +234,13 @@ parse_target() {
 		      MAKE_SYMLINK="yes"
 		      WITH_DEF_HEADERS="no";;
 
+		# Has no glibc support yet (or even ABI defined). Can
+		# only compile linux kernel:
+		# https://parisc.wiki.kernel.org/index.php/Userspace64
+		hppa64*)
+		      STAGE_DEFAULT=${STAGE_C_ONLY}
+		      WITH_DEF_HEADERS="no";;
+
 		# due to upstream lameness, build C/C++ at first glance
 		*-cygwin)
 		      GUSE_DISABLE_STAGE_1+=" -nocxx cxx";;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-11-19 23:03 Sergei Trofimovich
  0 siblings, 0 replies; 217+ messages in thread
From: Sergei Trofimovich @ 2017-11-19 23:03 UTC (permalink / raw
  To: gentoo-commits

commit:     da9b5185640ac15d930624e1d52621c8a3da87f2
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 19 22:58:48 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Nov 19 23:00:15 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=da9b5185

crossdev: remove support for undocumented -b -d -p -v -q -pv -vp options, bug #638182

In bug #638182 Maciej tried to use crossdev as:
    crossdev -t x86_64-w64-mingw32 -b 2.28.1
which attempted to build configs for '2.28.1' target.

crossdev silently passed '-b' to emerge and treated
next argument as target option.

This change removes all undocumented options.
Use '-P <option>' instead.

That way typo is reported correctly as:
    * UNKNOWN OPTION: '-b'

Bug: https://bugs.gentoo.org/638182
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 2 --
 1 file changed, 2 deletions(-)

diff --git a/crossdev b/crossdev
index 0eaa721..3a3fdf5 100755
--- a/crossdev
+++ b/crossdev
@@ -652,8 +652,6 @@ while [[ $# -gt 0 ]] ; do
 	--show-fail-log)   SHOW_FAIL_LOG="yes";;
 	--show-repo-cfg)   show_repo_cfg "$2";;
 	-P|--portage)      UOPTS="${UOPTS} $2"; shift;;
-	-b|-d|-p|-v|-q)    UOPTS="${UOPTS} $1";;
-	-pv|-vp)           UOPTS="${UOPTS} -p -v";;
 	-h|--help)         usage;;
 	-*)                eerror "UNKNOWN OPTION: '$1'" ; usage 1;;
 	*)                 parse_target $1;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-24 17:38 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-24 17:38 UTC (permalink / raw
  To: gentoo-commits

commit:     a5554b4a85fa320781af41483488cfc65d22b98c
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 24 17:32:55 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Tue Oct 24 17:32:55 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=a5554b4a

Update avr/armv7m with USE=cxx for stage4, use crossdev HCHOST variable

* upstream projects need c++, however, stage3 is still the default

Signed-off-by: Steve Arnold <nerdboy <AT> gentoo.org>

 crossdev | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/crossdev b/crossdev
index 1a0bded..0eaa721 100755
--- a/crossdev
+++ b/crossdev
@@ -227,8 +227,9 @@ parse_target() {
 		avr*) KPKG="[none]"
 		      LCAT="dev-embedded"
 		      LPKG="avr-libc"
-		      GUSE="-fortran -go -pie nopie" # doesn't work
+		      GUSE+=" -fortran -go -pie nopie" # doesn't work
 		      MULTILIB_USE="yes" #377039
+		      BUSE+=" cxx"
 		      STAGE_DEFAULT=${STAGE_LIBC}
 		      MAKE_SYMLINK="yes"
 		      WITH_DEF_HEADERS="no";;
@@ -306,7 +307,7 @@ parse_target() {
 			LPKG="newlib"
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
-			GUSE+=" -openmp" #489798
+			GUSE+=" cxx -openmp" #489798
 			MULTILIB_USE="yes" #407275
 			WITH_DEF_HEADERS="no"
 			;;
@@ -1229,7 +1230,7 @@ USE="${USE} -selinux"
 if ! ex_fast ; then
 
 	# stage 0: binutils
-	doemerge ${BPKG}
+	USE="${BUSE}" doemerge ${BPKG}
 
 	# stage1: bare C compiler
 	if is_s1 ; then
@@ -1292,7 +1293,7 @@ if ! ex_fast ; then
 	if [[ ${MAKE_SYMLINK} == "yes" ]] ; then
 		case ${CTARGET} in
 			avr*)   ( ! [[ -h ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] && [[ -d ${EPREFIX}/usr/${CTARGET}/lib ]] ) && \
-					ln -s ${EPREFIX}/usr/${CHOST}/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/
+					ln -s ${EPREFIX}/usr/${HCHOST}/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/
 				;;
 			*)      ;;
 		esac


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-14 23:46 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-14 23:46 UTC (permalink / raw
  To: gentoo-commits

commit:     250707e426f3bd775d85671743df3053e6868c74
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 14 22:33:04 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Sat Oct 14 22:33:04 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=250707e4

Revert "ROOT method for glibc."

This reverts commit d770cdb3feb397cedfdc36ac4b9f07f984152c86.

 crossdev | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index 7fdb3e3..3f60517 100755
--- a/crossdev
+++ b/crossdev
@@ -1153,9 +1153,8 @@ emerge-wrapper --target ${CTARGET} --init || exit 1
 
 #################
 emerged_with_use() {
-	local pkg=$1 use=$2 alt
-	case $pkg in *lib*|musl) alt="/usr/${CTARGET}" ;; esac
-	grep -qs ${use} "${EPREFIX}"${alt}/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
+	local pkg=$1 use=$2
+	grep -qs ${use} "${EPREFIX}"/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
 }
 set_eopts_on_pkg_status() {
 	emerged_with_use "$@" \
@@ -1249,9 +1248,6 @@ if ! ex_fast ; then
 				# care about at this point -- we aren't compiling yet
 				USE="${LUSE} ${USE}" \
 				CROSSCOMPILE_OPTS="headers-only" \
-				ROOT="${EPREFIX}"/usr/${CTARGET} \
-				ALT_BUILD_HEADERS="${ROOT}"/usr/include \
-				EPREFIX="/" \
 				EOPTS="${EOPTS} --nodeps" \
 					doemerge ${LPKG} ${LPKG}-headers
 			fi
@@ -1279,8 +1275,6 @@ if ! ex_fast ; then
 		set_eopts_on_pkg_status ${LPKG} crosscompile_opts_headers-only
 
 		USE="${LUSE} ${USE}" \
-		ROOT=${EPREFIX}/usr/${CTARGET} \
-		EPREFIX="/" \
 		CROSSCOMPILE_OPTS="" \
 			doemerge ${LPKG}
 	fi


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-14 23:46 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-14 23:46 UTC (permalink / raw
  To: gentoo-commits

commit:     8f04ee910e38c38f597ebebc35190140e6ffa310
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 14 22:28:08 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Sat Oct 14 22:28:08 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=8f04ee91

sys-devel/crossdev: avr: disable pie, set default stage, make symlink
more robust

Signed-off-by: Steve Arnold <nerdboy <AT> gentoo.org>

 crossdev | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/crossdev b/crossdev
index 048f82a..7fdb3e3 100755
--- a/crossdev
+++ b/crossdev
@@ -224,12 +224,14 @@ parse_target() {
 		# this is a linux+ target, not microcontroller (below)
 		avr32*) :;;
 
-		avr*) KPKG="[none]";
-		      LCAT="dev-embedded"; LPKG="avr-libc";
-		      GUSE="-fortran -go" # doesn't work
+		avr*) KPKG="[none]"
+		      LCAT="dev-embedded"
+		      LPKG="avr-libc"
+		      GUSE="-fortran -go -pie nopie" # doesn't work
 		      MULTILIB_USE="yes" #377039
-		      WITH_DEF_HEADERS="no"
-		      MAKE_SYMLINK="yes";;
+		      STAGE_DEFAULT=${STAGE_LIBC}
+		      MAKE_SYMLINK="yes"
+		      WITH_DEF_HEADERS="no";;
 
 		# due to upstream lameness, build C/C++ at first glance
 		*-cygwin)
@@ -1027,15 +1029,13 @@ set_portage() {
 	case ${CTARGET} in
 		# avr requires multilib, that provides
 		# libgcc for all sub-architectures #378387
-		avr*)      set_use_force ${pkg} multilib
-			;;
-		*)        set_use_force ${pkg} -multilib
-			;;
+		avr*)   set_use_force ${pkg} multilib;
+			set_use_mask ${pkg} -multilib;;
+		*)      set_use_force ${pkg} -multilib;;
 	esac
 
 	set_keywords ${pkg} ${ver}
 	set_use ${pkg} ${use}
-	set_use_mask ${pkg} -multilib
 	set_links ${cat} ${pkg} "${ovl}"
 	set_env ${l} ${pkg} "${env}"
 }
@@ -1297,7 +1297,7 @@ if ! ex_fast ; then
 	# this is to make sure that avr linker can find its a**, er, ldscripts
 	if [[ ${MAKE_SYMLINK} == "yes" ]] ; then
 		case ${CTARGET} in
-			avr*)   [[ -e ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] || \
+			avr*)   ( ! [[ -h ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] && [[ -d ${EPREFIX}/usr/${CTARGET}/lib ]] ) && \
 					ln -s ${EPREFIX}/usr/$CHOST/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/
 				;;
 			*)      ;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-14 23:46 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-14 23:46 UTC (permalink / raw
  To: gentoo-commits

commit:     17c5594fe0fe33d2226ebcb087763e4592b67c71
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 14 23:45:10 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Sat Oct 14 23:45:10 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=17c5594f

sys-devel/crossdev: fix silly typo in link target

Signed-off-by: Steve Arnold <nerdboy <AT> gentoo.org>

 crossdev | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 3f60517..1a0bded 100755
--- a/crossdev
+++ b/crossdev
@@ -452,7 +452,7 @@ uninstall() {
 	# clean out files from crossdev itself
 	[[ -e ${EPREFIX}/var/db/pkg/cross-${CTARGET} ]] && rmdir "${EPREFIX}"/var/db/pkg/cross-${CTARGET}
 	rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} "${EPREFIX}"/usr/bin/emerge-${CTARGET}
-	[[ -e ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] && rm "${EPREFIX}"/usr/${CTARGET}/lib/ldscripts
+	[[ -h ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] && rm "${EPREFIX}"/usr/${CTARGET}/lib/ldscripts
 
 	for f in make.{conf,globals,profile} ; do
 		f="${EPREFIX}/usr/${CTARGET}/etc/${f}"
@@ -1292,7 +1292,7 @@ if ! ex_fast ; then
 	if [[ ${MAKE_SYMLINK} == "yes" ]] ; then
 		case ${CTARGET} in
 			avr*)   ( ! [[ -h ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] && [[ -d ${EPREFIX}/usr/${CTARGET}/lib ]] ) && \
-					ln -s ${EPREFIX}/usr/$CHOST/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/
+					ln -s ${EPREFIX}/usr/${CHOST}/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/
 				;;
 			*)      ;;
 		esac


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-13 17:56 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-13 17:56 UTC (permalink / raw
  To: gentoo-commits

commit:     575a4b1528fa27be50680011a544ca89f6e332e3
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 13 17:54:27 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Fri Oct 13 17:54:27 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=575a4b15

sys-devel/crossdev: Fix avr hack, move it inside doemerge block

Signed-off-by: Steve Arnold <nerdboy <AT> gentoo.org>

 crossdev | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index 8ba0360..048f82a 100755
--- a/crossdev
+++ b/crossdev
@@ -1293,15 +1293,16 @@ if ! ex_fast ; then
 		USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
 			doemerge ${GPKG} ${GPKG}-stage2
 	fi
-fi
 
-# this is to make sure that avr linker can find its a**, er, ldscripts
-if [[ ${MAKE_SYMLINK} == "yes" ]] ; then
-	case ${CTARGET} in
-		avr*)   ln -s ${EPREFIX}/usr/$CHOST/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/ldscripts
-			;;
-		*)      ;;
-	esac
+	# this is to make sure that avr linker can find its a**, er, ldscripts
+	if [[ ${MAKE_SYMLINK} == "yes" ]] ; then
+		case ${CTARGET} in
+			avr*)   [[ -e ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] || \
+					ln -s ${EPREFIX}/usr/$CHOST/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/
+				;;
+			*)      ;;
+		esac
+	fi
 fi
 
 # all the extra things (like debuggers)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-13 16:31 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-13 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     d5a37316925ff7bfa438da95826c9ffc8dd280ac
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Mon Jun  6 05:58:41 2016 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Sat Jun 25 13:45:04 2016 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d5a37316

crossdev: use new path for functions.sh

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 00ddea7..6939c70 100755
--- a/crossdev
+++ b/crossdev
@@ -21,7 +21,7 @@ EROOT=${ROOT%/}"${EPREFIX}"/
 : ${PORTAGE_CONFIGROOT:=${EROOT}}
 CONFIGROOT="${PORTAGE_CONFIGROOT}/etc/portage"
 
-source "${EPREFIX}"/etc/init.d/functions.sh || exit 1
+source "${EPREFIX}"/lib/gentoo/functions.sh || exit 1
 esyslog() { :; }
 die_logs() {
 	echo


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-13 16:31 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-13 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     03640757f2af1471324fc3e305f899f377d6409d
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 13 04:46:58 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Fri Oct 13 04:46:58 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=03640757

sys-devel/crossdev: add one more avr-specific hack

* link ldscripts to the right place (parameterized and expandable even)

Signed-off-by: Steve Arnold <nerdboy <AT> gentoo.org>

 crossdev | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 78d63da..8ba0360 100755
--- a/crossdev
+++ b/crossdev
@@ -228,7 +228,8 @@ parse_target() {
 		      LCAT="dev-embedded"; LPKG="avr-libc";
 		      GUSE="-fortran -go" # doesn't work
 		      MULTILIB_USE="yes" #377039
-		      WITH_DEF_HEADERS="no";;
+		      WITH_DEF_HEADERS="no"
+		      MAKE_SYMLINK="yes";;
 
 		# due to upstream lameness, build C/C++ at first glance
 		*-cygwin)
@@ -449,6 +450,7 @@ uninstall() {
 	# clean out files from crossdev itself
 	[[ -e ${EPREFIX}/var/db/pkg/cross-${CTARGET} ]] && rmdir "${EPREFIX}"/var/db/pkg/cross-${CTARGET}
 	rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} "${EPREFIX}"/usr/bin/emerge-${CTARGET}
+	[[ -e ${EPREFIX}/usr/${CTARGET}/lib/ldscripts ]] && rm "${EPREFIX}"/usr/${CTARGET}/lib/ldscripts
 
 	for f in make.{conf,globals,profile} ; do
 		f="${EPREFIX}/usr/${CTARGET}/etc/${f}"
@@ -1291,7 +1293,15 @@ if ! ex_fast ; then
 		USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
 			doemerge ${GPKG} ${GPKG}-stage2
 	fi
+fi
 
+# this is to make sure that avr linker can find its a**, er, ldscripts
+if [[ ${MAKE_SYMLINK} == "yes" ]] ; then
+	case ${CTARGET} in
+		avr*)   ln -s ${EPREFIX}/usr/$CHOST/${CTARGET}/lib/ldscripts ${EPREFIX}/usr/${CTARGET}/lib/ldscripts
+			;;
+		*)      ;;
+	esac
 fi
 
 # all the extra things (like debuggers)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-13 16:31 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-13 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     f9e1a26e5f6ed8f0df7fe16f5f3fe4c3aa5d69af
Author:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 13 02:16:00 2017 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Fri Oct 13 02:19:14 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=f9e1a26e

sys-devel/crossdev: add fixes for several bugs and patches

* pull in EPREFIX/ROOT fixes from heroxbd on github
* includes portage patch for functions path
* add snippet to force multilib on for avr targets

see: https://github.com/heroxbd/crossdev
     https://bugs.gentoo.org/show_bug.cgi?id=378387
     http://forum.arduino.cc/index.php?topic=93672.0

Signed-off-by: Steve Arnold <nerdboy <AT> gentoo.org>

 crossdev | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 5bb4b77..78d63da 100755
--- a/crossdev
+++ b/crossdev
@@ -1022,9 +1022,17 @@ set_portage() {
 
 	[[ ${pkg} == "[none]" ]] && return 0
 
+	case ${CTARGET} in
+		# avr requires multilib, that provides
+		# libgcc for all sub-architectures #378387
+		avr*)      set_use_force ${pkg} multilib
+			;;
+		*)        set_use_force ${pkg} -multilib
+			;;
+	esac
+
 	set_keywords ${pkg} ${ver}
 	set_use ${pkg} ${use}
-	set_use_force ${pkg} -multilib
 	set_use_mask ${pkg} -multilib
 	set_links ${cat} ${pkg} "${ovl}"
 	set_env ${l} ${pkg} "${env}"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2017-10-13 16:31 Steve Arnold
  0 siblings, 0 replies; 217+ messages in thread
From: Steve Arnold @ 2017-10-13 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     d770cdb3feb397cedfdc36ac4b9f07f984152c86
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Mon Jun  6 09:10:50 2016 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Sun Jun 26 12:50:33 2016 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d770cdb3

ROOT method for glibc.

 crossdev | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 6939c70..5bb4b77 100755
--- a/crossdev
+++ b/crossdev
@@ -1143,8 +1143,9 @@ emerge-wrapper --target ${CTARGET} --init || exit 1
 
 #################
 emerged_with_use() {
-	local pkg=$1 use=$2
-	grep -qs ${use} "${EPREFIX}"/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
+	local pkg=$1 use=$2 alt
+	case $pkg in *lib*|musl) alt="/usr/${CTARGET}" ;; esac
+	grep -qs ${use} "${EPREFIX}"${alt}/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
 }
 set_eopts_on_pkg_status() {
 	emerged_with_use "$@" \
@@ -1238,6 +1239,9 @@ if ! ex_fast ; then
 				# care about at this point -- we aren't compiling yet
 				USE="${LUSE} ${USE}" \
 				CROSSCOMPILE_OPTS="headers-only" \
+				ROOT="${EPREFIX}"/usr/${CTARGET} \
+				ALT_BUILD_HEADERS="${ROOT}"/usr/include \
+				EPREFIX="/" \
 				EOPTS="${EOPTS} --nodeps" \
 					doemerge ${LPKG} ${LPKG}-headers
 			fi
@@ -1265,6 +1269,8 @@ if ! ex_fast ; then
 		set_eopts_on_pkg_status ${LPKG} crosscompile_opts_headers-only
 
 		USE="${LUSE} ${USE}" \
+		ROOT=${EPREFIX}/usr/${CTARGET} \
+		EPREFIX="/" \
 		CROSSCOMPILE_OPTS="" \
 			doemerge ${LPKG}
 	fi


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2016-06-02 15:56 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2016-06-02 15:56 UTC (permalink / raw
  To: gentoo-commits

commit:     0bdbb5fb2d15cd433a8a7d0176ae3c5a3a957373
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  2 15:26:55 2016 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Jun  2 15:26:55 2016 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=0bdbb5fb

crossdev: make multilib eclass loading/parsing more robust

Be a bit more proactive in detecting errors so we don't hit another
infinite loop.

URL: https://bugs.gentoo.org/531044
Reported-by: Ulrar <lemonnier.k <AT> gmail.com>
Reported-by: Samuel Loewen <samuellwn <AT> gmail.com>

 crossdev | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/crossdev b/crossdev
index 686b906..5cb319c 100755
--- a/crossdev
+++ b/crossdev
@@ -739,7 +739,7 @@ if [[ -e ${d}/env ]] ; then
 fi
 
 # parse multilib settings until profiles are sane
-multilib_env() {
+load_multilib_env() {
 	local var=$1
 	eval $(
 	# see what target to parse
@@ -764,7 +764,10 @@ multilib_env() {
 	else
 		single_abi=false
 	fi
-	multilib_env
+	if ! multilib_env ; then
+		echo "die 'could not load multilib settings for ${var}'"
+		exit 1
+	fi
 	${single_abi} && MULTILIB_ABIS=${DEFAULT_ABI}
 
 	# output the desired env
@@ -792,10 +795,10 @@ multilib_env() {
 	)
 }
 # Load settings for the host.
-MULTILIB_ABIS=${HOST_ABI} multilib_env HCHOST
+MULTILIB_ABIS=${HOST_ABI} load_multilib_env HCHOST
 HOST_ABI=${_MULTILIB_ABIS}
 # Load settings for the target.
-multilib_env CTARGET
+load_multilib_env CTARGET
 
 DEFAULT_ABI=${MULTILIB_ABIS%% *}
 if [[ -z ${MULTILIB_USE} ]] ; then


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2016-06-02 15:56 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2016-06-02 15:56 UTC (permalink / raw
  To: gentoo-commits

commit:     b613790793b46ccc596e1dc28163ea865d508b65
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  2 15:16:03 2016 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Jun  2 15:16:03 2016 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b6137907

crossdev: handle multiple repos at same prio level

This helps fix an infinite recursion issue when trying to load the
multilib eclass environment.

URL: https://bugs.gentoo.org/531044
URL: https://bugs.gentoo.org/540586
Reported-by: Ulrar <lemonnier.k <AT> gmail.com>
Reported-by: Malte Starostik <bugs <AT> xodtsoq.de>
Reported-by: Samuel Loewen <samuellwn <AT> gmail.com>

 crossdev | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 29bea33..686b906 100755
--- a/crossdev
+++ b/crossdev
@@ -319,12 +319,18 @@ parse_repo_config() {
 	# priority = 0
 	local repo_config=$(portageq repositories_configuration "${ROOT}")
 	local flat_config=$(echo "${repo_config}" | gawk '
+		function push(arr, idx, ele) {
+			if (idx in arr)
+				arr[idx][length(arr) + 1] = ele
+			else
+				arr[idx][0] = ele
+		}
 		{
 			if ($1 == "main-repo") {
 				main_repo = $NF
 			} else if ($1 ~ /^\[/) {
 				if (repo_name && loc)
-					repos[prio] = repo_name ":" loc
+					push(repos, prio, repo_name ":" loc)
 				repo_name = gensub(/\[([^\]]*)\]/, "\\1", 1, $1)
 				loc = prio = ""
 			} else if ($1 == "priority") {
@@ -334,12 +340,13 @@ parse_repo_config() {
 			}
 		}
 		END {
-			repos[prio] = repo_name ":" loc
+			push(repos, prio, repo_name ":" loc)
 
 			print(main_repo)
 			asorti(repos, prios)
 			for (prio in prios)
-				print(repos[prios[prio]])
+				for (repo in repos[prios[prio]])
+					print(repos[prios[prio]][repo])
 		}
 	')
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2016-06-02 15:56 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2016-06-02 15:56 UTC (permalink / raw
  To: gentoo-commits

commit:     be2e2afe53400c7339cc2d105fdfb114c55da74d
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  2 15:29:08 2016 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Jun  2 15:29:08 2016 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=be2e2afe

crossdev: handle new gcc USE=vtv flag

Make sure we mask it out in the first pass.

URL: https://bugs.gentoo.org/582582
Reported-by: Doug Goldstein <cardoe <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index b3e7bce..877c68f 100755
--- a/crossdev
+++ b/crossdev
@@ -587,7 +587,7 @@ CROSSDEV_OVERLAY=""
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
 # These are disabled only for stage1 gcc
-GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go nocxx -cxx -openmp -sanitize"
+GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go -cxx -openmp -sanitize -vtv"
 GUSE_DISABLE_STAGE_2="${GUSE_DISABLE}"
 WITH_HEADERS="COW"   WITH_DEF_HEADERS="yes" #227065 gcc-4.3+ is a pita w/out headers
 EX_FAST="no"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2016-06-02 15:56 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2016-06-02 15:56 UTC (permalink / raw
  To: gentoo-commits

commit:     3b77eea12b547a5136cc0bf6153fb0c56e3f154e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  2 15:28:00 2016 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Jun  2 15:28:00 2016 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=3b77eea1

crossdev: catch more mkdir/write failures

 crossdev | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index 5cb319c..b3e7bce 100755
--- a/crossdev
+++ b/crossdev
@@ -19,7 +19,7 @@ source /etc/init.d/functions.sh || exit 1
 esyslog() { :; }
 die_logs() {
 	echo
-	eerror "$1"
+	eerror "error: $1"
 
 	shift
 	local log
@@ -33,6 +33,7 @@ die_logs() {
 }
 die() { die_logs "$*"; }
 has() { [[ " ${@:2} " == *" $1 "* ]]; }
+xmkdir() { mkdir "$@" || die "could not mkdir $*"; }
 
 usage() {
 	local exit_status=${1:-0}
@@ -400,7 +401,7 @@ setup_portage_vars() {
 
 	# make sure we have a valid logdir
 	: ${PORT_LOGDIR:=/var/log/portage}
-	mkdir -p "${PORT_LOGDIR}"
+	xmkdir -p "${PORT_LOGDIR}"
 }
 
 uninstall() {
@@ -1038,7 +1039,7 @@ set_metadata() {
 	repo_name=$(cat "${f}" 2>/dev/null)
 	: ${repo_name:="crossdev"}
 
-	mkdir -p "${meta}"
+	xmkdir -p "${meta}"
 	if [[ -e ${layout} ]] ; then
 		if ! grep -qs "^${autogen_tag}" "${layout}" ; then
 			einfo "leaving metadata/layout.conf alone in ${CROSSDEV_OVERLAY}"
@@ -1093,7 +1094,7 @@ set_metadata() {
 	done
 
 	# write out that layout.conf!
-	cat <<-EOF > "${layout}"
+	cat <<-EOF > "${layout}" || die "could not write ${layout}"
 	${autogen_tag}
 	# Delete the above line if you want to manage this file yourself
 	masters = ${masters% }
@@ -1102,7 +1103,7 @@ set_metadata() {
 	EOF
 }
 
-mkdir -p "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/{cross-${CTARGET},profiles} || die "wtf!?"
+xmkdir -p "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/{cross-${CTARGET},profiles}
 for f in "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/profiles ; do
 	f+="/categories"
 	check_trailing_newline "${f}"
@@ -1112,7 +1113,7 @@ done
 cd "${CONFIGROOT}" || die "wtf!?"
 for f in package.{env,keywords,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
 	[[ -f ${f} ]] && die "please convert ${CONFIGROOT}/${f} to a directory"
-	mkdir -p "${f}" || die "wtf!?"
+	xmkdir -p "${f}"
 	rm -f "${f}/cross-${CTARGET}"
 done
 
@@ -1123,7 +1124,7 @@ for_each_extra_pkg set_portage X
 set_metadata
 
 # filter out revdep rebuild stuff #182601
-mkdir -p /etc/revdep-rebuild
+xmkdir -p /etc/revdep-rebuild
 echo "SEARCH_DIRS_MASK=/usr/${CTARGET}" > /etc/revdep-rebuild/05cross-${CTARGET}
 
 hr
@@ -1131,7 +1132,7 @@ hr
 #######################################
 ### Create links for helper scripts ###
 
-mkdir -p /usr/${CTARGET}
+xmkdir -p /usr/${CTARGET}
 emerge-wrapper --target ${CTARGET} --init || exit 1
 
 #################


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2016-01-16  6:38 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2016-01-16  6:38 UTC (permalink / raw
  To: gentoo-commits

commit:     769d97b3d6c956ea54c2ec33268615e3ffa08757
Author:     Bertrand Jacquin <bertrand <AT> jacquin <DOT> bzh>
AuthorDate: Sun Oct 25 18:33:19 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Oct 26 04:32:58 2015 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=769d97b3

crossdev: source only once user env settings

When /etc/portage/crossdev/${CTARGET} exist, the output looks like:

 * Restoring generic user env settings
 * Restoring generic user env settings
 * Restoring generic user env settings
 * Restoring generic user env settings
 * Restoring generic user env settings
 * Restoring generic user env settings
 * Restoring generic user env settings
 * Restoring generic user env settings
 * Restoring generic user env settings
 * Restoring generic user env settings

Signed-off-by: Bertrand Jacquin <bertrand <AT> jacquin.bzh>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

 crossdev | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/crossdev b/crossdev
index 74fd390..29bea33 100755
--- a/crossdev
+++ b/crossdev
@@ -718,18 +718,18 @@ if [[ ${HCHOST} == "${CTARGET}" ]] ; then
 fi
 
 # grab user settings
+d="${CONFIGROOT}/crossdev/${CTARGET}"
 for v in MULTILIB_ABIS USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS ASFLAGS ; do
-	d="${CONFIGROOT}/crossdev/${CTARGET}"
 	if [[ -e ${d}/${v} ]] ; then
 		# yes, quotes are needed in this instance (export $var="...")
 		export ${v}="$(<"${d}"/${v})"
 		einfo "Restoring user setting '${v}' to '${!v}'"
 	fi
-	if [[ -e ${d}/env ]] ; then
-		einfo "Restoring generic user env settings"
-		source "${d}"/env
-	fi
 done
+if [[ -e ${d}/env ]] ; then
+	einfo "Restoring generic user env settings"
+	source "${d}"/env
+fi
 
 # parse multilib settings until profiles are sane
 multilib_env() {


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2015-10-16  3:19 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2015-10-16  3:19 UTC (permalink / raw
  To: gentoo-commits

commit:     9f4a779878d64a4f6881910b9f71ac8e648c55b7
Author:     Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Fri Oct 16 03:18:43 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Oct 16 03:18:43 2015 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=9f4a7798

crossdev: clean up binutils dwp program when uninstalling

URL: https://bugs.gentoo.org/562522
Signed-off-by: Alexander Tsoy <alexander <AT> tsoy.me>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index acaa2a8..74fd390 100755
--- a/crossdev
+++ b/crossdev
@@ -421,7 +421,7 @@ uninstall() {
 
 	# clean out known toolchain files (binutils/gcc)
 	for f in \
-		addr2line ar as c++filt dlltool dllwrap embedspu \
+		addr2line ar as c++filt dlltool dllwrap dwp embedspu \
 		gcc-{ar,nm,ranlib} gccbug gprof ld nm objcopy objdump \
 		ranlib readelf size strings strip windmc windres
 	do


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2015-08-13  2:45 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2015-08-13  2:45 UTC (permalink / raw
  To: gentoo-commits

commit:     ed170f96178b3e5060d6c7eecce79036b14c9f1e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 13 02:45:05 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Aug 13 02:45:05 2015 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=ed170f96

crossdev: fix gensub 3rd arg

Newer gawk points out that the 3rd arg to gensub should be a string with
either "g" or "G", or should be a number.  An empty string is invalid.

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

 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index b501ad8..acaa2a8 100755
--- a/crossdev
+++ b/crossdev
@@ -325,7 +325,7 @@ parse_repo_config() {
 			} else if ($1 ~ /^\[/) {
 				if (repo_name && loc)
 					repos[prio] = repo_name ":" loc
-				repo_name = gensub(/\[([^\]]*)\]/, "\\1", "", $1)
+				repo_name = gensub(/\[([^\]]*)\]/, "\\1", 1, $1)
 				loc = prio = ""
 			} else if ($1 == "priority") {
 				prio = $3


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2015-06-02 17:01 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2015-06-02 17:01 UTC (permalink / raw
  To: gentoo-commits

commit:     9126e17807c290e45cdd46e66004177117ff1078
Author:     Mike Frysinger <vapier <AT> chromium <DOT> org>
AuthorDate: Tue Jun  2 17:00:30 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Jun  2 17:01:17 2015 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=9126e178

crossdev: support repo-name in layout.conf

When building repos that only use repo-name in layout.conf, crossdev
does not properly build the masters setting for its own layout.conf.

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

 crossdev | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index b5f9245..b501ad8 100755
--- a/crossdev
+++ b/crossdev
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 CROSSDEV_VER="@CDEVPV@"
@@ -1044,7 +1044,10 @@ set_metadata() {
 		[[ -z ${d} ]] && continue
 
 		name=
-		if [[ -e ${d}/profiles/repo_name ]] ; then
+		if [[ -e ${d}/metadata/layout.conf ]] ; then
+			name=$(awk '$1 == "repo-name" { print $3 }' "${d}/metadata/layout.conf")
+		fi
+		if [[ -z ${name} && -e ${d}/profiles/repo_name ]] ; then
 			name=$(<"${d}"/profiles/repo_name)
 		fi
 		[[ -z ${name} ]] && continue


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2015-05-30  4:46 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2015-05-30  4:46 UTC (permalink / raw
  To: gentoo-commits

commit:     ad3b55a6ebe3af2eb795cdbd9b80ce2bb424ea6c
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sat May 30 04:33:52 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sat May 30 04:37:38 2015 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=ad3b55a6

crossdev: use qmerge for unmerging packages

The latest version of qmerge should be reliable when it comes to unmerge,
so start using that when uninstalling targets.  It's significantly faster
than emerge.

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

 crossdev | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/crossdev b/crossdev
index 677b5ae..b5f9245 100755
--- a/crossdev
+++ b/crossdev
@@ -416,15 +416,8 @@ uninstall() {
 	rm -f /etc/revdep-rebuild/05cross-${CTARGET}
 	rmdir /etc/revdep-rebuild 2>/dev/null
 
-	rmdir /var/db/pkg/cross-${CTARGET} 2>/dev/null
-	if [[ -d /var/db/pkg/cross-${CTARGET} ]] ; then
-		export CLEAN_DELAY=0
-		cd /var/db/pkg
-		local pkgs=( cross-${CTARGET}/* )
-		emerge -qC ${pkgs[@]/#/=} || exit 1
-	else
-		ewarn "${CTARGET}: no packages installed; will clean out known files"
-	fi
+	# Unmerge all toolchain packages for this target.
+	qmerge -Uqy $(qlist -IC "cross-${CTARGET}/")
 
 	# clean out known toolchain files (binutils/gcc)
 	for f in \


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2015-05-23  5:35 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2015-05-23  5:35 UTC (permalink / raw
  To: gentoo-commits

commit:     704dc2e195792c0b08f65575b2899ceab4c154d2
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue May 19 04:42:37 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu May 21 04:35:50 2015 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=704dc2e1

crossdev: add support for linking & building extra packages

Add a set of extra package flags so people can throw in arbitrary sets
of packages after the toolchain is complete.  This requires the package
to be aware of the CTARGET usage, so it can be dangerous when combined
with any package in the tree.

URL: http://crbug.com/372937
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

 crossdev | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/crossdev b/crossdev
index 0691641..677b5ae 100755
--- a/crossdev
+++ b/crossdev
@@ -71,6 +71,7 @@ Overlay Options:
     ${GOOD}-og, --ov-gcc${NORMAL} path       Overlay for gcc ebuilds [default: search]
     ${GOOD}-ok, --ov-kernel${NORMAL} path    Overlay for kernel ebuilds [default: search]
     ${GOOD}-ol, --ov-libc${NORMAL} path      Overlay for C library ebuilds [default: search]
+    ${GOOD}-ox, --ov-extra${NORMAL} path     Overlay for extra packages [default: search]
 
 Stage Options:
     ${GOOD}-s0, --stage0${NORMAL}            Build just binutils
@@ -89,6 +90,7 @@ Extra Fun (must be run after above stages):
     ${GOOD}--ex-only${NORMAL}                Skip the stage steps above
     ${GOOD}--ex-gcc${NORMAL}                 Build extra gcc targets (gcj/ada/etc...)
     ${GOOD}--ex-gdb${NORMAL}                 Build a cross gdb
+    ${GOOD}--ex-pkg${NORMAL} pkg             Build extra packages (may be used multiple times)
 
 ${BRACKET}Target (-t)${NORMAL} takes a tuple ${BRACKET}ARCH-VENDOR-OS-LIBC${NORMAL}; see 'crossdev -t help'
 EOF
@@ -505,6 +507,28 @@ with_headers()   { [[ ${WITH_HEADERS}   == "yes" ]] ; }
 ex_fast()    { [[ ${EX_FAST}    == "yes" ]] ; }
 ex_gcc()     { [[ ${EX_GCC}     == "yes" ]] ; }
 ex_gdb()     { [[ ${EX_GDB}     == "yes" ]] ; }
+ex_pkgs()    { [[ ${#XPKGS[@]} -gt 0     ]] ; }
+
+# For each extra package, call $@ with the X* vars set up properly.
+for_each_extra_pkg() {
+	local pkg i
+
+	for (( i = 0; i < ${#XPKGS[@]}; ++i )) ; do
+		# Since the user gave us full atoms, pull them apart here.
+		pkg=${XPKGS[i]}
+		if [[ ${pkg} != */* ]]; then
+			usage 1 "arguments to --ex-pkg must be CATEGORY/PN"
+		fi
+
+		XCAT=${pkg%/*} \
+		XPKG=${pkg#*/} \
+		XVER=${XVERS[i]} \
+		XUSE=${XUSES[i]} \
+		XENV=${XENVS[i]} \
+		XOVL=${XOVLS[i]} \
+		"$@"
+	done
+}
 
 hr() {
 	local c=${COLUMNS:-0}
@@ -554,6 +578,7 @@ GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL=""
 KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" KUSE="" KENV="" KOVL=""
 LCAT="sys-libs"   ; LPKG="[none]"        ; LVER="" LUSE="" LENV="" LOVL=""
 DCAT="sys-devel"  ; DPKG="gdb"           ; DVER="" DUSE="" DENV="" DOVL=""
+XPKGS=() XVERS=() XUSES=() XENVS=() XOVLS=()
 DEFAULT_VER="[latest]"
 SEARCH_OVERLAYS=""
 CROSSDEV_OVERLAY=""
@@ -593,6 +618,7 @@ while [[ $# -gt 0 ]] ; do
 	--l|--libc)        shift; LVER=$1;;
 	--lenv)            shift; LENV=$1;;
 	-ol|--ov-libc)     shift; LOVL=$1;;
+	-ox|--ov-extra)    shift; XOVLS+=( "$1" );;
 	--env)             shift; AENV=$1;;
 	-A|--abis)         shift; MULTILIB_ABIS=$1;;
 	--host-abi)        shift; HOST_ABI=$1;;
@@ -604,6 +630,7 @@ while [[ $# -gt 0 ]] ; do
 	--ex-only)         EX_FAST="yes";;
 	--ex-gcc)          EX_GCC="yes";;
 	--ex-gdb)          EX_GDB="yes";;
+	--ex-pkg)          shift; XPKGS+=( "$1" );;
 	--with-*)          eval $(set_withval $1);;
 	--without-*)       eval $(set_withval $1);;
 	-f|--force)        FORCE="yes";;
@@ -648,6 +675,16 @@ show_target_cfg() {
 	)
 	ex_gdb && pkgs+=( gdb D )
 
+	if ex_pkgs ; then
+		show_extra_pkg() {
+			echo "ex_${XPKG}_category=${XCAT}"
+			echo "ex_${XPKG}_pn=${XPKG}"
+			crosspkgs+=( "ex_${XPKG}" )
+		}
+		for_each_extra_pkg show_extra_pkg
+		echo "extrapkgs='${crosspkgs[*]}'"
+	fi
+
 	echo "arch=${TARCH}"
 	echo "target=${CTARGET}"
 	echo "category=cross-${CTARGET}"
@@ -802,6 +839,9 @@ einfo "Extra: gcc pass:       DO IT"
 ex_gdb && {
 einfo "Extra: gdb:            DO IT"
 }
+ex_pkgs && {
+einfo "Extra:                 ${XPKGS[*]}"
+}
 echo
 einfo "CROSSDEV_OVERLAY:      ${CROSSDEV_OVERLAY}"
 einfo "PORT_LOGDIR:           ${PORT_LOGDIR}"
@@ -1073,6 +1113,7 @@ done
 for v in B G K L D ; do
 	set_portage ${v}
 done
+for_each_extra_pkg set_portage X
 set_metadata
 
 # filter out revdep rebuild stuff #182601
@@ -1230,5 +1271,10 @@ fi
 EOPTS="${EOPTS_UP} --newuse"
 ex_gcc && USE="${GUSE} ${USE}" doemerge ${GPKG} ${GPKG}-extra
 ex_gdb && USE="${DUSE} ${USE}" doemerge ${DPKG}
+if ex_pkgs ; then
+	for pkg in "${XPKGS[@]}" ; do
+		doemerge "${pkg#*/}"
+	done
+fi
 
 exit 0


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2015-04-18 22:58 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2015-04-18 22:58 UTC (permalink / raw
  To: gentoo-commits

commit:     d1819e52b899109a2d69692e55ba8b002c1bcd95
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 18 22:21:42 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sat Apr 18 22:21:42 2015 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=d1819e52

crossdev: switch nios to mainline packages

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

 crossdev | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index f900215..62b6c3d 100755
--- a/crossdev
+++ b/crossdev
@@ -241,8 +241,10 @@ parse_target() {
 		      DVER=">=7.7";;
 
 		nios2*)
-		      BPKG="binutils-nios2";
-		      GPKG="gcc-nios2";;
+		      BVER=">=2.24";
+		      GVER=">=4.9.1";
+		      LVER=">=2.21";
+		      KVER=">=4.0";;
 
 		spu*) TARCH=ppc64;
 		      KPKG="[none]";


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2014-10-31  1:56 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2014-10-31  1:56 UTC (permalink / raw
  To: gentoo-commits

commit:     dd74b7ca6c7a30031dc6fe967fc5c6764ef0fab2
Author:     Tim Harder <radhermit <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 22 22:35:39 2014 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Oct 22 22:35:39 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=dd74b7ca

crossdev: update msp430 support to use standard binutils/gcc/newlib/gdb

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

---
 crossdev | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/crossdev b/crossdev
index aa7be29..f900215 100755
--- a/crossdev
+++ b/crossdev
@@ -130,7 +130,7 @@ parse_target() {
 		   - h8300    http://h8300-hms.sourceforge.net/
 		   - mingw32  http://www.mingw.org/
 		   - mingw64  http://mingw-w64.sourceforge.net/
-		   - msp430   http://mspgcc.sourceforge.net/
+		   - msp430   http://www.ti.com/msp430
 		   - nds32    http://github.com/nds32
 		   - nios2    http://www.altera.com/products/ip/processors/nios2/ni2-index.html
 		   - xc16x    http://www.infineon.com/
@@ -183,7 +183,7 @@ parse_target() {
 				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
 			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*|tile*)
 				CTARGET="${CTARGET}-unknown-linux-gnu";;
-			bfin*|h8300*|nds32*|nios2*|spu*|xc16x*)
+			bfin*|h8300*|msp430*|nds32*|nios2*|spu*|xc16x*)
 				CTARGET="${CTARGET}-elf";;
 		esac
 	fi
@@ -234,15 +234,11 @@ parse_target() {
 		      KCAT="dev-util"; KPKG="w32api";
 		      LCAT="dev-util"; LPKG="mingw-runtime";;
 
-		msp430)
-		      KCAT="dev-embedded"; KPKG="msp430mcu";
-		      BCAT="dev-embedded"; BPKG="msp430-binutils";
-		      GCAT="dev-embedded"; GPKG="msp430-gcc";
-		      LCAT="dev-embedded"; LPKG="msp430-libc";
-		      DCAT="dev-embedded"; DPKG="msp430-gdb";
-		      GUSE="-fortran -openmp";
-		      MULTILIB_USE="yes"
-		      WITH_DEF_HEADERS="no";;
+		msp430*)
+		      BVER=">=2.24.90";
+		      GVER=">=4.9.1";
+		      LVER=">=2.1.0";
+		      DVER=">=7.7";;
 
 		nios2*)
 		      BPKG="binutils-nios2";


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2014-10-31  1:56 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2014-10-31  1:56 UTC (permalink / raw
  To: gentoo-commits

commit:     56e043405b71288bcb82d032a84a5c4d448c054a
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 31 01:28:34 2014 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Oct 31 01:28:34 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=56e04340

crossdev: mask live versions by default

When users use something like '>=2.24', they don't want to also unmask
the 9999 versions, so add that to package.mask by default.  They can
get that version only if they explicitly request it.

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

---
 crossdev | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/crossdev b/crossdev
index 831ebc6..aa7be29 100755
--- a/crossdev
+++ b/crossdev
@@ -847,6 +847,11 @@ set_keywords() {
 			ver=$(ver_chop_op "${ver}")
 			echo "cross-${CTARGET}/${pkg} -*" >> ${output}
 			echo "${op}cross-${CTARGET}/${pkg}-${ver} * ~* **" >> ${output}
+			if [[ ${ver} != "9999" ]] ; then
+				# Disable live versions unless exactly requested.
+				output=$(_set_portage_file ${pkg} package.mask)
+				echo ">=cross-${CTARGET}/${pkg}-9999" >> ${output}
+			fi
 		else
 			echo "cross-${CTARGET}/${pkg} * ~* **" >> ${output}
 			output=$(_set_portage_file ${pkg} package.mask)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2014-09-17 21:41 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2014-09-17 21:41 UTC (permalink / raw
  To: gentoo-commits

commit:     aaa0e489fcfa0f08f894342adc33bb9c93745e0a
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 17 19:17:06 2014 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Sep 17 19:17:06 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=aaa0e489

crossdev: set repo-name in generated layout.conf

URL: http://crbug.com/415246
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 56ddcda..29fe431 100755
--- a/crossdev
+++ b/crossdev
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 CROSSDEV_VER="@CDEVPV@"
@@ -931,8 +931,14 @@ set_metadata() {
 	# we really can do about that.
 	local autogen_tag="# Autogenerated and managed by crossdev"
 	local meta=${CROSSDEV_OVERLAY}/metadata
+	local repo_name
 	local layout=${meta}/layout.conf
-	local d name masters thin_manifests="false"
+	local f d name masters thin_manifests="false"
+
+	# See if this repo is already named.
+	f="${CROSSDEV_OVERLAY}/profiles/repo_name"
+	repo_name=$(cat "${f}" 2>/dev/null)
+	: ${repo_name:="crossdev"}
 
 	mkdir -p "${meta}"
 	if [[ -e ${layout} ]] ; then
@@ -954,6 +960,8 @@ set_metadata() {
 			name=$(<"${d}"/profiles/repo_name)
 		fi
 		[[ -z ${name} ]] && continue
+		# Don't list ourselves as a master.
+		[[ ${name} == "${repo_name}" ]] && continue
 
 		# If this repo has an eclass dir, mark it as a master.
 		# Note: portage reads the masters list in reverse order,
@@ -988,6 +996,7 @@ set_metadata() {
 	${autogen_tag}
 	# Delete the above line if you want to manage this file yourself
 	masters = ${masters% }
+	repo-name = ${repo_name}
 	$(printf '%b' "${this_manifests}")
 	EOF
 }


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2014-01-18 18:42 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2014-01-18 18:42 UTC (permalink / raw
  To: gentoo-commits

commit:     758de02aa18518c951ed49748faea19a5d09a101
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 14 07:27:29 2014 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Jan 14 20:38:25 2014 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=758de02a

crossdev: use new arm64 KEYWORD

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

---
 crossdev | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index b0f5ab7..56ddcda 100755
--- a/crossdev
+++ b/crossdev
@@ -176,6 +176,8 @@ parse_target() {
 				CTARGET="${CTARGET}-pc-linux-gnu";;
 			s390*)
 				CTARGET="${CTARGET}-ibm-linux-gnu";;
+			arm64*)
+				CTARGET="aarch${CTARGET#arm}-unknown-linux-gnu";;
 			arm*)
 				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
 			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*|tile*)
@@ -187,7 +189,7 @@ parse_target() {
 
 	# Figure out an acceptable portage ARCH for this target
 	case ${CTARGET} in
-		aarch64*)   TARCH=arm;;
+		aarch64*)   TARCH=arm64;;
 		alpha*)     TARCH=alpha;;
 		arm*)       TARCH=arm;;
 		hppa*)      TARCH=hppa;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-11-07 20:32 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-11-07 20:32 UTC (permalink / raw
  To: gentoo-commits

commit:     da76d615a5c18b0af092aea05965a156acbcdc6e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  7 20:31:42 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Nov  7 20:31:42 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=da76d615

crossdev: disable openmp for newlib targets

URL: https://bugs.gentoo.org/489798
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crossdev b/crossdev
index 8023513..a4ff901 100755
--- a/crossdev
+++ b/crossdev
@@ -293,6 +293,7 @@ parse_target() {
 			LPKG="newlib"
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
+			GUSE+=" -openmp" #489798
 			MULTILIB_USE="yes" #407275
 			WITH_DEF_HEADERS="no"
 			;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-11-07 20:28 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-11-07 20:28 UTC (permalink / raw
  To: gentoo-commits

commit:     ac0440baec9a419b254d6055733ed8a591bd7d8e
Author:     Vincent Palatin <vpalatin <AT> chromium <DOT> org>
AuthorDate: Thu Nov  7 20:27:40 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Nov  7 20:27:40 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=ac0440ba

crossdev: add nds32 arch parsing

Yet another newlib based arch.

Signed-off-by: Vincent Palatin <vpalatin <AT> chromium.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index eed7e4f..8023513 100755
--- a/crossdev
+++ b/crossdev
@@ -130,6 +130,7 @@ parse_target() {
 		   - mingw32  http://www.mingw.org/
 		   - mingw64  http://mingw-w64.sourceforge.net/
 		   - msp430   http://mspgcc.sourceforge.net/
+		   - nds32    http://github.com/nds32
 		   - nios2    http://www.altera.com/products/ip/processors/nios2/ni2-index.html
 		   - xc16x    http://www.infineon.com/
 		   - ee / iop / dvp (ps2) [Playstation 2 targets]
@@ -179,7 +180,7 @@ parse_target() {
 				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
 			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*|tile*)
 				CTARGET="${CTARGET}-unknown-linux-gnu";;
-			bfin*|h8300*|nios2*|spu*|xc16x*)
+			bfin*|h8300*|nds32*|nios2*|spu*|xc16x*)
 				CTARGET="${CTARGET}-elf";;
 		esac
 	fi


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-10-12 20:15 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-10-12 20:15 UTC (permalink / raw
  To: gentoo-commits

commit:     e1e24c023f85327972ff6e1cbc8762dcca4a1475
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 12 20:15:13 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sat Oct 12 20:15:13 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=e1e24c02

crossdev: update --ov-output help string to match latest behavior

URL: https://bugs.gentoo.org/486422
Reported-by: Alon Bar-Lev <alonbl <AT> gentoo.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 81120d0..eed7e4f 100755
--- a/crossdev
+++ b/crossdev
@@ -62,7 +62,9 @@ Overlay Options:
     ${GOOD}-oS, --overlays${NORMAL} list     Space delimited list of overlays to search
                                 [default: \${PORTDIR_OVERLAY}]
     ${GOOD}-oO, --ov-output${NORMAL} path    Overlay to write crossdev package links
-                                [default: first from --overlays list]
+                                [default: uses repo with name 'crossdev', or
+                                 'cross-\${CTARGET}', or falls back to first
+                                 from --overlays list]
     ${GOOD}-ob, --ov-binutils${NORMAL} path  Overlay for binutils ebuilds [default: search]
     ${GOOD}-od, --ov-gdb${NORMAL} path       Overlay for gdb ebuilds [default: search]
     ${GOOD}-og, --ov-gcc${NORMAL} path       Overlay for gcc ebuilds [default: search]


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-10-11 19:05 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-10-11 19:05 UTC (permalink / raw
  To: gentoo-commits

commit:     1ac79abd7a53f536478763c252f0f2e38fbcffb2
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 11 19:04:34 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Oct 11 19:04:34 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=1ac79abd

crossdev: mips: select default ABI based on target

Key off some of the targets that glibc itself uses to autoselect
the default ABI.

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

---
 crossdev | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/crossdev b/crossdev
index baebf44..81120d0 100755
--- a/crossdev
+++ b/crossdev
@@ -247,6 +247,14 @@ parse_target() {
 		      LPKG="newlib";;
 		ppu*) TARCH=ppc64;;
 
+		mips64*-gnuabin32)
+		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="n32";;
+		mips64*-gnuabi64|\
+		mips64*-gnuabin64)
+		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="n64";;
+		mips64*-gnuabi32|\
+		mips64*-gnuabio32)
+		      [[ ${MULTILIB_ABIS} == "default" ]] && MULTILIB_ABIS="o32";;
 		ee*)  TARCH=mips;
 		      KPKG="[none]"
 		      GVER="3.2.2"; BVER="2.14";


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-10-11 18:48 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-10-11 18:48 UTC (permalink / raw
  To: gentoo-commits

commit:     30a3c4433c900c70a515a59ad71c9f88d6e6333b
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 11 18:47:40 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Oct 11 18:47:40 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=30a3c443

crossdev: fix incorrect popd usage

It doesn't take any arguments.

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

---
 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index b5ba7b3..baebf44 100755
--- a/crossdev
+++ b/crossdev
@@ -1056,7 +1056,7 @@ doemerge() {
 			find -name config.log | \
 				tar cf - --files-from=- | \
 				xz > ../temp/${pn}-config.logs.tar.xz
-			popd "${d}" >/dev/null
+			popd >/dev/null
 		done
 		xz -zkf "${logfile}"
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-09-30  0:21 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-09-30  0:21 UTC (permalink / raw
  To: gentoo-commits

commit:     1ed7a8be200dbe4575cc029212f2ee18d0bd5d74
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 30 00:20:12 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Sep 30 00:20:12 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=1ed7a8be

crossdev: look up default crossdev overlays with `portageq get_repo_path`

This lets people name the overlays explicitly and crossdev will pick that
up by name.

URL: https://bugs.gentoo.org/486422
Reported-by: Alon Bar-Lev <alonbl <AT> gentoo.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 8290c12..b5ba7b3 100755
--- a/crossdev
+++ b/crossdev
@@ -311,9 +311,20 @@ setup_portage_vars() {
 	: ${SEARCH_OVERLAYS:=${PORTDIR_OVERLAY}}
 
 	# see if user told us where to write things, otherwise
-	# install our stuff to the first overlay in the list
-	: ${CROSSDEV_OVERLAY:=${SEARCH_OVERLAYS}}
-	CROSSDEV_OVERLAY=${CROSSDEV_OVERLAY%% *}
+	# set up some repos.conf magic if possible.  if not,
+	# install our stuff to the first overlay in the list.
+	if [[ -z ${CROSSDEV_OVERLAY} ]] ; then
+		CROSSDEV_OVERLAY=${SEARCH_OVERLAYS%% *}
+
+		local repo
+		for repo in "cross-${CTARGET}" crossdev ; do
+			repo=$(portageq get_repo_path / "${repo}")
+			if [[ -n ${repo} ]] ; then
+				CROSSDEV_OVERLAY=${repo}
+				break
+			fi
+		done
+	fi
 
 	# make sure we have a valid logdir
 	: ${PORT_LOGDIR:=/var/log/portage}


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-06-28  5:42 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-06-28  5:42 UTC (permalink / raw
  To: gentoo-commits

commit:     357476fff125ae2dba2ca04ff6453f61e097a877
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 28 05:18:26 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Jun 28 05:18:26 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=357476ff

crossdev: avr: disable go too

It's not supported for this target.

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

---
 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index 0ce3885..8290c12 100755
--- a/crossdev
+++ b/crossdev
@@ -211,7 +211,7 @@ parse_target() {
 
 		avr*) KPKG="[none]";
 		      LCAT="dev-embedded"; LPKG="avr-libc";
-		      GUSE="-fortran" # doesn't work
+		      GUSE="-fortran -go" # doesn't work
 		      MULTILIB_USE="yes" #377039
 		      WITH_DEF_HEADERS="no";;
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-06-28  5:14 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-06-28  5:14 UTC (permalink / raw
  To: gentoo-commits

commit:     0585bdd45b3aa4b91da531f3499f9b5469e852a1
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 28 05:14:00 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Jun 28 05:14:00 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=0585bdd4

crossdev: add tile to the mix

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

---
 crossdev | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crossdev b/crossdev
index f989556..0ce3885 100755
--- a/crossdev
+++ b/crossdev
@@ -175,7 +175,7 @@ parse_target() {
 				CTARGET="${CTARGET}-ibm-linux-gnu";;
 			arm*)
 				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
-			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*)
+			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*|tile*)
 				CTARGET="${CTARGET}-unknown-linux-gnu";;
 			bfin*|h8300*|nios2*|spu*|xc16x*)
 				CTARGET="${CTARGET}-elf";;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-04-20  2:50 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-04-20  2:50 UTC (permalink / raw
  To: gentoo-commits

commit:     323e1777bf0bb126b62f93a805ff63af5d6b18b5
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 20 02:35:07 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sat Apr 20 02:35:07 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=323e1777

crossdev: disable go for stage1 gcc builds

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

---
 crossdev |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 1256477..f989556 100755
--- a/crossdev
+++ b/crossdev
@@ -485,9 +485,9 @@ SEARCH_OVERLAYS=""
 CROSSDEV_OVERLAY=""
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them
-GUSE_DISABLE="-boundschecking -d -gtk -gcj -libffi -mudflap -objc -objc++ -objc-gc"
+GUSE_DISABLE="-boundschecking -d -gcj -gtk -libffi -mudflap -objc -objc++ -objc-gc"
 # These are disabled only for stage1 gcc
-GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran nocxx -cxx -openmp"
+GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran -go nocxx -cxx -openmp"
 GUSE_DISABLE_STAGE_2="${GUSE_DISABLE}"
 WITH_HEADERS="COW"   WITH_DEF_HEADERS="yes" #227065 gcc-4.3+ is a pita w/out headers
 EX_FAST="no"


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-03-28 16:20 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-03-28 16:20 UTC (permalink / raw
  To: gentoo-commits

commit:     b3c18b8f7ee1c0d7cfeac08f4a8c22cf667116b1
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 28 16:24:37 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Mar 28 16:24:37 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=b3c18b8f

crossdev: fix bug in alias processing

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

---
 crossdev |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 193ac4e..1256477 100755
--- a/crossdev
+++ b/crossdev
@@ -150,7 +150,7 @@ parse_target() {
 		esac
 		if [[ ${#aliases[@]} -eq 1 ]] ; then
 			CTARGET=${aliases[0]}
-		else
+		elif [[ ${#aliases[@]} -gt 1 ]] ; then
 			einfo "The '${CTARGET}' target is really an alias for the '${aliases}' target(s)"
 			local alias
 			for alias in ${aliases} ; do


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-03-28 16:20 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-03-28 16:20 UTC (permalink / raw
  To: gentoo-commits

commit:     f92d7f194f0abffc587b0b3112cd3a8890657cc2
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 28 16:19:20 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Mar 28 16:19:20 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=f92d7f19

crossdev: set up categories in the output overlay too

For tools that operate on the repo level (like egencache), make sure
we have a categories file set up in there since they won't search the
/etc/portage system path.

URL: http://bugs.gentoo.org/460106
Reported-by: Dennis Schridde <devurandom <AT> gmx.net>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index 3cab8c3..193ac4e 100755
--- a/crossdev
+++ b/crossdev
@@ -967,16 +967,18 @@ set_metadata() {
 	EOF
 }
 
-mkdir -p "${CONFIGROOT}"
-check_trailing_newline "${CONFIGROOT}"/categories
-grep -qs "^cross-${CTARGET}$" "${CONFIGROOT}"/categories \
-	|| echo cross-${CTARGET} >> "${CONFIGROOT}"/categories
-mkdir -p "${CROSSDEV_OVERLAY}"/cross-${CTARGET} || exit 1
-cd "${CONFIGROOT}"
+mkdir -p "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/{cross-${CTARGET},profiles} || die "wtf!?"
+for f in "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/profiles ; do
+	f+="/categories"
+	check_trailing_newline "${f}"
+	grep -qs "^cross-${CTARGET}$" "${f}" \
+		|| echo cross-${CTARGET} >> "${f}"
+done
+cd "${CONFIGROOT}" || die "wtf!?"
 for f in package.{env,keywords,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
 	[[ -f ${f} ]] && die "please convert ${CONFIGROOT}/${f} to a directory"
-	mkdir -p ${f} || die "wtf!?"
-	rm -f ${f}/cross-${CTARGET}
+	mkdir -p "${f}" || die "wtf!?"
+	rm -f "${f}/cross-${CTARGET}"
 done
 
 for v in B G K L D ; do


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2013-02-18 20:11 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2013-02-18 20:11 UTC (permalink / raw
  To: gentoo-commits

commit:     02eae3ddd3e6088e65b98f66e73b24663c65e888
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 18 19:50:30 2013 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Feb 18 19:55:49 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=02eae3dd

crossdev: unify alias handling, and add a mingw64 alias

URL: http://bugs.gentoo.org/457838
Reported-by: Dennis Schridde <devurandom <AT> gmx.net>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |   28 +++++++++++++++++++---------
 1 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/crossdev b/crossdev
index d13a7bf..3cab8c3 100755
--- a/crossdev
+++ b/crossdev
@@ -126,6 +126,7 @@ parse_target() {
 		   - bfin     http://blackfin.uclinux.org/
 		   - h8300    http://h8300-hms.sourceforge.net/
 		   - mingw32  http://www.mingw.org/
+		   - mingw64  http://mingw-w64.sourceforge.net/
 		   - msp430   http://mspgcc.sourceforge.net/
 		   - nios2    http://www.altera.com/products/ip/processors/nios2/ni2-index.html
 		   - xc16x    http://www.infineon.com/
@@ -140,6 +141,24 @@ parse_target() {
 
 	# Allow for laziness
 	if [[ ${CTARGET} != *-* ]] ; then
+		# Handle aliases
+		local aliases=()
+		case ${CTARGET} in
+			cell)    aliases=( ppu spu-elf );;
+			mingw64) aliases=( x86_64-w64-mingw32 );;
+			ps2)     aliases=( ee iop dvp );;
+		esac
+		if [[ ${#aliases[@]} -eq 1 ]] ; then
+			CTARGET=${aliases[0]}
+		else
+			einfo "The '${CTARGET}' target is really an alias for the '${aliases}' target(s)"
+			local alias
+			for alias in ${aliases} ; do
+				${CROSSDEV} -t ${alias} || exit 1
+			done
+			exit 0
+		fi
+
 		# First translate portage ARCH to actual tuple
 		case ${CTARGET} in
 			amd64)      CTARGET="x86_64";;
@@ -223,20 +242,11 @@ parse_target() {
 		      BPKG="binutils-nios2";
 		      GPKG="gcc-nios2";;
 
-		cell) einfo "The cell target is really an alias for the spu/ppu targets"
-		      ${CROSSDEV} -t ppu || exit 1
-		      ${CROSSDEV} -t spu-elf || exit 1
-		      exit 0;;
 		spu*) TARCH=ppc64;
 		      KPKG="[none]";
 		      LPKG="newlib";;
 		ppu*) TARCH=ppc64;;
 
-		ps2)  einfo "The ps2 target is really an alias for the ee/iop/dvp targets"
-		      ${CROSSDEV} -t ee  || exit 1
-		      ${CROSSDEV} -t iop || exit 1
-		      ${CROSSDEV} -t dvp || exit 1
-		      exit 0;;
 		ee*)  TARCH=mips;
 		      KPKG="[none]"
 		      GVER="3.2.2"; BVER="2.14";


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-12-25 21:44 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-12-25 21:44 UTC (permalink / raw
  To: gentoo-commits

commit:     de838ec6f92d5fd00c6b806009a213112c416b15
Author:     Luca Barbato <lu_zero <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 25 20:28:17 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Dec 25 21:44:09 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=de838ec6

crossdev: add support for musl targets/libc

URL: https://bugs.gentoo.org/448592
Signed-off-by: Luca Barbato <lu_zero <AT> gentoo.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index 3045e0a..d13a7bf 100755
--- a/crossdev
+++ b/crossdev
@@ -118,6 +118,7 @@ parse_target() {
 		Supported C Libraries:
 		   - glibc (gnu)
 		   - klibc       [prob wont work]
+		   - musl
 		   - newlib      [bare metal/no operating system]
 		   - uclibc      [not all arches are ported]
 		Special Targets:
@@ -258,6 +259,7 @@ parse_target() {
 		*-klibc)    LPKG="klibc";;
 		*-uclibc*)  LPKG="uclibc";;
 		*-uclinux)  LPKG="uclibc";;
+		*-musl*)    LPKG="musl";;
 
 		# Windows targets
 		*-cygwin)


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-11-18  7:56 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-11-18  7:56 UTC (permalink / raw
  To: gentoo-commits

commit:     20cb71d3cc20d4cd425ac6ab358fe6a16248af6c
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 18 07:55:25 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sun Nov 18 07:56:25 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=20cb71d3

crossdev: clean out a few more gcc wrappers

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

---
 crossdev |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index e914347..3045e0a 100755
--- a/crossdev
+++ b/crossdev
@@ -341,8 +341,8 @@ uninstall() {
 	# clean out known toolchain files (binutils/gcc)
 	for f in \
 		addr2line ar as c++filt dlltool dllwrap embedspu \
-		gprof ld nm objcopy objdump ranlib readelf \
-		size strings strip windmc windres
+		gcc-{ar,nm,ranlib} gccbug gprof ld nm objcopy objdump \
+		ranlib readelf size strings strip windmc windres
 	do
 		rm -f /usr/bin/${CTARGET}-${f} /usr/${CTARGET}/bin/${f}
 	done


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-11-11  9:10 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-11-11  9:10 UTC (permalink / raw
  To: gentoo-commits

commit:     efb3749cffc22596bd554616019bda7b28bdb26f
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 11 09:10:14 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sun Nov 11 09:10:14 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=efb3749c

crossdev: add missing ${NORMAL} to help text

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

---
 crossdev |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 3ea5699..e914347 100755
--- a/crossdev
+++ b/crossdev
@@ -47,7 +47,7 @@ Options:
                                 Note: versions support depend atom syntaxes:
                                  e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
     ${GOOD}-A, --abis${NORMAL} abis          Specify ABIs to build, first one is the default
-    ${GOOD}--host-abi abi                    Specify the ABI of the compiler itself
+    ${GOOD}--host-abi abi${NORMAL}           Specify the ABI of the compiler itself
     ${GOOD}--env${NORMAL} env                Specify env settings for all packages (see below)
     ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gdb/gcc/kernel/libc
                                 Note: make sure to quote: 'VAR="some value"\nFOO="cow"'


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-11-05  8:37 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-11-05  8:37 UTC (permalink / raw
  To: gentoo-commits

commit:     88a92b7bac7c1b4650ede3b9bd9cfbce7bd6ebf1
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  5 08:37:12 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Nov  5 08:37:12 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=88a92b7b

crossdev: fix typos in arch/chost init

We are trying to get the build settings of the vars, so make sure
we unset those and not the local cached ones.

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

---
 crossdev |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 435a338..3ea5699 100755
--- a/crossdev
+++ b/crossdev
@@ -285,7 +285,7 @@ parse_target() {
 setup_portage_vars() {
 	local arch=${ARCH} arch_set=${ARCH+set}
 	local chost=${CHOST} chost_set=${CHOST+set}
-	unset arch chost
+	unset ARCH CHOST
 	eval $(portageq envvar -v PORTDIR_OVERLAY PORTDIR PORT_LOGDIR PORTAGE_TMPDIR ARCH CHOST)
 
 	# keep the original values, but be aware of the native ones


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-10-02  3:23 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-10-02  3:23 UTC (permalink / raw
  To: gentoo-commits

commit:     52e6fdddfccd27588a891a1d08c653d1d28a99f0
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  2 03:23:13 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Oct  2 03:23:13 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=52e6fddd

crossdev: expand aarch64 as linux targets

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

---
 crossdev |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index d5afcb7..435a338 100755
--- a/crossdev
+++ b/crossdev
@@ -155,7 +155,7 @@ parse_target() {
 				CTARGET="${CTARGET}-ibm-linux-gnu";;
 			arm*)
 				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
-			alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*)
+			aarch64*|alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*)
 				CTARGET="${CTARGET}-unknown-linux-gnu";;
 			bfin*|h8300*|nios2*|spu*|xc16x*)
 				CTARGET="${CTARGET}-elf";;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-09-13  5:13 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-09-13  5:13 UTC (permalink / raw
  To: gentoo-commits

commit:     949926e94f9752823800457dc43bd7f7d114b13e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 13 05:13:42 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Sep 13 05:13:42 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=949926e9

check for .git before setting up $PV

This avoids ugly warnings during `make install`.

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

---
 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 15e6e74..a36fa1f 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ install:
 	$(INSTALL_EXEC) crossdev $(DESTDIR)/$(PREFIX)/bin/
 	$(MAKE) -C wrappers install
 
-PV = $(shell date --date="`git log -1 --format=%ci`" +%Y%m%d)
+PV = $(shell test -e .git && date --date="`git log -1 --format=%ci`" +%Y%m%d)
 P = crossdev-$(PV)
 COMP = xz
 dist:


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-09-13  5:05 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-09-13  5:05 UTC (permalink / raw
  To: gentoo-commits

commit:     58a3489d1e49a758fa7097438c4c9dfa76f2d71e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 13 05:07:44 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Sep 13 05:07:44 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=58a3489d

crossdev: handle aarch64

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

---
 crossdev |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index b6ad814..d5afcb7 100755
--- a/crossdev
+++ b/crossdev
@@ -108,7 +108,7 @@ parse_target() {
 	if [[ ${CTARGET} == "help" ]] ; then
 		cat <<-EOF
 		Supported Architectures:
-		   - alpha                                     - arm / armeb
+		   - alpha                                     - arm / armeb / aarch64
 		   - hppa (parisc)                             - ia64
 		   - i386 / i486 / i586 / i686 (x86)           - m68k
 		   - mips / mipsel / mips64 / mips64el
@@ -164,6 +164,7 @@ parse_target() {
 
 	# Figure out an acceptable portage ARCH for this target
 	case ${CTARGET} in
+		aarch64*)   TARCH=arm;;
 		alpha*)     TARCH=alpha;;
 		arm*)       TARCH=arm;;
 		hppa*)      TARCH=hppa;;


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-08-30 18:16 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-08-30 18:16 UTC (permalink / raw
  To: gentoo-commits

commit:     a91d41e49cbf4a87e74a878969cabbeb751929da
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 30 18:14:01 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Aug 30 18:14:01 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=a91d41e4

crossdev: enable multilib by default for bare-metal targets

Bare metal targets often times use multilib to support a variety of
sub-targets with gcc.  Since we just need the compiler to produce
these extra libs and objs, enable multilib by default for all bare
metal targets.  For ones that don't care about multilib, this should
be a nop.

URL: https://bugs.gentoo.org/377039
URL: https://bugs.gentoo.org/407275
Reported-by: Michael Moon <triffid.hunter <AT> gmail.com>
Reported-by: Sven <sven.koehler <AT> gmail.com>
Tested-by: Tim Harder <radhermit <AT> gentoo.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index ddfd5aa..b6ad814 100755
--- a/crossdev
+++ b/crossdev
@@ -191,6 +191,7 @@ parse_target() {
 		avr*) KPKG="[none]";
 		      LCAT="dev-embedded"; LPKG="avr-libc";
 		      GUSE="-fortran" # doesn't work
+		      MULTILIB_USE="yes" #377039
 		      WITH_DEF_HEADERS="no";;
 
 		# due to upstream lameness, build C/C++ at first glance
@@ -213,6 +214,7 @@ parse_target() {
 		      LCAT="dev-embedded"; LPKG="msp430-libc";
 		      DCAT="dev-embedded"; DPKG="msp430-gdb";
 		      GUSE="-fortran -openmp";
+		      MULTILIB_USE="yes"
 		      WITH_DEF_HEADERS="no";;
 
 		nios2*)
@@ -267,6 +269,7 @@ parse_target() {
 			LPKG="newlib"
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
+			MULTILIB_USE="yes" #407275
 			WITH_DEF_HEADERS="no"
 			;;
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-08-20 21:36 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-08-20 21:36 UTC (permalink / raw
  To: gentoo-commits

commit:     9e97e5847da804a7cf20110c8f7bc31049ff30d7
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 20 21:34:46 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Aug 20 21:36:08 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=9e97e584

utilize $EPREFIX in the env if it is set

Fix handling of EPREFIX -- it should prefix /usr, not replace it.

URL: https://bugs.gentoo.org/423711
Reported-by: Alessandro Surace <linuxale <AT> libero.it>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 settings.mk |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/settings.mk b/settings.mk
index dba6419..30434d6 100644
--- a/settings.mk
+++ b/settings.mk
@@ -2,8 +2,8 @@
 # Distributed under the terms of the GNU General Public License v2
 
 DESTDIR ?=
-EPREFIX ?= /usr
-PREFIX ?= $(EPREFIX)
+EPREFIX ?=
+PREFIX ?= $(EPREFIX)/usr
 
 INSTALL_DIR  = install -m 755 -d
 INSTALL_EXEC = install -m 755


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-08-17 21:20 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-08-17 21:20 UTC (permalink / raw
  To: gentoo-commits

commit:     00f454607d0e2dc08ad5156bac6c162d6fc9d9c7
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 17 21:19:21 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Aug 17 21:19:21 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=00f45460

crossdev: build C library headers with --nodeps

When installing the C library headers, ignore dependencies.  We aren't
actually compiling anything at this point, so no need to pull in pkgs
that we might need.

URL: https://bugs.gentoo.org/423711
Reported-by: Alessandro Surace <linuxale <AT> libero.it>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index b90cf60..ddfd5aa 100755
--- a/crossdev
+++ b/crossdev
@@ -1081,8 +1081,12 @@ if ! ex_fast ; then
 
 			if [[ -n ${LPKG} ]] ; then
 				# install C library headers
+				# we have to use --nodeps as glibc itself might have
+				# a dependency on newer gcc versions that we don't
+				# care about at this point -- we aren't compiling yet
 				USE="${LUSE} ${USE}" \
 				CROSSCOMPILE_OPTS="headers-only" \
+				EOPTS="${EOPTS} --nodeps" \
 					doemerge ${LPKG} ${LPKG}-headers
 			fi
 		fi


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-07-31 16:19 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-07-31 16:19 UTC (permalink / raw
  To: gentoo-commits

commit:     0374b1bd4c2de5f06eb53eeaf02dcb1b659616d2
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 31 16:18:56 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Jul 31 16:18:56 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=0374b1bd

utilize $EPREFIX in the env if it is set

URL: https://bugs.gentoo.org/384167
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 settings.mk |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/settings.mk b/settings.mk
index 21063b9..dba6419 100644
--- a/settings.mk
+++ b/settings.mk
@@ -1,8 +1,9 @@
-# Copyright 2008-2010 Gentoo Foundation
+# Copyright 2008-2012 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 DESTDIR ?=
-PREFIX ?= /usr
+EPREFIX ?= /usr
+PREFIX ?= $(EPREFIX)
 
 INSTALL_DIR  = install -m 755 -d
 INSTALL_EXEC = install -m 755


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-07-30  3:01 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-07-30  3:01 UTC (permalink / raw
  To: gentoo-commits

commit:     e1e09a9a671c9c7c55a0e853d4f562472f8332f0
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 30 02:58:27 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Jul 30 02:58:27 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=e1e09a9a

crossdev: fix overlay selection documentation

The code picks the first overlay to store its code, not the last.
Fix up the documentation to match reality.

URL: https://bugs.gentoo.org/428420
Reported-by: W. Trevor King <wking <AT> tremily.us>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 7073ab6..b90cf60 100755
--- a/crossdev
+++ b/crossdev
@@ -62,7 +62,7 @@ Overlay Options:
     ${GOOD}-oS, --overlays${NORMAL} list     Space delimited list of overlays to search
                                 [default: \${PORTDIR_OVERLAY}]
     ${GOOD}-oO, --ov-output${NORMAL} path    Overlay to write crossdev package links
-                                [default: last from --overlays list]
+                                [default: first from --overlays list]
     ${GOOD}-ob, --ov-binutils${NORMAL} path  Overlay for binutils ebuilds [default: search]
     ${GOOD}-od, --ov-gdb${NORMAL} path       Overlay for gdb ebuilds [default: search]
     ${GOOD}-og, --ov-gcc${NORMAL} path       Overlay for gcc ebuilds [default: search]
@@ -295,7 +295,7 @@ setup_portage_vars() {
 	: ${SEARCH_OVERLAYS:=${PORTDIR_OVERLAY}}
 
 	# see if user told us where to write things, otherwise
-	# install our stuff to the last overlay in the list
+	# install our stuff to the first overlay in the list
 	: ${CROSSDEV_OVERLAY:=${SEARCH_OVERLAYS}}
 	CROSSDEV_OVERLAY=${CROSSDEV_OVERLAY%% *}
 


^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-06-09  5:23 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-06-09  5:23 UTC (permalink / raw
  To: gentoo-commits

commit:     89f1808b7af989d005887ed4179fb60e10b8145c
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  9 05:23:03 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sat Jun  9 05:23:06 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=89f1808b

TODO: fix target/host CFLAGS mixing at some point

URL: http://bugs.gentoo.org/420089
Reported-by: Maciej Szmigiero <mhej <AT> o2.pl>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 TODO |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/TODO b/TODO
index e69de29..c3a19aa 100644
--- a/TODO
+++ b/TODO
@@ -0,0 +1,4 @@
+- add a --target-flags option #420089 so people can set the default flags
+  that they want to build the cross-compiler with.  this requires fixing
+  gcc/binutils and how we only have a single CFLAGS value that is passed
+  both for the host (e.g. `gcc`) and for the target (e.g. libgcc.so).



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-06-09  5:23 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-06-09  5:23 UTC (permalink / raw
  To: gentoo-commits

commit:     3cff43d89ac830b430620aaa640ae616e7902a49
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  6 19:50:10 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Jun  6 19:50:10 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=3cff43d8

crossdev: delay uninstalling to after parsing options

This makes command lines like `crossdev -C foo --help` work.

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

---
 crossdev |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 468c3b1..7073ab6 100755
--- a/crossdev
+++ b/crossdev
@@ -386,8 +386,6 @@ uninstall() {
 			fi
 		fi
 	done
-
-	exit 0
 }
 
 set_withval() {
@@ -481,6 +479,7 @@ EX_GCC="no"
 EX_GDB="no"
 FORCE="no"
 SET_X="no"
+ACTION="install"
 SHOW_FAIL_LOG="no"
 SHOW_TARGET_CFG="no"
 INIT_TARGET_ONLY="no"
@@ -508,7 +507,7 @@ while [[ $# -gt 0 ]] ; do
 	-A|--abis)         shift; MULTILIB_ABIS=$1;;
 	--host-abi)        shift; HOST_ABI=$1;;
 	-S|--stable)       DEFAULT_VER="[stable]";;
-	-C|--clean)        shift; parse_target $1; uninstall;;
+	-C|--clean)        shift; parse_target $1; ACTION="uninstall";;
 	-s?|--stage?)      STAGE=${1:0-1};;
 	-oS|--overlays)    shift; SEARCH_OVERLAYS=$1;;
 	-oO|--ov-output)   shift; CROSSDEV_OVERLAY=$1;;
@@ -532,6 +531,9 @@ while [[ $# -gt 0 ]] ; do
 	shift
 done
 [[ ${SET_X} == "yes" ]] && set -x
+case ${ACTION} in
+uninstall) uninstall; exit 0;;
+esac
 
 BVER=${BVER:-${DEFAULT_VER}}
 GVER=${GVER:-${DEFAULT_VER}}



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-06-03  9:03 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-06-03  9:03 UTC (permalink / raw
  To: gentoo-commits

commit:     ade8fc57e94367649319ab164c601a086947d180
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu May 31 05:51:16 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu May 31 05:51:16 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=ade8fc57

crossdev: avoid emerge info logging with --init-target

The emerge info step ends up taking the most time compared to the actual
updating of config files, so skip it in that case.

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

---
 crossdev |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/crossdev b/crossdev
index 454318c..468c3b1 100755
--- a/crossdev
+++ b/crossdev
@@ -483,7 +483,7 @@ FORCE="no"
 SET_X="no"
 SHOW_FAIL_LOG="no"
 SHOW_TARGET_CFG="no"
-INIT_TARGET_ONLY="false"
+INIT_TARGET_ONLY="no"
 
 while [[ $# -gt 0 ]] ; do
 	case $1 in
@@ -718,10 +718,12 @@ hr
 }
 # avoid pipe since `einfo` will not use color :(
 info
-(
-info
-emerge -v --info
-) >& "${PORT_LOGDIR}"/cross-${CTARGET}-info.log || exit 1
+if [[ ${INIT_TARGET_ONLY} != "yes" ]] ; then
+	(
+	info
+	emerge -v --info
+	) >& "${PORT_LOGDIR}"/cross-${CTARGET}-info.log || exit 1
+fi
 
 ####################################
 ### Fix up portage files / paths ###



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-06-03  9:03 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-06-03  9:03 UTC (permalink / raw
  To: gentoo-commits

commit:     38dfb9463e4e6f48d5628c1e58cdd77e26c36c60
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu May 31 05:49:05 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu May 31 05:49:05 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=38dfb946

TODO: drop done entries

We've handle forced USE flags for a while, and we've add the cross
paths to the revdep-rebuild filters, so these TODO entries are done!

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

---
 TODO |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/TODO b/TODO
index 5cfdc52..e69de29 100644
--- a/TODO
+++ b/TODO
@@ -1,2 +0,0 @@
-- strip package.use.force (i.e. building x86_64 on x86_64 gets forced multilib)
-- filter /usr/CTARGET/ from revdep-rebuild #182601



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-06-03  9:03 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-06-03  9:03 UTC (permalink / raw
  To: gentoo-commits

commit:     15ec45f4528a073d72039b66f239abebf6feb25a
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sat May 26 05:25:48 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu May 31 05:43:38 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=15ec45f4

crossdev: split host and target ABIs

The current ABI env var system does not differentiate between the ABI
of the CHOST (where things run) and the ABI of the target (what we're
generating code for).  This makes it difficult to build a toolchain
that runs on ABI=amd64 but targets ABI=x32.

Introduce a TARGET_ABI set of variables that the tools that run on the
CHOST can use to figure out what ABIs it needs to build for the CTARGET.

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

---
 TODO     |    5 ----
 crossdev |   71 +++++++++++++++++++++++++++++++++++++++++++++++++------------
 2 files changed, 57 insertions(+), 19 deletions(-)

diff --git a/TODO b/TODO
index e850bc5..f5e089b 100644
--- a/TODO
+++ b/TODO
@@ -1,11 +1,6 @@
 - strip package.use.force (i.e. building x86_64 on x86_64 gets forced multilib)
 - filter /usr/CTARGET/ from revdep-rebuild #182601
 
-- HOST_ABI and TARGET_ABI selection; consider:
-	- build a 64bit (amd64) cross-compiler which targets 32bit (x86)
-	- build a 64bit (amd64) cross-compiler which targets x32
-	- ABI variables atm do not differentiate between host
-
 - package.use not getting setup correctly:
 # cat /etc/portage/package.use/cross-x86_64-cros-linux-gnu
 cross-x86_64-cros-linux-gnu/gdb sys-devel gdb

diff --git a/crossdev b/crossdev
index 2b491bc..9a294fe 100755
--- a/crossdev
+++ b/crossdev
@@ -47,6 +47,7 @@ Options:
                                 Note: versions support depend atom syntaxes:
                                  e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
     ${GOOD}-A, --abis${NORMAL} abis          Specify ABIs to build, first one is the default
+    ${GOOD}--host-abi abi                    Specify the ABI of the compiler itself
     ${GOOD}--env${NORMAL} env                Specify env settings for all packages (see below)
     ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gdb/gcc/kernel/libc
                                 Note: make sure to quote: 'VAR="some value"\nFOO="cow"'
@@ -457,6 +458,7 @@ HARCH=
 CTARGET=
 MULTILIB_ABIS="default"
 MULTILIB_USE=""
+HOST_ABI="default"
 STAGE=""
 AENV=""
 BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL=""
@@ -504,6 +506,7 @@ while [[ $# -gt 0 ]] ; do
 	-ol|--ov-libc)     shift; LOVL=$1;;
 	--env)             shift; AENV=$1;;
 	-A|--abis)         shift; MULTILIB_ABIS=$1;;
+	--host-abi)        shift; HOST_ABI=$1;;
 	-S|--stable)       DEFAULT_VER="[stable]";;
 	-C|--clean)        shift; parse_target $1; uninstall;;
 	-s?|--stage?)      STAGE=${1:0-1};;
@@ -606,8 +609,13 @@ for v in MULTILIB_ABIS UCLIBC_CPU USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS A
 done
 
 # parse multilib settings until profiles are sane
-eval $(
-	# clean the env
+multilib_env() {
+	local var=$1
+	eval $(
+	# see what target to parse
+	CTARGET=${!var}
+
+	# clean the env in our subshell
 	unset ${!CFLAGS_*} ${!CHOST_*} ${!CTARGET_*} ${!LDFLAGS_*} ${!LIBDIR_*}
 
 	# ask multilib.eclass to tell us how things work
@@ -630,9 +638,14 @@ eval $(
 	${single_abi} && MULTILIB_ABIS=${DEFAULT_ABI}
 
 	# output the desired env
-	for v in ${!CFLAGS_*} ${!CHOST_*} ${!CTARGET_*} ${!LDFLAGS_*} ${!LIBDIR_*} MULTILIB_ABIS DEFAULT_ABI ; do
+	for v in ${!CFLAGS_*} ${!CHOST_*} ${!CTARGET_*} ${!LDFLAGS_*} ${!LIBDIR_*} ; do
 		echo ${v}=\'${!v}\'
 	done
+	# output the variables that are not uniquely named
+	[[ ${var} == "CTARGET" ]] && d='' || d='_'
+	for v in MULTILIB_ABIS DEFAULT_ABI ; do
+		echo ${d}${v}=\'${!v}\'
+	done
 
 	# make sure all ABIs have valid vars
 	def_CFLAGS=
@@ -646,7 +659,14 @@ eval $(
 			echo ${_v}=\'${!d}\'
 		done
 	done
-)
+	)
+}
+# Load settings for the host.
+MULTILIB_ABIS=${HOST_ABI} multilib_env HCHOST
+HOST_ABI=${_MULTILIB_ABIS}
+# Load settings for the target.
+multilib_env CTARGET
+
 DEFAULT_ABI=${MULTILIB_ABIS%% *}
 if [[ -z ${MULTILIB_USE} ]] ; then
 	if [[ $(set -- ${MULTILIB_ABIS}; echo $#) -eq 1 ]] ; then
@@ -791,7 +811,7 @@ set_links() {
 	ln -s "${srcdir}"/${cat}/${pkg} "${d}"
 }
 set_env() {
-	local pkg=$1 env=$2 output
+	local l=$1 pkg=$2 env=$3 output
 	shift ; shift
 
 	# We have to ignore collisions in the build-id tree because it's
@@ -811,16 +831,41 @@ set_env() {
 	$(printf '%b' "${AENV}")
 	EOF
 
+	# We need to differentiate between the host and target ABI just like
+	# we have to handle the difference between CHOST and CTARGET.  For
+	# the headers and library packages, we want the ABI to be the target.
+	# For the compiler tools (as/ld/cc/gdb/etc...), we want the ABI to be
+	# the host.
+	local TARGET_ABI=$(set -- ${MULTILIB_ABIS}; echo $1)
+	case ${l} in
+	K|L)
+		# Target packages.
+		local ABI=${TARGET_ABI}
+		# Use MULTILIB_ABIS & DEFAULT_ABI from env.
+		;;
+	*)
+		# Host packages.
+		cat <<-EOF >> "${output}"
+		TARGET_ABI='${TARGET_ABI}'
+		TARGET_MULTILIB_ABIS='${MULTILIB_ABIS}'
+		TARGET_DEFAULT_ABI='${DEFAULT_ABI}'
+		EOF
+		local ABI=${HOST_ABI}
+		local MULTILIB_ABIS=${ABI}
+		local DEFAULT_ABI=${ABI}
+		;;
+	esac
 	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
+		echo "${v}='${!v}'"
+	done >> "${output}"
 
 	output=$(_set_portage_file ${pkg} package.env)
 	echo "cross-${CTARGET}/${pkg} cross-${CTARGET}/${pkg}.conf" >> ${output}
 }
 set_portage() {
+	local l=$1
+	eval set -- \${${l}CAT} \${${l}PKG} \${${l}VER} \"\${${l}ENV}\" \"\${${l}OVL}\"
 	local cat=$1 pkg=$2 ver=$3 env=$4 ovl=$5
 	shift 5
 	local use=$@
@@ -832,7 +877,7 @@ set_portage() {
 	set_use_force ${pkg} -multilib
 	set_use_mask ${pkg} -multilib
 	set_links ${cat} ${pkg} "${ovl}"
-	set_env ${pkg} "${env}"
+	set_env ${l} ${pkg} "${env}"
 }
 set_metadata() {
 	# for people who have eclasses spread over their overlays, generate
@@ -914,11 +959,9 @@ for f in package.{env,keywords,mask,use} env/cross-${CTARGET} profile/package.us
 	rm -f ${f}/cross-${CTARGET}
 done
 
-set_portage ${BCAT} ${BPKG} ${BVER} "${BENV}" "${BOVL}"
-set_portage ${GCAT} ${GPKG} ${GVER} "${GENV}" "${GOVL}"
-set_portage ${KCAT} ${KPKG} ${KVER} "${KENV}" "${KOVL}"
-set_portage ${LCAT} ${LPKG} ${LVER} "${LENV}" "${LOVL}"
-set_portage ${DCAT} ${DPKG} ${DVER} "${DENV}" "${DOVL}"
+for v in B G K L D ; do
+	set_portage ${v}
+done
 set_metadata
 
 # filter out revdep rebuild stuff #182601



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-06-03  9:03 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-06-03  9:03 UTC (permalink / raw
  To: gentoo-commits

commit:     4c4ebe8766f7e7f51538c8b7284acef9a007320b
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu May 31 05:44:45 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu May 31 05:44:45 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=4c4ebe87

crossdev: fix bad use flag settings with non-versioned packages

If the xVER variable isn't set, we only add 4 args to the array, and
the subsequent shift of 5 would fail.  So we'd end up treating the
previous args as USE flags and add them to package.use.  Make this
work as intended by quoting the VER variable.

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

---
 TODO     |    6 ------
 crossdev |    4 ++--
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/TODO b/TODO
index f5e089b..5cfdc52 100644
--- a/TODO
+++ b/TODO
@@ -1,8 +1,2 @@
 - strip package.use.force (i.e. building x86_64 on x86_64 gets forced multilib)
 - filter /usr/CTARGET/ from revdep-rebuild #182601
-
-- package.use not getting setup correctly:
-# cat /etc/portage/package.use/cross-x86_64-cros-linux-gnu
-cross-x86_64-cros-linux-gnu/gdb sys-devel gdb
-cross-x86_64-cros-linux-gnu/insight dev-util insight
-cross-x86_64-cros-linux-gnu/binutils -selinux multilib

diff --git a/crossdev b/crossdev
index 9a294fe..454318c 100755
--- a/crossdev
+++ b/crossdev
@@ -865,10 +865,10 @@ set_env() {
 }
 set_portage() {
 	local l=$1
-	eval set -- \${${l}CAT} \${${l}PKG} \${${l}VER} \"\${${l}ENV}\" \"\${${l}OVL}\"
+	eval set -- \${${l}CAT} \${${l}PKG} \"\${${l}VER}\" \"\${${l}ENV}\" \"\${${l}OVL}\"
 	local cat=$1 pkg=$2 ver=$3 env=$4 ovl=$5
 	shift 5
-	local use=$@
+	local use=$*
 
 	[[ ${pkg} == "[none]" ]] && return 0
 



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-05-30 15:28 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-05-30 15:28 UTC (permalink / raw
  To: gentoo-commits

commit:     a90771cb146880e903e5f74713cb879acacccc64
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue May 29 20:27:41 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue May 29 20:29:35 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=a90771cb

crossdev: add --init-target flag for just preparing things

To help out external tooling, add a --init-target flag that tells
crossdev to only setup its /etc/portage (and such) settings without
actually running emerge.

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

---
 crossdev |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index bd2f505..acd6bf2 100755
--- a/crossdev
+++ b/crossdev
@@ -78,6 +78,7 @@ Stage Options:
 
 External Tooling Options:
     ${GOOD}--show-target-cfg${NORMAL}        Display target settings that crossdev will use
+    ${GOOD}--init-target${NORMAL}            Setup config/overlay/etc... files only
 
 Extra Fun (must be run after above stages):
     ${GOOD}--ex-only${NORMAL}                Skip the stage steps above
@@ -478,6 +479,7 @@ FORCE="no"
 SET_X="no"
 SHOW_FAIL_LOG="no"
 SHOW_TARGET_CFG="no"
+INIT_TARGET_ONLY="false"
 
 while [[ $# -gt 0 ]] ; do
 	case $1 in
@@ -512,6 +514,7 @@ while [[ $# -gt 0 ]] ; do
 	-f|--force)        FORCE="yes";;
 	-x)                SET_X="yes";;
 	--show-target-cfg) SHOW_TARGET_CFG="yes";;
+	--init-target)     INIT_TARGET_ONLY="yes";;
 	--show-fail-log)   SHOW_FAIL_LOG="yes";;
 	-P|--portage)      UOPTS="${UOPTS} $2"; shift;;
 	-b|-d|-p|-v|-q)    UOPTS="${UOPTS} $1";;
@@ -943,6 +946,10 @@ doemerge() {
 
 	[[ ${pn} == "[none]" ]] && return 0
 
+	set_use ${pn} ${USE} $( [[ ${MULTILIB_USE} == "no" ]] && echo - )multilib
+
+	[[ ${INIT_TARGET_ONLY} == "yes" ]] && return 0
+
 	local logfile=${PORT_LOGDIR}/${category}
 	[[ -z $2 ]] \
 		&& logfile=${logfile}-${pn}.log \
@@ -951,8 +958,6 @@ doemerge() {
 	einfo "Log: ${logfile}"
 	ebegin "Emerging cross-${2:-${pn}}"
 
-	set_use ${pn} ${USE} $( [[ ${MULTILIB_USE} == "no" ]] && echo - )multilib
-
 	if has -v ${UOPTS} || has -p ${UOPTS} || has -vp ${UOPTS} || has -pv ${UOPTS} ; then
 		SHOW_FAIL_LOG="no"
 		emerge ${atom} ${EOPTS} 2>&1 | tee "${logfile}"



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-05-30 15:28 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-05-30 15:28 UTC (permalink / raw
  To: gentoo-commits

commit:     a8a0a0b6df35c65057c626a3aa42def2d76a8561
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 23 19:31:33 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Mar 23 19:31:33 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=a8a0a0b6

crossdev: WITH_DEF_HEADERS=yes for targets

Since we do WITH_DEF_HEADERS=yes by default now, no point in having
individual targets set it too.

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

---
 crossdev |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 6ef442c..08d2c7d 100755
--- a/crossdev
+++ b/crossdev
@@ -165,7 +165,7 @@ parse_target() {
 		alpha*)     TARCH=alpha;;
 		arm*)       TARCH=arm;;
 		hppa*)      TARCH=hppa;;
-		ia64*)      TARCH=ia64    WITH_DEF_HEADERS="yes";;
+		ia64*)      TARCH=ia64;;
 		i?86*)      TARCH=x86;;
 		m68*)       TARCH=m68k;;
 		mips*)      TARCH=mips;;
@@ -201,7 +201,6 @@ parse_target() {
 		      LCAT="dev-util"; LPKG="mingw64-runtime";;
 
 		mingw*|*-mingw*)
-		      WITH_DEF_HEADERS="yes";
 		      KCAT="dev-util"; KPKG="w32api";
 		      LCAT="dev-util"; LPKG="mingw-runtime";;
 



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-05-30 15:28 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-05-30 15:28 UTC (permalink / raw
  To: gentoo-commits

commit:     bce7e2f98c548753c680a37e581fe907515a4f77
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue May 29 20:33:31 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue May 29 20:33:31 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=bce7e2f9

crossdev: add an --env flag for common env settings

Some env settings people want to specify for all the packages, so add
a new --env flag so people don't have to copy & paste the same value
to multiple flags (which might change over time).

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

---
 crossdev |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index acd6bf2..2b491bc 100755
--- a/crossdev
+++ b/crossdev
@@ -47,6 +47,7 @@ Options:
                                 Note: versions support depend atom syntaxes:
                                  e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
     ${GOOD}-A, --abis${NORMAL} abis          Specify ABIs to build, first one is the default
+    ${GOOD}--env${NORMAL} env                Specify env settings for all packages (see below)
     ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gdb/gcc/kernel/libc
                                 Note: make sure to quote: 'VAR="some value"\nFOO="cow"'
     ${GOOD}-f, --force${NORMAL}              I don't need a seat belt!
@@ -457,6 +458,7 @@ CTARGET=
 MULTILIB_ABIS="default"
 MULTILIB_USE=""
 STAGE=""
+AENV=""
 BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL=""
 GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL=""
 KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" KUSE="" KENV="" KOVL=""
@@ -500,6 +502,7 @@ while [[ $# -gt 0 ]] ; do
 	--l|--libc)        shift; LVER=$1;;
 	--lenv)            shift; LENV=$1;;
 	-ol|--ov-libc)     shift; LOVL=$1;;
+	--env)             shift; AENV=$1;;
 	-A|--abis)         shift; MULTILIB_ABIS=$1;;
 	-S|--stable)       DEFAULT_VER="[stable]";;
 	-C|--clean)        shift; parse_target $1; uninstall;;
@@ -805,6 +808,7 @@ set_env() {
 	SYMLINK_LIB=no
 	COLLISION_IGNORE="\${COLLISION_IGNORE} /usr/lib/debug/.build-id"
 	$(printf '%b' "${env}")
+	$(printf '%b' "${AENV}")
 	EOF
 
 	local v



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-05-30 15:28 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-05-30 15:28 UTC (permalink / raw
  To: gentoo-commits

commit:     62dcd6be0369a51298f78257c9d72cb66071d1a5
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 23 19:52:30 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Mar 23 19:52:30 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=62dcd6be

crossdev: drop insight support

Hasn't been an insight update in a while, so punt it.  Doubt anyone
really uses it, and if they do, it's trivial to set up themselves.

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

---
 crossdev |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index 08d2c7d..bd2f505 100755
--- a/crossdev
+++ b/crossdev
@@ -83,7 +83,6 @@ Extra Fun (must be run after above stages):
     ${GOOD}--ex-only${NORMAL}                Skip the stage steps above
     ${GOOD}--ex-gcc${NORMAL}                 Build extra gcc targets (gcj/ada/etc...)
     ${GOOD}--ex-gdb${NORMAL}                 Build a cross gdb
-    ${GOOD}--ex-insight${NORMAL}             Build a cross insight
 
 ${BRACKET}Target (-t)${NORMAL} takes a tuple ${BRACKET}ARCH-VENDOR-OS-LIBC${NORMAL}; see 'crossdev -t help'
 EOF
@@ -415,7 +414,6 @@ with_headers()   { [[ ${WITH_HEADERS}   == "yes" ]] ; }
 ex_fast()    { [[ ${EX_FAST}    == "yes" ]] ; }
 ex_gcc()     { [[ ${EX_GCC}     == "yes" ]] ; }
 ex_gdb()     { [[ ${EX_GDB}     == "yes" ]] ; }
-ex_insight() { [[ ${EX_INSIGHT} == "yes" ]] ; }
 
 hr() {
 	local c=${COLUMNS:-0}
@@ -509,7 +507,6 @@ while [[ $# -gt 0 ]] ; do
 	--ex-only)         EX_FAST="yes";;
 	--ex-gcc)          EX_GCC="yes";;
 	--ex-gdb)          EX_GDB="yes";;
-	--ex-insight)      EX_INSIGHT="yes";;
 	--with-*)          eval $(set_withval $1);;
 	--without-*)       eval $(set_withval $1);;
 	-f|--force)        FORCE="yes";;
@@ -686,9 +683,6 @@ einfo "Extra: gcc pass:       DO IT"
 ex_gdb && {
 einfo "Extra: gdb:            DO IT"
 }
-ex_insight && {
-einfo "Extra: insight:        DO IT"
-}
 echo
 einfo "CROSSDEV_OVERLAY:      ${CROSSDEV_OVERLAY}"
 einfo "PORT_LOGDIR:           ${PORT_LOGDIR}"
@@ -918,7 +912,6 @@ set_portage ${GCAT} ${GPKG} ${GVER} "${GENV}" "${GOVL}"
 set_portage ${KCAT} ${KPKG} ${KVER} "${KENV}" "${KOVL}"
 set_portage ${LCAT} ${LPKG} ${LVER} "${LENV}" "${LOVL}"
 set_portage ${DCAT} ${DPKG} ${DVER} "${DENV}" "${DOVL}"
-set_portage dev-util insight
 set_metadata
 
 # filter out revdep rebuild stuff #182601
@@ -1079,6 +1072,5 @@ fi
 EOPTS="${EOPTS_UP} --newuse"
 ex_gcc && USE="${GUSE} ${USE}" doemerge ${GPKG} ${GPKG}-extra
 ex_gdb && USE="${DUSE} ${USE}" doemerge ${DPKG}
-ex_insight && doemerge insight
 
 exit 0



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-03-07 18:31 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-03-07 18:31 UTC (permalink / raw
  To: gentoo-commits

commit:     8c87443a6951d763e1c77c31c24cca483f886116
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  7 15:33:54 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Mar  7 15:33:54 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=8c87443a

crossdev: include portage flags in summary log

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

---
 crossdev |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index 764115d..6ef442c 100755
--- a/crossdev
+++ b/crossdev
@@ -694,6 +694,7 @@ echo
 einfo "CROSSDEV_OVERLAY:      ${CROSSDEV_OVERLAY}"
 einfo "PORT_LOGDIR:           ${PORT_LOGDIR}"
 einfo "PORTAGE_CONFIGROOT:    ${PORTAGE_CONFIGROOT}"
+einfo "Portage flags:         ${UOPTS}"
 hr
 }
 # avoid pipe since `einfo` will not use color :(



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-03-05 23:15 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-03-05 23:15 UTC (permalink / raw
  To: gentoo-commits

commit:     7b9314446c4d280391be7367e57ed8e2efcd7553
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  2 19:19:06 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Mar  2 19:19:13 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=7b931444

crossdev: tweak uninstall a bit

Should be no functional changes here.

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

---
 crossdev |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index e37aafa..764115d 100755
--- a/crossdev
+++ b/crossdev
@@ -304,13 +304,15 @@ setup_portage_vars() {
 }
 
 uninstall() {
+	local d f
+
 	setup_portage_vars
 
 	ewarn "Uninstalling target '${CTARGET}' ..."
 
+	# clean out portage config files
 	[[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]] \
 		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
-	local f
 	for f in categories package.{env,mask,keywords,use} profile/package.use.{force,mask} ; do
 		f="${CONFIGROOT}/${f}"
 		rm -f "${f}"/cross-${CTARGET}
@@ -325,21 +327,19 @@ uninstall() {
 	if [[ -d /var/db/pkg/cross-${CTARGET} ]] ; then
 		export CLEAN_DELAY=0
 		cd /var/db/pkg
-		for p in cross-${CTARGET}/* ; do
-			emerge -qC =${p} || exit 1
-		done
+		local pkgs=( cross-${CTARGET}/* )
+		emerge -qC ${pkgs[@]/#/=} || exit 1
 	else
 		ewarn "${CTARGET}: no packages installed; will clean out known files"
 	fi
 
 	# clean out known toolchain files (binutils/gcc)
-	local b
-	for b in \
+	for f in \
 		addr2line ar as c++filt dlltool dllwrap embedspu \
 		gprof ld nm objcopy objdump ranlib readelf \
 		size strings strip windmc windres
 	do
-		rm -f /usr/bin/${CTARGET}-${b} /usr/${CTARGET}/bin/${b}
+		rm -f /usr/bin/${CTARGET}-${f} /usr/${CTARGET}/bin/${f}
 	done
 	rm -f /usr/${CTARGET}/{sys-include,usr}
 	rmdir /usr/${CTARGET}/{include/asm,include} 2>/dev/null
@@ -350,7 +350,6 @@ uninstall() {
 	[[ -e /var/db/pkg/cross-${CTARGET} ]] && rmdir /var/db/pkg/cross-${CTARGET}
 	rm -f /usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} /usr/bin/emerge-${CTARGET}
 
-	local f
 	for f in make.{conf,globals,profile} ; do
 		f="/usr/${CTARGET}/etc/${f}"
 		[[ -L ${f} ]] && rm -f ${f}



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-03-05 23:15 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-03-05 23:15 UTC (permalink / raw
  To: gentoo-commits

commit:     bc9fad392648ea842e5f7ecba7df5b91f434f489
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  2 05:11:46 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Mar  2 05:11:46 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=bc9fad39

crossdev: fix cleaning of /etc/portage

Ironically, the code to simplify /etc/portage handling broke the
uninstall (commit a0721f00c837abdc835843dc44d23).  Restore the
required line.

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

---
 crossdev |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index 142e852..e37aafa 100755
--- a/crossdev
+++ b/crossdev
@@ -312,6 +312,7 @@ uninstall() {
 		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
 	local f
 	for f in categories package.{env,mask,keywords,use} profile/package.use.{force,mask} ; do
+		f="${CONFIGROOT}/${f}"
 		rm -f "${f}"/cross-${CTARGET}
 		rmdir "${f}" 2>/dev/null
 	done



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-03-05 23:15 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-03-05 23:15 UTC (permalink / raw
  To: gentoo-commits

commit:     3bd2b7c079705aebb17b15323697e470783fa52f
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  2 03:34:43 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Mar  2 03:34:43 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=3bd2b7c0

crossdev: fix order of pkgs in env flags to match options

Also extend example env string to show multiple values.

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

---
 crossdev |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index cc505bb..142e852 100755
--- a/crossdev
+++ b/crossdev
@@ -47,8 +47,8 @@ Options:
                                 Note: versions support depend atom syntaxes:
                                  e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
     ${GOOD}-A, --abis${NORMAL} abis          Specify ABIs to build, first one is the default
-    ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gcc/gdb/kernel/libc
-                                Note: make sure to quote: 'VAR="some value"'
+    ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gdb/gcc/kernel/libc
+                                Note: make sure to quote: 'VAR="some value"\nFOO="cow"'
     ${GOOD}-f, --force${NORMAL}              I don't need a seat belt!
     ${GOOD}-S, --stable${NORMAL}             Use latest stable versions as default
     ${GOOD}-C, --clean${NORMAL} target       Uninstall specified target



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-03-01 18:43 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-03-01 18:43 UTC (permalink / raw
  To: gentoo-commits

commit:     97f8b65255f856e69caceb7bd40ccaa3a5e7c98b
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 29 23:03:47 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Mar  1 05:28:07 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=97f8b652

crossdev: ignore collisions in build-id paths

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

---
 crossdev |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index 8979ca3..cc505bb 100755
--- a/crossdev
+++ b/crossdev
@@ -794,9 +794,19 @@ set_env() {
 	local pkg=$1 env=$2 output
 	shift ; shift
 
+	# We have to ignore collisions in the build-id tree because it's
+	# easy to create a cross-program that is the same.  For example,
+	# if we try to build gdb for both arm-eabi and cross-arm-linux-gnueabi,
+	# then these gdb's might have the same build-id and try to install
+	# into the same paths.  Ignoring the collisions isn't great since
+	# updating one can drop the symlink for another, but for now, it's
+	# the best we've got without implementing reference counting on
+	# installed paths in the PM.
+
 	output="env/cross-${CTARGET}/${pkg}.conf"
 	cat <<-EOF > "${output}"
 	SYMLINK_LIB=no
+	COLLISION_IGNORE="\${COLLISION_IGNORE} /usr/lib/debug/.build-id"
 	$(printf '%b' "${env}")
 	EOF
 



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-03-01 18:43 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-03-01 18:43 UTC (permalink / raw
  To: gentoo-commits

commit:     086fdbcfb68b6cedc5dfc2c4fd35245b57c2df02
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  1 05:26:39 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Mar  1 05:27:53 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=086fdbcf

crossdev: move custom env from bashrc to package.env

Since we only want to tweak the variables in the env and not execute
arbitrary scripts, use package.env rather than bashrc to override.

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

---
 crossdev |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index f0306fc..8979ca3 100755
--- a/crossdev
+++ b/crossdev
@@ -311,7 +311,7 @@ uninstall() {
 	[[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]] \
 		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
 	local f
-	for f in categories package.{mask,keywords,use} profile/package.use.{force,mask} ; do
+	for f in categories package.{env,mask,keywords,use} profile/package.use.{force,mask} ; do
 		rm -f "${f}"/cross-${CTARGET}
 		rmdir "${f}" 2>/dev/null
 	done
@@ -794,7 +794,7 @@ set_env() {
 	local pkg=$1 env=$2 output
 	shift ; shift
 
-	output="env/cross-${CTARGET}/${pkg}"
+	output="env/cross-${CTARGET}/${pkg}.conf"
 	cat <<-EOF > "${output}"
 	SYMLINK_LIB=no
 	$(printf '%b' "${env}")
@@ -805,6 +805,9 @@ set_env() {
 	for v in ${!CFLAGS_*} ${!CHOST_*} ${!CTARGET_*} ${!LDFLAGS_*} ${!LIBDIR_*} ABI MULTILIB_ABIS DEFAULT_ABI ; do
 		echo "${v}='${!v}'" >> "${output}"
 	done
+
+	output=$(_set_portage_file ${pkg} package.env)
+	echo "cross-${CTARGET}/${pkg} cross-${CTARGET}/${pkg}.conf" >> ${output}
 }
 set_portage() {
 	local cat=$1 pkg=$2 ver=$3 env=$4 ovl=$5
@@ -894,7 +897,7 @@ grep -qs "^cross-${CTARGET}$" "${CONFIGROOT}"/categories \
 	|| echo cross-${CTARGET} >> "${CONFIGROOT}"/categories
 mkdir -p "${CROSSDEV_OVERLAY}"/cross-${CTARGET} || exit 1
 cd "${CONFIGROOT}"
-for f in package.{keywords,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
+for f in package.{env,keywords,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
 	[[ -f ${f} ]] && die "please convert ${CONFIGROOT}/${f} to a directory"
 	mkdir -p ${f} || die "wtf!?"
 	rm -f ${f}/cross-${CTARGET}



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-03-01 18:43 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-03-01 18:43 UTC (permalink / raw
  To: gentoo-commits

commit:     879fba692436df2ccd72e0f23ea954245796711e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  1 00:19:20 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Mar  1 05:27:37 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=879fba69

crossdev: make build log creation more bullet proof

Fix some corner cases where crossdev would issue ugly warnings
due to existing files/missing dirs/etc... while trying to create
log files for people to post to bugs.

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

---
 crossdev |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 1c9a5b7..f0306fc 100755
--- a/crossdev
+++ b/crossdev
@@ -959,6 +959,7 @@ doemerge() {
 
 		local d
 		for d in "${PORTAGE_TMPDIR}"/portage/${atom}*/work/ ; do
+			[[ -d ${d} ]] || continue
 			pushd "${d}" >/dev/null
 			mkdir -p ../temp # sanity!
 			find -name config.log | \
@@ -966,7 +967,7 @@ doemerge() {
 				xz > ../temp/${pn}-config.logs.tar.xz
 			popd "${d}" >/dev/null
 		done
-		xz -zk "${logfile}"
+		xz -zkf "${logfile}"
 
 		die_logs "${pn} failed :(" \
 			"${logfile}.xz" \



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-03-01 18:43 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-03-01 18:43 UTC (permalink / raw
  To: gentoo-commits

commit:     a0721f00c837abdc835843dc44d23a967d96dba4
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  1 00:18:09 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Mar  1 05:27:36 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=a0721f00

crossdev: reject flat files in PORTAGE_CONFIGROOT

It's getting to be too much of a hassle to support flat files in
PORTAGE_CONFIGROOT (I'm lazy), so start rejecting setups that try
to do that.  It's trivial for people to convert over to dirs.

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

---
 crossdev |   14 +++++---------
 1 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/crossdev b/crossdev
index 65bd433..1c9a5b7 100755
--- a/crossdev
+++ b/crossdev
@@ -310,14 +310,10 @@ uninstall() {
 
 	[[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]] \
 		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
+	local f
 	for f in categories package.{mask,keywords,use} profile/package.use.{force,mask} ; do
-		f="${CONFIGROOT}/${f}"
-		if [[ -d ${f} ]] ; then
-			rm -f "${f}"/cross-${CTARGET}
-			rmdir "${f}" 2>/dev/null
-		elif [[ -f ${f} ]] ; then
-			sed -i -r -e "/^cross-${CTARGET}(\/|$)/d" "${f}"
-		fi
+		rm -f "${f}"/cross-${CTARGET}
+		rmdir "${f}" 2>/dev/null
 	done
 	rm -rf "${CONFIGROOT}"/env/cross-${CTARGET}
 	rmdir "${CONFIGROOT}"/env 2>/dev/null
@@ -899,8 +895,8 @@ grep -qs "^cross-${CTARGET}$" "${CONFIGROOT}"/categories \
 mkdir -p "${CROSSDEV_OVERLAY}"/cross-${CTARGET} || exit 1
 cd "${CONFIGROOT}"
 for f in package.{keywords,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
-	[[ -f ${f} ]] && continue
-	mkdir -p ${f} || exit 1
+	[[ -f ${f} ]] && die "please convert ${CONFIGROOT}/${f} to a directory"
+	mkdir -p ${f} || die "wtf!?"
 	rm -f ${f}/cross-${CTARGET}
 done
 



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-29 17:18 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-29 17:18 UTC (permalink / raw
  To: gentoo-commits

commit:     c770bea7dfb34a39f305407e8126f3536e6ce6af
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 29 16:43:54 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Feb 29 17:11:11 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=c770bea7

crossdev: tell users what to post when a build fails

Include all the log files and such.

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

---
 crossdev |   55 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 39 insertions(+), 16 deletions(-)

diff --git a/crossdev b/crossdev
index 14515ca..65bd433 100755
--- a/crossdev
+++ b/crossdev
@@ -16,14 +16,21 @@ CONFIGROOT="${PORTAGE_CONFIGROOT}/etc/portage"
 
 source /etc/init.d/functions.sh || exit 1
 esyslog() { :; }
-die() {
+die_logs() {
 	echo
-	eerror $*
-	eerror If you file a bug, please attach the following logfiles:
-	eerror ${PORT_LOGDIR}/cross-${CTARGET}-info.log
-	eerror ${logfile}
+	eerror "$1"
+
+	shift
+	local log
+	eerror
+	eerror "If you file a bug, please attach the following logfiles:"
+	eerror "${PORT_LOGDIR}/cross-${CTARGET}-info.log"
+	for log in "$@" ; do
+		eerror "${log}"
+	done
 	exit 1
 }
+die() { die_logs "$*"; }
 has() { [[ " ${@:2} " == *" $1 "* ]]; }
 
 usage() {
@@ -274,7 +281,7 @@ setup_portage_vars() {
 	local arch=${ARCH} arch_set=${ARCH+set}
 	local chost=${CHOST} chost_set=${CHOST+set}
 	unset arch chost
-	eval $(portageq envvar -v PORTDIR_OVERLAY PORTDIR PORT_LOGDIR ARCH CHOST)
+	eval $(portageq envvar -v PORTDIR_OVERLAY PORTDIR PORT_LOGDIR PORTAGE_TMPDIR ARCH CHOST)
 
 	# keep the original values, but be aware of the native ones
 	HARCH=${ARCH}
@@ -928,30 +935,46 @@ set_eopts_on_pkg_status() {
 		|| EOPTS=${EOPTS_UP}
 }
 doemerge() {
-	[[ $1 == "[none]" ]] && return 0
+	local category="cross-${CTARGET}"
+	local pn=$1
+	local atom="${category}/${pn}"
+
+	[[ ${pn} == "[none]" ]] && return 0
 
-	local logfile=${PORT_LOGDIR}/cross-${CTARGET}
+	local logfile=${PORT_LOGDIR}/${category}
 	[[ -z $2 ]] \
-		&& logfile=${logfile}-$1.log \
+		&& logfile=${logfile}-${pn}.log \
 		|| logfile=${logfile}-$2.log
 
 	einfo "Log: ${logfile}"
-	ebegin "Emerging cross-${2:-$1}"
+	ebegin "Emerging cross-${2:-${pn}}"
 
-	set_use $1 ${USE} $( [[ ${MULTILIB_USE} == "no" ]] && echo - )multilib
+	set_use ${pn} ${USE} $( [[ ${MULTILIB_USE} == "no" ]] && echo - )multilib
 
 	if has -v ${UOPTS} || has -p ${UOPTS} || has -vp ${UOPTS} || has -pv ${UOPTS} ; then
 		SHOW_FAIL_LOG="no"
-		emerge cross-${CTARGET}/$1 ${EOPTS} \
-			2>&1 | tee "${logfile}"
+		emerge ${atom} ${EOPTS} 2>&1 | tee "${logfile}"
 	else
-		emerge cross-${CTARGET}/$1 ${EOPTS} \
-			>& "${logfile}"
+		emerge ${atom} ${EOPTS} >& "${logfile}"
 	fi
 	local _pipestatus=${PIPESTATUS[*]}
 	if [[ "${_pipestatus// /}" -ne 0 ]] ; then
 		[[ ${SHOW_FAIL_LOG} == "yes" ]] && cat "${logfile}"
-		die "$1 failed :("
+
+		local d
+		for d in "${PORTAGE_TMPDIR}"/portage/${atom}*/work/ ; do
+			pushd "${d}" >/dev/null
+			mkdir -p ../temp # sanity!
+			find -name config.log | \
+				tar cf - --files-from=- | \
+				xz > ../temp/${pn}-config.logs.tar.xz
+			popd "${d}" >/dev/null
+		done
+		xz -zk "${logfile}"
+
+		die_logs "${pn} failed :(" \
+			"${logfile}.xz" \
+			"${PORTAGE_TMPDIR}/portage/${atom}*/temp/${pn}-config.logs.tar.xz"
 	fi
 	eend 0
 }



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-29 16:22 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-29 16:22 UTC (permalink / raw
  To: gentoo-commits

commit:     c0d8915eefa7f334f3912440016f50bd0b32995e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 28 17:20:36 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Feb 28 17:20:36 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=c0d8915e

crossdev: output config in a shell-evalable style

Should simplify scripts trying to parse this as now they can do:
	eval $(crossdev --show-target-cfg ...); echo $foo

Rather than manually parsing like:
	foo=$(crossdev --show-target-cfg ... | awk '$1 == "foo" { print $NF }')

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

---
 crossdev |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/crossdev b/crossdev
index 50a523e..68389d5 100755
--- a/crossdev
+++ b/crossdev
@@ -537,7 +537,7 @@ for with in HEADERS ; do
 done
 
 show_target_cfg() {
-	local pkgs
+	local pkgs crosspkgs=()
 
 	pkgs=(
 		binutils B
@@ -547,18 +547,27 @@ show_target_cfg() {
 	)
 	ex_gdb && pkgs+=( gdb D )
 
-	echo "arch ${TARCH}"
-	echo "target ${CTARGET}"
-	echo "category cross-${CTARGET}"
+	echo "arch=${TARCH}"
+	echo "target=${CTARGET}"
+	echo "category=cross-${CTARGET}"
 	while [[ ${#pkgs[@]} -gt 0 ]] ; do
-		local vcat="${pkgs[1]}CAT"
-		local vpkg="${pkgs[1]}PKG"
+		local pkg=${pkgs[0]}
+		local v=${pkgs[1]}
+		local vcat="${v}CAT"
+		local vpkg="${v}PKG"
+		local ocat="${pkg}_category"
+		local opkg="${pkg}_pn"
 
 		if [[ ${!vpkg} != "[none]" ]] ; then
-			echo "${pkgs[0]} ${!vcat} ${!vpkg}"
+			echo "${ocat}=${!vcat}"
+			echo "${opkg}=${!vpkg}"
+		else
+			printf '%s=\n' "${ocat}" "${opkg}"
 		fi
+		crosspkgs+=( ${pkg} )
 		pkgs=( ${pkgs[@]:2} )
 	done
+	echo "crosspkgs='${crosspkgs[*]}'"
 
 	exit 0
 }



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-29 16:22 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-29 16:22 UTC (permalink / raw
  To: gentoo-commits

commit:     072726d88e2c4b31f5249e45c5b3a33730eab3e0
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 29 16:22:02 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Feb 29 16:22:02 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=072726d8

crossdev: reverse masters list in layout.conf

Portage reads this in reverse order, so we have to populate it in
reverse order as well.

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

---
 crossdev |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 68389d5..14515ca 100755
--- a/crossdev
+++ b/crossdev
@@ -848,9 +848,11 @@ set_metadata() {
 		fi
 		[[ -z ${name} ]] && continue
 
-		# If this repo has an eclass dir, mark it as a master
+		# If this repo has an eclass dir, mark it as a master.
+		# Note: portage reads the masters list in reverse order,
+		#       so we have to prepare it the same way.
 		if [[ -d ${d}/eclass ]] ; then
-			has ${name} ${masters} || masters+=" ${name}"
+			has ${name} ${masters} || masters="${name} ${masters}"
 		fi
 
 		# If one of the overlays uses thin manifests, then turn it on
@@ -878,7 +880,7 @@ set_metadata() {
 	cat <<-EOF > "${layout}"
 	${autogen_tag}
 	# Delete the above line if you want to manage this file yourself
-	masters =${masters}
+	masters = ${masters% }
 	$(printf '%b' "${this_manifests}")
 	EOF
 }



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-29 16:22 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-29 16:22 UTC (permalink / raw
  To: gentoo-commits

commit:     b1ab683651afe8e95acc312e26488129892aa155
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 28 15:27:36 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Feb 28 15:27:36 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=b1ab6836

crossdev: use "kernel" in --show-target-cfg

The command line flag is --kernel, so the config output should match that.

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

---
 crossdev |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 27f0a1c..50a523e 100755
--- a/crossdev
+++ b/crossdev
@@ -542,7 +542,7 @@ show_target_cfg() {
 	pkgs=(
 		binutils B
 		gcc G
-		headers K
+		kernel K
 		libc L
 	)
 	ex_gdb && pkgs+=( gdb D )



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-27 22:50 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-27 22:50 UTC (permalink / raw
  To: gentoo-commits

commit:     3e4df184a9626123cf7c0678fc757e399a2af2a1
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 27 22:50:22 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Feb 27 22:50:22 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=3e4df184

crossdev: add --show-target-cfg for external toolers

This is meant for other scripts that will be calling crossdev to get
info out of crossdev so they don't have to duplicate tuple maps.

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

---
 crossdev |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index 45debb9..27f0a1c 100755
--- a/crossdev
+++ b/crossdev
@@ -69,6 +69,9 @@ Stage Options:
     ${GOOD}-s4, --stage4${NORMAL}            Also build a full compiler [default]
                                 (shared libs GCC/various lang frontends/etc...)
 
+External Tooling Options:
+    ${GOOD}--show-target-cfg${NORMAL}        Display target settings that crossdev will use
+
 Extra Fun (must be run after above stages):
     ${GOOD}--ex-only${NORMAL}                Skip the stage steps above
     ${GOOD}--ex-gcc${NORMAL}                 Build extra gcc targets (gcj/ada/etc...)
@@ -474,6 +477,7 @@ EX_GDB="no"
 FORCE="no"
 SET_X="no"
 SHOW_FAIL_LOG="no"
+SHOW_TARGET_CFG="no"
 
 while [[ $# -gt 0 ]] ; do
 	case $1 in
@@ -508,6 +512,7 @@ while [[ $# -gt 0 ]] ; do
 	--without-*)       eval $(set_withval $1);;
 	-f|--force)        FORCE="yes";;
 	-x)                SET_X="yes";;
+	--show-target-cfg) SHOW_TARGET_CFG="yes";;
 	--show-fail-log)   SHOW_FAIL_LOG="yes";;
 	-P|--portage)      UOPTS="${UOPTS} $2"; shift;;
 	-b|-d|-p|-v|-q)    UOPTS="${UOPTS} $1";;
@@ -531,6 +536,34 @@ for with in HEADERS ; do
 	[[ ${!var} == "COW" ]] && eval ${var}=${!defvar}
 done
 
+show_target_cfg() {
+	local pkgs
+
+	pkgs=(
+		binutils B
+		gcc G
+		headers K
+		libc L
+	)
+	ex_gdb && pkgs+=( gdb D )
+
+	echo "arch ${TARCH}"
+	echo "target ${CTARGET}"
+	echo "category cross-${CTARGET}"
+	while [[ ${#pkgs[@]} -gt 0 ]] ; do
+		local vcat="${pkgs[1]}CAT"
+		local vpkg="${pkgs[1]}PKG"
+
+		if [[ ${!vpkg} != "[none]" ]] ; then
+			echo "${pkgs[0]} ${!vcat} ${!vpkg}"
+		fi
+		pkgs=( ${pkgs[@]:2} )
+	done
+
+	exit 0
+}
+[[ ${SHOW_TARGET_CFG} == "yes" ]] && show_target_cfg
+
 setup_portage_vars
 if [[ -z ${CROSSDEV_OVERLAY} ]] ; then
 	eerror "You need to specify an output overlay.  Please use --ov-output or set"



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-27 22:47 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-27 22:47 UTC (permalink / raw
  To: gentoo-commits

commit:     55e07ef11873c874a3ccc4a9182889bc59f31475
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 27 22:42:38 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Feb 27 22:44:58 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=55e07ef1

crossdev: auto detect & enable thin-manifests

If one of our source repos is using thin-manifests, automatically enable
it in the crossdev one as well.

URL: https://bugs.gentoo.org/404029
Reported-by: Jess Haas <gentoo <AT> jesshaas.com>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index faa48ed..45debb9 100755
--- a/crossdev
+++ b/crossdev
@@ -783,7 +783,7 @@ set_metadata() {
 	local autogen_tag="# Autogenerated and managed by crossdev"
 	local meta=${CROSSDEV_OVERLAY}/metadata
 	local layout=${meta}/layout.conf
-	local d name masters
+	local d name masters thin_manifests="false"
 
 	mkdir -p "${meta}"
 	if [[ -e ${layout} ]] ; then
@@ -806,9 +806,30 @@ set_metadata() {
 		fi
 		[[ -z ${name} ]] && continue
 
+		# If this repo has an eclass dir, mark it as a master
 		if [[ -d ${d}/eclass ]] ; then
 			has ${name} ${masters} || masters+=" ${name}"
 		fi
+
+		# If one of the overlays uses thin manifests, then turn it on
+		if [[ -z ${this_manifests} ]] && has ${name} ${masters} && \
+			sed \
+				-e 's:#.*::' \
+				-e 's:^[[:space:]]*::' \
+				-e 's:[[:space:]]*$::' \
+				-e 's:[[:space:]]*=[[:space:]]*:=:' \
+				"${d}/metadata/layout.conf" 2>/dev/null | \
+			gawk -F= '{
+					if ($1 == "use-manifests") um = $2
+					if ($1 == "thin-manifests") tm = $2
+				}
+				END {
+					exit !(um != "false" && tm == "true")
+				}'
+		then
+			einfo "enabling thin-manifests due to ${d}"
+			this_manifests="use-manifests = true\nthin-manifests = true"
+		fi
 	done
 
 	# write out that layout.conf!
@@ -816,6 +837,7 @@ set_metadata() {
 	${autogen_tag}
 	# Delete the above line if you want to manage this file yourself
 	masters =${masters}
+	$(printf '%b' "${this_manifests}")
 	EOF
 }
 



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-24 22:23 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-24 22:23 UTC (permalink / raw
  To: gentoo-commits

commit:     c4de9066d048dec78bc723c897fcd04c54a1fb29
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 24 22:02:43 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Feb 24 22:02:43 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=c4de9066

crossdev: default arm to eabi targets

Various upstream projects are dropping oabi support.

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

---
 crossdev |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index c09a037..faa48ed 100755
--- a/crossdev
+++ b/crossdev
@@ -141,7 +141,9 @@ parse_target() {
 				CTARGET="${CTARGET}-pc-linux-gnu";;
 			s390*)
 				CTARGET="${CTARGET}-ibm-linux-gnu";;
-			alpha*|arm*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*)
+			arm*)
+				CTARGET="${CTARGET}-unknown-linux-gnueabi";;
+			alpha*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*)
 				CTARGET="${CTARGET}-unknown-linux-gnu";;
 			bfin*|h8300*|nios2*|spu*|xc16x*)
 				CTARGET="${CTARGET}-elf";;



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-14 20:24 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-14 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     fbc5412484424d1a061a8433d8851eae7a8473e6
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 14 19:50:28 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Feb 14 20:24:38 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=fbc54124

note host/target $ABI issues

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

---
 TODO |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/TODO b/TODO
index 5cfdc52..e850bc5 100644
--- a/TODO
+++ b/TODO
@@ -1,2 +1,13 @@
 - strip package.use.force (i.e. building x86_64 on x86_64 gets forced multilib)
 - filter /usr/CTARGET/ from revdep-rebuild #182601
+
+- HOST_ABI and TARGET_ABI selection; consider:
+	- build a 64bit (amd64) cross-compiler which targets 32bit (x86)
+	- build a 64bit (amd64) cross-compiler which targets x32
+	- ABI variables atm do not differentiate between host
+
+- package.use not getting setup correctly:
+# cat /etc/portage/package.use/cross-x86_64-cros-linux-gnu
+cross-x86_64-cros-linux-gnu/gdb sys-devel gdb
+cross-x86_64-cros-linux-gnu/insight dev-util insight
+cross-x86_64-cros-linux-gnu/binutils -selinux multilib



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-14 20:24 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-14 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     17661edff9a8933975ada3f4b1448d132aa0f050
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 14 20:22:02 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Feb 14 20:24:38 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=17661edf

crossdev: add a quoting note to --env flags in help output

URL: http://bugs.gentoo.org/402341
Reported-by: René Berber <r.berber <AT> computer.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index f51808f..c09a037 100755
--- a/crossdev
+++ b/crossdev
@@ -41,6 +41,7 @@ Options:
                                  e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
     ${GOOD}-A, --abis${NORMAL} abis          Specify ABIs to build, first one is the default
     ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gcc/gdb/kernel/libc
+                                Note: make sure to quote: 'VAR="some value"'
     ${GOOD}-f, --force${NORMAL}              I don't need a seat belt!
     ${GOOD}-S, --stable${NORMAL}             Use latest stable versions as default
     ${GOOD}-C, --clean${NORMAL} target       Uninstall specified target



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-14 20:24 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-14 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     8a80fc4b1a1c155d47864d3559bfd4bbd31c0561
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 14 19:49:37 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Feb 14 20:24:37 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=8a80fc4b

crossdev: add --show-fail-log option

This way people can run in non-verbose mode by default, but have the full
failing log automatically dumped when things go wrong.

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

---
 crossdev |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index a9447f5..f51808f 100755
--- a/crossdev
+++ b/crossdev
@@ -37,6 +37,8 @@ Options:
     ${GOOD}--g, --gcc${NORMAL} ver           Specify version of gcc to use
     ${GOOD}--k, --kernel${NORMAL} ver        Specify version of kernel headers to use
     ${GOOD}--l, --libc${NORMAL} ver          Specify version of libc to use
+                                Note: versions support depend atom syntaxes:
+                                 e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
     ${GOOD}-A, --abis${NORMAL} abis          Specify ABIs to build, first one is the default
     ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gcc/gdb/kernel/libc
     ${GOOD}-f, --force${NORMAL}              I don't need a seat belt!
@@ -44,7 +46,7 @@ Options:
     ${GOOD}-C, --clean${NORMAL} target       Uninstall specified target
     ${GOOD}-P, --portage${NORMAL} opts       Options to pass to emerge (see emerge(1))
     ${GOOD}--with[out]-headers${NORMAL}      Build C library headers before C compiler?
-Note: versions support depend atom syntaxes; e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
+    ${GOOD}--show-fail-log${NORMAL}          If the build fails, dump the failing log
 
 Overlay Options:
     ${GOOD}-oS, --overlays${NORMAL} list     Space delimited list of overlays to search
@@ -468,6 +470,7 @@ EX_GCC="no"
 EX_GDB="no"
 FORCE="no"
 SET_X="no"
+SHOW_FAIL_LOG="no"
 
 while [[ $# -gt 0 ]] ; do
 	case $1 in
@@ -502,6 +505,7 @@ while [[ $# -gt 0 ]] ; do
 	--without-*)       eval $(set_withval $1);;
 	-f|--force)        FORCE="yes";;
 	-x)                SET_X="yes";;
+	--show-fail-log)   SHOW_FAIL_LOG="yes";;
 	-P|--portage)      UOPTS="${UOPTS} $2"; shift;;
 	-b|-d|-p|-v|-q)    UOPTS="${UOPTS} $1";;
 	-pv|-vp)           UOPTS="${UOPTS} -p -v";;
@@ -868,6 +872,7 @@ doemerge() {
 	set_use $1 ${USE} $( [[ ${MULTILIB_USE} == "no" ]] && echo - )multilib
 
 	if has -v ${UOPTS} || has -p ${UOPTS} || has -vp ${UOPTS} || has -pv ${UOPTS} ; then
+		SHOW_FAIL_LOG="no"
 		emerge cross-${CTARGET}/$1 ${EOPTS} \
 			2>&1 | tee "${logfile}"
 	else
@@ -875,7 +880,10 @@ doemerge() {
 			>& "${logfile}"
 	fi
 	local _pipestatus=${PIPESTATUS[*]}
-	[[ "${_pipestatus// /}" -eq 0 ]] || die "$1 failed :("
+	if [[ "${_pipestatus// /}" -ne 0 ]] ; then
+		[[ ${SHOW_FAIL_LOG} == "yes" ]] && cat "${logfile}"
+		die "$1 failed :("
+	fi
 	eend 0
 }
 



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-14 20:24 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-14 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     dcc0180a31c46ea8a3cbe05e0bc5bd162e9ce015
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 13 03:54:30 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Jan 13 03:54:30 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=dcc0180a

crossdev: make sure to always process extra pkgs

For targets which do not go through all stages (like arm-non-eabi), we
end up always exiting early before we get a chance to process the extra
stuff (like gdb).  So allow the extra args to always be processed.

That's the only functional change here.  The rest is finally using proper
if statements and indenting relevant blocks of code.  It's grown too much
at this point to get away with the previous `foo && bar` logic.

Reported-by: David Hendricks <dhendrix <AT> google.com>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |   87 ++++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 57 insertions(+), 30 deletions(-)

diff --git a/crossdev b/crossdev
index 35e2a6b..ed625ec 100755
--- a/crossdev
+++ b/crossdev
@@ -905,40 +905,67 @@ USE="${USE} -selinux"
 # only allow UCLIBC_CPU from env, not from make.conf/profile
 export UCLIBC_CPU=${UCLIBC_CPU}
 
-ex_fast || {
+if ! ex_fast ; then
+
+	# stage 0: binutils
+	doemerge ${BPKG}
+
+	# stage1: bare C compiler
+	if is_s1 ; then
+
+		# first install headers if requested
+		if with_headers ; then
+			# install kernel headers (since the C library often uses them)
+			USE="${KUSE} ${USE}" \
+			CROSSCOMPILE_OPTS="headers-only" \
+				doemerge ${KPKG} ${KPKG}-quick
+
+			if [[ -n ${LPKG} ]] ; then
+				# install C library headers
+				USE="${LUSE} ${USE}" \
+				CROSSCOMPILE_OPTS="headers-only" \
+					doemerge ${LPKG} ${LPKG}-headers
+			fi
+		fi
 
-doemerge ${BPKG}
+		# then finally get around to the C compiler
+		USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_1}" \
+		CROSSCOMPILE_OPTS="bootstrap" \
+			doemerge ${GPKG} ${GPKG}-stage1
+	fi
 
-is_s1 || exit 0
-if with_headers ; then
-USE="${KUSE} ${USE}" CROSSCOMPILE_OPTS="headers-only" \
-	doemerge ${KPKG} ${KPKG}-quick
-[[ -n ${LPKG} ]] && \
-USE="${LUSE} ${USE}" CROSSCOMPILE_OPTS="headers-only" \
-	doemerge ${LPKG} ${LPKG}-headers
-fi
-USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_1}" CROSSCOMPILE_OPTS="bootstrap" \
-	doemerge ${GPKG} ${GPKG}-stage1
-
-is_s2 || exit 0
-set_eopts_on_pkg_status ${KPKG} crosscompile_opts_headers-only
-USE="${KUSE} ${USE}" CROSSCOMPILE_OPTS="" \
-	doemerge ${KPKG}
-
-is_s3 || exit 0
-[[ -z ${LPKG} ]] && die "Invalid target '${CTARGET}': unknown libc"
-set_eopts_on_pkg_status ${LPKG} crosscompile_opts_headers-only
-USE="${LUSE} ${USE}" CROSSCOMPILE_OPTS="" \
-	doemerge ${LPKG}
-
-is_s4 || exit 0
-set_eopts_on_pkg_status ${GPKG} crosscompile_opts_bootstrap
-EOPTS="${EOPTS_UP} --newuse"
-USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
-	doemerge ${GPKG} ${GPKG}-stage2
+	# stage2: kernel headers
+	if is_s2 ; then
+		set_eopts_on_pkg_status ${KPKG} crosscompile_opts_headers-only
 
-}
+		USE="${KUSE} ${USE}" \
+		CROSSCOMPILE_OPTS="" \
+			doemerge ${KPKG}
+	fi
+
+	# stage3: full C library (headers/libs/etc...)
+	if is_s3 ; then
+		[[ -z ${LPKG} ]] && die "Invalid target '${CTARGET}': unknown libc"
+
+		set_eopts_on_pkg_status ${LPKG} crosscompile_opts_headers-only
+
+		USE="${LUSE} ${USE}" \
+		CROSSCOMPILE_OPTS="" \
+			doemerge ${LPKG}
+	fi
+
+	# stage4: full compiler (C/C++/etc...)
+	if is_s4 ; then
+		set_eopts_on_pkg_status ${GPKG} crosscompile_opts_bootstrap
+
+		EOPTS="${EOPTS_UP} --newuse"
+		USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
+			doemerge ${GPKG} ${GPKG}-stage2
+	fi
+
+fi
 
+# all the extra things (like debuggers)
 EOPTS="${EOPTS_UP} --newuse"
 ex_gcc && USE="${GUSE} ${USE}" doemerge ${GPKG} ${GPKG}-extra
 ex_gdb && USE="${DUSE} ${USE}" doemerge ${DPKG}



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-14 20:24 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-14 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     6718fc4763bec5c385fa8c112b32fd4d94106c6b
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 14 19:47:23 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Feb 14 19:50:48 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=6718fc47

crossdev: use `has` for verbose/pretend flag detection

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

---
 crossdev |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index ed625ec..a9447f5 100755
--- a/crossdev
+++ b/crossdev
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 CROSSDEV_VER="@CDEVPV@"
@@ -867,7 +867,7 @@ doemerge() {
 
 	set_use $1 ${USE} $( [[ ${MULTILIB_USE} == "no" ]] && echo - )multilib
 
-	if [[ ${UOPTS/-v} != ${UOPTS} || ${UOPTS/-p} != ${UOPTS} ]] ; then
+	if has -v ${UOPTS} || has -p ${UOPTS} || has -vp ${UOPTS} || has -pv ${UOPTS} ; then
 		emerge cross-${CTARGET}/$1 ${EOPTS} \
 			2>&1 | tee "${logfile}"
 	else



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-14 20:24 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-14 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     60e1d4c0754aead7573f4093eb8b0fb0e235c229
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 11 05:40:03 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Jan 11 05:40:03 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=60e1d4c0

crossdev: update package.use.mask for multilib too

In no-multilib profiles, the multilib use flag is masked, so we need
to unmask it if the target toolchain wants it.

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

---
 crossdev |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 9a17aa1..35e2a6b 100755
--- a/crossdev
+++ b/crossdev
@@ -295,7 +295,7 @@ uninstall() {
 
 	[[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]] \
 		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
-	for f in categories package.{mask,keywords,use} profile/package.use.force ; do
+	for f in categories package.{mask,keywords,use} profile/package.use.{force,mask} ; do
 		f="${CONFIGROOT}/${f}"
 		if [[ -d ${f} ]] ; then
 			rm -f "${f}"/cross-${CTARGET}
@@ -707,6 +707,12 @@ set_use_force() {
 	output=$(_set_portage_file ${pkg} profile/package.use.force)
 	echo "cross-${CTARGET}/${pkg} ${use}" >> ${output}
 }
+set_use_mask() {
+	local pkg=$1 output use=${@:2}
+	[[ -z ${use} ]] && return 0
+	output=$(_set_portage_file ${pkg} profile/package.use.mask)
+	echo "cross-${CTARGET}/${pkg} ${use}" >> ${output}
+}
 set_links() {
 	local cat=$1 pkg=$2 ovl=$3
 	local s srcdir=${PORTDIR} d
@@ -758,6 +764,7 @@ set_portage() {
 	set_keywords ${pkg} ${ver}
 	set_use ${pkg} ${use}
 	set_use_force ${pkg} -multilib
+	set_use_mask ${pkg} -multilib
 	set_links ${cat} ${pkg} "${ovl}"
 	set_env ${pkg} "${env}"
 }
@@ -811,7 +818,7 @@ grep -qs "^cross-${CTARGET}$" "${CONFIGROOT}"/categories \
 	|| echo cross-${CTARGET} >> "${CONFIGROOT}"/categories
 mkdir -p "${CROSSDEV_OVERLAY}"/cross-${CTARGET} || exit 1
 cd "${CONFIGROOT}"
-for f in package.{keywords,mask,use} env/cross-${CTARGET} profile/package.use.force ; do
+for f in package.{keywords,mask,use} env/cross-${CTARGET} profile/package.use.{force,mask} ; do
 	[[ -f ${f} ]] && continue
 	mkdir -p ${f} || exit 1
 	rm -f ${f}/cross-${CTARGET}



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2012-02-14 20:24 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2012-02-14 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     1a3faec7a01f687e16d7332014d959a88264c2ff
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  6 21:25:58 2012 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Jan  6 21:25:58 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=1a3faec7

crossdev: merge categories cleansing to avoid missing warnings

If the categories file doesn't exist, then doing a cleaning spits out an
unsightly warning.  Merge with the existing code to avoid that.

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

---
 crossdev |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 9362ce2..9a17aa1 100755
--- a/crossdev
+++ b/crossdev
@@ -295,14 +295,13 @@ uninstall() {
 
 	[[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]] \
 		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
-	sed -i -e "/^cross-${CTARGET}$/d" "${CONFIGROOT}"/categories
-	for f in package.{mask,keywords,use} profile/package.use.force ; do
+	for f in categories package.{mask,keywords,use} profile/package.use.force ; do
 		f="${CONFIGROOT}/${f}"
 		if [[ -d ${f} ]] ; then
 			rm -f "${f}"/cross-${CTARGET}
 			rmdir "${f}" 2>/dev/null
 		elif [[ -f ${f} ]] ; then
-			sed -i -e "/cross-${CTARGET}\//d" "${f}"
+			sed -i -r -e "/^cross-${CTARGET}(\/|$)/d" "${f}"
 		fi
 	done
 	rm -rf "${CONFIGROOT}"/env/cross-${CTARGET}



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-12-21 21:06 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-12-21 21:06 UTC (permalink / raw
  To: gentoo-commits

commit:     58051e8e461fce09467ba1260fe7283a890e7b7c
Author:     Tim Harder <radhermit <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 21 20:29:11 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Dec 21 20:29:11 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=58051e8e

crossdev: allow people to specify options for the debugger

Make the debugger setup the same as all our other tools so that the
user can control it as well as the internal system (since not all
targets use gdb).  This makes the debugger "just another package".

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

---
 crossdev |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 721aa35..2fd4e7d 100755
--- a/crossdev
+++ b/crossdev
@@ -38,7 +38,7 @@ Options:
     ${GOOD}--k, --kernel${NORMAL} ver        Specify version of kernel headers to use
     ${GOOD}--l, --libc${NORMAL} ver          Specify version of libc to use
     ${GOOD}-A, --abis${NORMAL} abis          Specify ABIs to build, first one is the default
-    ${GOOD}--[bgkl]env${NORMAL} env          Specify env settings for binutils/gcc/kernel/libc
+    ${GOOD}--[bdgkl]env${NORMAL} env         Specify env settings for binutils/gcc/gdb/kernel/libc
     ${GOOD}-f, --force${NORMAL}              I don't need a seat belt!
     ${GOOD}-S, --stable${NORMAL}             Use latest stable versions as default
     ${GOOD}-C, --clean${NORMAL} target       Uninstall specified target
@@ -52,6 +52,7 @@ Overlay Options:
     ${GOOD}-oO, --ov-output${NORMAL} path    Overlay to write crossdev package links
                                 [default: last from --overlays list]
     ${GOOD}-ob, --ov-binutils${NORMAL} path  Overlay for binutils ebuilds [default: search]
+    ${GOOD}-od, --ov-gdb${NORMAL} path       Overlay for gdb ebuilds [default: search]
     ${GOOD}-og, --ov-gcc${NORMAL} path       Overlay for gcc ebuilds [default: search]
     ${GOOD}-ok, --ov-kernel${NORMAL} path    Overlay for kernel ebuilds [default: search]
     ${GOOD}-ol, --ov-libc${NORMAL} path      Overlay for C library ebuilds [default: search]
@@ -446,6 +447,7 @@ BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL=""
 GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL=""
 KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" KUSE="" KENV="" KOVL=""
 LCAT="sys-libs"   ; LPKG="[none]"        ; LVER="" LUSE="" LENV="" LOVL=""
+DCAT="sys-devel"  ; DPKG="gdb"           ; DVER="" DUSE="" DENV="" DOVL=""
 DEFAULT_VER="[latest]"
 SEARCH_OVERLAYS=""
 CROSSDEV_OVERLAY=""
@@ -469,6 +471,9 @@ while [[ $# -gt 0 ]] ; do
 	--b|--binutils)    shift; BVER=$1;;
 	--benv)            shift; BENV=$1;;
 	-ob|--ov-binutils) shift; BOVL=$1;;
+	--d|--gdb)         shift; DVER=$1;;
+	--denv)            shift; DENV=$1;;
+	-od|--ov-gdb)      shift; DOVL=$1;;
 	--g|--gcc)         shift; GVER=$1;;
 	--genv)            shift; GENV=$1;;
 	-og|--ov-gcc)      shift; GOVL=$1;;
@@ -811,7 +816,7 @@ set_portage ${BCAT} ${BPKG} ${BVER} "${BENV}" "${BOVL}"
 set_portage ${GCAT} ${GPKG} ${GVER} "${GENV}" "${GOVL}"
 set_portage ${KCAT} ${KPKG} ${KVER} "${KENV}" "${KOVL}"
 set_portage ${LCAT} ${LPKG} ${LVER} "${LENV}" "${LOVL}"
-set_portage sys-devel gdb
+set_portage ${DCAT} ${DPKG} ${DVER} "${DENV}" "${DOVL}"
 set_portage dev-util insight
 set_metadata
 
@@ -924,7 +929,7 @@ USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
 
 EOPTS="${EOPTS_UP} --newuse"
 ex_gcc && USE="${GUSE} ${USE}" doemerge ${GPKG} ${GPKG}-extra
-ex_gdb && doemerge gdb
+ex_gdb && USE="${DUSE} ${USE}" doemerge ${DPKG}
 ex_insight && doemerge insight
 
 exit 0



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-12-21 21:06 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-12-21 21:06 UTC (permalink / raw
  To: gentoo-commits

commit:     66ffc1d1c005e4711190c1d5fbdf5de1c1514ece
Author:     Tim Harder <radhermit <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 21 20:32:22 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Dec 21 21:02:10 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=66ffc1d1

crossdev: add msp430 specific packages

The msp430 target has a lot of out of tree patches so none of the GNU
mainline packages work with it.  Switch to the custom ebuilds.

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

---
 crossdev |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 2fd4e7d..9362ce2 100755
--- a/crossdev
+++ b/crossdev
@@ -191,7 +191,13 @@ parse_target() {
 		      LCAT="dev-util"; LPKG="mingw-runtime";;
 
 		msp430)
-		      STAGE_DEFAULT=${STAGE_BINUTILS};;
+		      KCAT="dev-embedded"; KPKG="msp430mcu";
+		      BCAT="dev-embedded"; BPKG="msp430-binutils";
+		      GCAT="dev-embedded"; GPKG="msp430-gcc";
+		      LCAT="dev-embedded"; LPKG="msp430-libc";
+		      DCAT="dev-embedded"; DPKG="msp430-gdb";
+		      GUSE="-fortran -openmp";
+		      WITH_DEF_HEADERS="no";;
 
 		nios2*)
 		      BPKG="binutils-nios2";



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-12-13 19:06 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-12-13 19:06 UTC (permalink / raw
  To: gentoo-commits

commit:     223ff5e477c2ac9aace1edd603f35d34d57e2348
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 13 19:05:48 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Dec 13 19:05:48 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=223ff5e4

crossdev: setup DEFAULT_ABI after we are done reading multilib.eclass

Reported-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 2edb91b..721aa35 100755
--- a/crossdev
+++ b/crossdev
@@ -542,7 +542,6 @@ for v in MULTILIB_ABIS UCLIBC_CPU USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS A
 done
 
 # parse multilib settings until profiles are sane
-DEFAULT_ABI=${MULTILIB_ABIS%% *}
 eval $(
 	# clean the env
 	unset ${!CFLAGS_*} ${!CHOST_*} ${!CTARGET_*} ${!LDFLAGS_*} ${!LIBDIR_*}
@@ -584,6 +583,7 @@ eval $(
 		done
 	done
 )
+DEFAULT_ABI=${MULTILIB_ABIS%% *}
 if [[ -z ${MULTILIB_USE} ]] ; then
 	if [[ $(set -- ${MULTILIB_ABIS}; echo $#) -eq 1 ]] ; then
 		MULTILIB_USE="no"



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-12-06 21:50 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-12-06 21:50 UTC (permalink / raw
  To: gentoo-commits

commit:     bb1810debd8378b1a7b89bda130d3357750777a7
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  6 21:42:12 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Dec  6 21:49:58 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=bb1810de

crossdev: make sure our logs are verbose

Newer portages might default to --quiet-build=y, so we need to force it
to be verbose for our own personal logs.

Reported-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 685ad4a..2edb91b 100755
--- a/crossdev
+++ b/crossdev
@@ -877,7 +877,7 @@ EOPTS_DEF="${UOPTS}"
 EOPTS_UP="${EOPTS_DEF} -u"
 EOPTS=${EOPTS_UP}
 # keep things like --ask from screwing us up
-export EMERGE_DEFAULT_OPTS=""
+export EMERGE_DEFAULT_OPTS="--quiet-build=n"
 
 # screw random strictness in cross-compilers
 export FEATURES="${FEATURES} -stricter"



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-11-18 20:44 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-11-18 20:44 UTC (permalink / raw
  To: gentoo-commits

commit:     77232e519f076f7e04d7d6323a564249a020bb2d
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 18 15:59:28 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Nov 18 19:25:21 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=77232e51

crossdev: migrate USE=nocxx to USE=-cxx

The toolchain.eclass has migrated to USE=cxx, so update crossdev as well.
We need to carry both until toolchain.eclass drops USE=nocxx completely.

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

---
 crossdev |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/crossdev b/crossdev
index 6580dc8..685ad4a 100755
--- a/crossdev
+++ b/crossdev
@@ -177,7 +177,7 @@ parse_target() {
 
 		# due to upstream lameness, build C/C++ at first glance
 		*-cygwin)
-		      GUSE_DISABLE_STAGE_1=${GUSE_DISABLE_STAGE_1/nocxx};;
+		      GUSE_DISABLE_STAGE_1+=" -nocxx cxx";;
 
 		# these are the mingw64 targets that binutils seems to use
 		x86_64-*-mingw*|*-w64-mingw*)
@@ -453,7 +453,7 @@ CROSSDEV_OVERLAY=""
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gtk -gcj -libffi -mudflap -objc -objc++ -objc-gc"
 # These are disabled only for stage1 gcc
-GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran nocxx -openmp"
+GUSE_DISABLE_STAGE_1="${GUSE_DISABLE} -fortran nocxx -cxx -openmp"
 GUSE_DISABLE_STAGE_2="${GUSE_DISABLE}"
 WITH_HEADERS="COW"   WITH_DEF_HEADERS="yes" #227065 gcc-4.3+ is a pita w/out headers
 EX_FAST="no"



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-10-31  3:30 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-10-31  3:30 UTC (permalink / raw
  To: gentoo-commits

commit:     c149fbeb8f8fb081f0c426910bc814d2219be5d7
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 31 03:29:15 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Oct 31 03:29:15 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=c149fbeb

crossdev: drop obsolete host checks

We've long progressed past needing to check for binutils-config and gcc
ebuilds that inherit the toolchain eclass.  So drop them.

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

---
 crossdev |   16 ----------------
 1 files changed, 0 insertions(+), 16 deletions(-)

diff --git a/crossdev b/crossdev
index 48c6f96..6580dc8 100755
--- a/crossdev
+++ b/crossdev
@@ -514,22 +514,6 @@ for with in HEADERS ; do
 	[[ ${!var} == "COW" ]] && eval ${var}=${!defvar}
 done
 
-#####################
-### sanity checks ###
-if ! binutils-config --version &> /dev/null ; then
-	eerror "Sorry, but your host system needs to have binutils-config"
-	eerror "in order to keep from screwing things up."
-	eerror "That means you must be running unstable versions of"
-	eerror "both binutils and binutils-config."
-	exit 1
-fi
-if ! egrep -qs 'inherit.*toolchain( |$)' /var/db/pkg/sys-devel/gcc-*/*.ebuild ; then
-	eerror "Sorry, but your host system needs to have"
-	eerror "an unstable version of gcc in order to"
-	eerror "keep from screwing things up."
-	exit 1
-fi
-
 setup_portage_vars
 if [[ -z ${CROSSDEV_OVERLAY} ]] ; then
 	eerror "You need to specify an output overlay.  Please use --ov-output or set"



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-10-18 17:36 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-10-18 17:36 UTC (permalink / raw
  To: gentoo-commits

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



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-10-11 22:22 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-10-11 22:22 UTC (permalink / raw
  To: gentoo-commits

commit:     48942e883df62a0527d7bf5f64ebaaaf0b5de568
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 11 21:48:37 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Oct 11 22:02:25 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=48942e88

crossdev: only setup multilib env if requested

We don't want to force systems to always use "/lib/" if they're using a
single ABI.  The current code would always forced x86_64 targets in the
case of MULTILIB_ABIS=amd64 to only install into /lib/.  Undo this logic
so that multilib.eclass can kick in and give us the right paths for the
native (single) ABI that is selected.

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

---
 crossdev |   35 +++++++++++++++++++----------------
 1 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/crossdev b/crossdev
index b470cd9..767c580 100755
--- a/crossdev
+++ b/crossdev
@@ -439,7 +439,7 @@ UOPTS=
 TARCH=
 HARCH=
 CTARGET=
-MULTILIB_ABIS="default"
+MULTILIB_ABIS=""
 STAGE=""
 BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL=""
 GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL=""
@@ -555,8 +555,6 @@ for v in MULTILIB_ABIS UCLIBC_CPU USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS A
 		source "${d}"/env
 	fi
 done
-ABI=$(set -- ${MULTILIB_ABIS:-default}; echo $1)
-DEFAULT_ABI=${ABI}
 
 #####################
 ### do the emerge ###
@@ -567,7 +565,7 @@ einfo "Host Portage ARCH:     ${HARCH}"
 einfo "Target Portage ARCH:   ${TARCH}"
 einfo "Target System:         ${CTARGET}"
 einfo "Stage:                 ${STAGE} (${STAGE_DISP[${STAGE}]})"
-einfo "ABIs:                  ${MULTILIB_ABIS}"
+einfo "ABIs:                  ${MULTILIB_ABIS:-<just one: the default>}"
 echo
 ex_fast || {
 is_s0 && {
@@ -688,21 +686,26 @@ set_links() {
 	ln -s "${srcdir}"/${cat}/${pkg} "${d}"
 }
 set_env() {
-	local pkg=$1 env=$2
+	local pkg=$1 env=$2 output
 	shift ; shift
 
-	cat <<-EOF > env/cross-${CTARGET}/${pkg}
-	# handle multilib ourselves
-	ABI=${ABI}
-	MULTILIB_ABIS="${MULTILIB_ABIS}"
-	DEFAULT_ABI=${DEFAULT_ABI}
-	LIBDIR_default="lib"
-	CFLAGS_default=
-	CPPFLAGS_default=
-	CXXFLAGS_default=
-	LDFLAGS_default=
+	output="env/cross-${CTARGET}/${pkg}"
+	cat <<-EOF > "${output}"
+	SYMLINK_LIB=no
 	$(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
 }
 set_portage() {
 	local cat=$1 pkg=$2 ver=$3 env=$4 ovl=$5
@@ -814,7 +817,7 @@ doemerge() {
 	einfo "Log: ${logfile}"
 	ebegin "Emerging cross-${2:-$1}"
 
-	set_use $1 ${USE} $( [[ ${MULTILIB_ABIS} == "default" ]] && echo - )multilib
+	set_use $1 ${USE} $( [[ -z ${MULTILIB_ABIS} ]] && echo - )multilib
 
 	if [[ ${UOPTS/-v} != ${UOPTS} || ${UOPTS/-p} != ${UOPTS} ]] ; then
 		emerge cross-${CTARGET}/$1 ${EOPTS} \



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-08-25 15:50 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-08-25 15:50 UTC (permalink / raw
  To: gentoo-commits

commit:     72b8767e712ba8615331a035c8bcecaf5492347e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 25 15:48:16 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Aug 25 15:50:43 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=72b8767e

crossdev: auto-create metadata/layout.conf

For people who are pulling packages from multiple overlays which
may contain their own eclass dirs, auto create a layout.conf so
that portage will search those automatically.

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

---
 crossdev |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index 5f60905..b470cd9 100755
--- a/crossdev
+++ b/crossdev
@@ -24,6 +24,7 @@ die() {
 	eerror ${logfile}
 	exit 1
 }
+has() { [[ " ${@:2} " == *" $1 "* ]]; }
 
 usage() {
 	local exit_status=${1:-0}
@@ -716,6 +717,49 @@ set_portage() {
 	set_links ${cat} ${pkg} "${ovl}"
 	set_env ${pkg} "${env}"
 }
+set_metadata() {
+	# for people who have eclasses spread over their overlays, generate
+	# a layout.conf file so portage can find them.  this is a crapshoot
+	# when diff overlay sources have conflicting eclasses, but nothing
+	# we really can do about that.
+	local autogen_tag="# Autogenerated and managed by crossdev"
+	local meta=${CROSSDEV_OVERLAY}/metadata
+	local layout=${meta}/layout.conf
+	local d name masters
+
+	mkdir -p "${meta}"
+	if [[ -e ${layout} ]] ; then
+		if ! grep -qs "^${autogen_tag}" "${layout}" ; then
+			einfo "leaving metadata/layout.conf alone in ${CROSSDEV_OVERLAY}"
+			return
+		fi
+
+		# We are managing it, so blow it away
+		rm -f "${layout}"
+	fi
+
+	# build up a list of possible repos where we can pull from
+	for d in "${BOVL}" "${GOVL}" "${KOVL}" "${LOVL}" ${SEARCH_OVERLAYS} "${PORTDIR}" ; do
+		[[ -z ${d} ]] && continue
+
+		name=
+		if [[ -e ${d}/profiles/repo_name ]] ; then
+			name=$(<"${d}"/profiles/repo_name)
+		fi
+		[[ -z ${name} ]] && continue
+
+		if [[ -d ${d}/eclass ]] ; then
+			has ${name} ${masters} || masters+=" ${name}"
+		fi
+	done
+
+	# write out that layout.conf!
+	cat <<-EOF > "${layout}"
+	${autogen_tag}
+	# Delete the above line if you want to manage this file yourself
+	masters =${masters}
+	EOF
+}
 
 mkdir -p "${CONFIGROOT}"
 check_trailing_newline "${CONFIGROOT}"/categories
@@ -735,6 +779,7 @@ set_portage ${KCAT} ${KPKG} ${KVER} "${KENV}" "${KOVL}"
 set_portage ${LCAT} ${LPKG} ${LVER} "${LENV}" "${LOVL}"
 set_portage sys-devel gdb
 set_portage dev-util insight
+set_metadata
 
 # filter out revdep rebuild stuff #182601
 mkdir -p /etc/revdep-rebuild



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-08-19 18:05 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-08-19 18:05 UTC (permalink / raw
  To: gentoo-commits

commit:     39d187fbe4cef0a7f7720a003eb0578e7ff4f4cb
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 19 18:01:54 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Aug 19 18:01:54 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=39d187fb

crossdev: add overlay options for people to control sources

The current auto-search aspect of crossdev can be confusing to people, and
creating the overlay by hand is a pain for others, so add some command line
options for people to explicitly control the overlays that crossdev uses.

Now you can tell crossdev where to search in general, where to find exact
packages, and where to write its result -- all from the command line.

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

---
 crossdev |  205 ++++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 121 insertions(+), 84 deletions(-)

diff --git a/crossdev b/crossdev
index f9d9517..5f60905 100755
--- a/crossdev
+++ b/crossdev
@@ -32,33 +32,43 @@ cat << EOF
 Usage: ${HILITE}crossdev${NORMAL} ${GOOD}[options]${NORMAL} ${BRACKET}--target TARGET${NORMAL}
 
 Options:
-    ${GOOD}--b, --binutils${NORMAL} ver   Specify version of binutils to use
-    ${GOOD}--g, --gcc${NORMAL} ver        Specify version of gcc to use
-    ${GOOD}--k, --kernel${NORMAL} ver     Specify version of kernel headers to use
-    ${GOOD}--l, --libc${NORMAL} ver       Specify version of libc to use
-    ${GOOD}-A, --abis${NORMAL} abis       Specify ABIs to build, first one is the default
-    ${GOOD}--[bgkl]env${NORMAL} env       Specify env settings for binutils/gcc/kernel/libc
-    ${GOOD}-f, --force${NORMAL}           I don't need a seat belt!
-    ${GOOD}-S, --stable${NORMAL}          Use latest stable versions as default
-    ${GOOD}-C, --clean${NORMAL} target    Uninstall specified target
-    ${GOOD}-P, --portage${NORMAL} opts    Options to pass to emerge (see emerge(1))
-    ${GOOD}--with[out]-headers${NORMAL}   Build C library headers before C compiler?
+    ${GOOD}--b, --binutils${NORMAL} ver      Specify version of binutils to use
+    ${GOOD}--g, --gcc${NORMAL} ver           Specify version of gcc to use
+    ${GOOD}--k, --kernel${NORMAL} ver        Specify version of kernel headers to use
+    ${GOOD}--l, --libc${NORMAL} ver          Specify version of libc to use
+    ${GOOD}-A, --abis${NORMAL} abis          Specify ABIs to build, first one is the default
+    ${GOOD}--[bgkl]env${NORMAL} env          Specify env settings for binutils/gcc/kernel/libc
+    ${GOOD}-f, --force${NORMAL}              I don't need a seat belt!
+    ${GOOD}-S, --stable${NORMAL}             Use latest stable versions as default
+    ${GOOD}-C, --clean${NORMAL} target       Uninstall specified target
+    ${GOOD}-P, --portage${NORMAL} opts       Options to pass to emerge (see emerge(1))
+    ${GOOD}--with[out]-headers${NORMAL}      Build C library headers before C compiler?
 Note: versions support depend atom syntaxes; e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
 
+Overlay Options:
+    ${GOOD}-oS, --overlays${NORMAL} list     Space delimited list of overlays to search
+                                [default: \${PORTDIR_OVERLAY}]
+    ${GOOD}-oO, --ov-output${NORMAL} path    Overlay to write crossdev package links
+                                [default: last from --overlays list]
+    ${GOOD}-ob, --ov-binutils${NORMAL} path  Overlay for binutils ebuilds [default: search]
+    ${GOOD}-og, --ov-gcc${NORMAL} path       Overlay for gcc ebuilds [default: search]
+    ${GOOD}-ok, --ov-kernel${NORMAL} path    Overlay for kernel ebuilds [default: search]
+    ${GOOD}-ol, --ov-libc${NORMAL} path      Overlay for C library ebuilds [default: search]
+
 Stage Options:
-    ${GOOD}-s0, --stage0${NORMAL}         Build just binutils
-    ${GOOD}-s1, --stage1${NORMAL}         Also build a bare C compiler (no C library/
-                             C++/shared GCC libs/C++ exceptions/etc...)
-    ${GOOD}-s2, --stage2${NORMAL}         Also build kernel headers
-    ${GOOD}-s3, --stage3${NORMAL}         Also build the C library
-    ${GOOD}-s4, --stage4${NORMAL}         Also build a full compiler [default]
-                             (shared libs GCC/various lang frontends/etc...)
+    ${GOOD}-s0, --stage0${NORMAL}            Build just binutils
+    ${GOOD}-s1, --stage1${NORMAL}            Also build a bare C compiler (no C library/
+                                C++/shared GCC libs/C++ exceptions/etc...)
+    ${GOOD}-s2, --stage2${NORMAL}            Also build kernel headers
+    ${GOOD}-s3, --stage3${NORMAL}            Also build the C library
+    ${GOOD}-s4, --stage4${NORMAL}            Also build a full compiler [default]
+                                (shared libs GCC/various lang frontends/etc...)
 
 Extra Fun (must be run after above stages):
-    ${GOOD}--ex-only${NORMAL}             Skip the stage steps above
-    ${GOOD}--ex-gcc${NORMAL}              Build extra gcc targets (gcj/ada/etc...)
-    ${GOOD}--ex-gdb${NORMAL}              Build a cross gdb
-    ${GOOD}--ex-insight${NORMAL}          Build a cross insight
+    ${GOOD}--ex-only${NORMAL}                Skip the stage steps above
+    ${GOOD}--ex-gcc${NORMAL}                 Build extra gcc targets (gcj/ada/etc...)
+    ${GOOD}--ex-gdb${NORMAL}                 Build a cross gdb
+    ${GOOD}--ex-insight${NORMAL}             Build a cross insight
 
 ${BRACKET}Target (-t)${NORMAL} takes a tuple ${BRACKET}ARCH-VENDOR-OS-LIBC${NORMAL}; see 'crossdev -t help'
 EOF
@@ -256,9 +266,14 @@ setup_portage_vars() {
 	HCHOST=${CHOST}
 	[[ ${chost_set} == "set" ]] && CHOST=${chost} || unset CHOST
 
+	# see if user gave us an overlay search list, otherwise
+	# default to whatever is configured in portage
+	: ${SEARCH_OVERLAYS:=${PORTDIR_OVERLAY}}
+
+	# see if user told us where to write things, otherwise
 	# install our stuff to the last overlay in the list
-	PORTDIR_OVERLAYS=${PORTDIR_OVERLAY}
-	PORTDIR_OVERLAY=${PORTDIR_OVERLAYS%% *}
+	: ${CROSSDEV_OVERLAY:=${SEARCH_OVERLAYS}}
+	CROSSDEV_OVERLAY=${CROSSDEV_OVERLAY%% *}
 
 	# make sure we have a valid logdir
 	: ${PORT_LOGDIR:=/var/log/portage}
@@ -270,8 +285,8 @@ uninstall() {
 
 	ewarn "Uninstalling target '${CTARGET}' ..."
 
-	[[ -d ${PORTDIR_OVERLAY}/cross-${CTARGET} ]] \
-		&& rm -r ${PORTDIR_OVERLAY}/cross-${CTARGET}
+	[[ -d ${CROSSDEV_OVERLAY}/cross-${CTARGET} ]] \
+		&& rm -r ${CROSSDEV_OVERLAY}/cross-${CTARGET}
 	sed -i -e "/^cross-${CTARGET}$/d" "${CONFIGROOT}"/categories
 	for f in package.{mask,keywords,use} profile/package.use.force ; do
 		f="${CONFIGROOT}/${f}"
@@ -425,11 +440,13 @@ HARCH=
 CTARGET=
 MULTILIB_ABIS="default"
 STAGE=""
-BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" ; BUSE="" ; BENV=""
-GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" ; GUSE="" ; GENV=""
-KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" ; KUSE="" ; KENV=""
-LCAT="sys-libs"   ; LPKG="[none]"        ; LVER="" ; LUSE="" ; LENV=""
+BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" BUSE="" BENV="" BOVL=""
+GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" GUSE="" GENV="" GOVL=""
+KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" KUSE="" KENV="" KOVL=""
+LCAT="sys-libs"   ; LPKG="[none]"        ; LVER="" LUSE="" LENV="" LOVL=""
 DEFAULT_VER="[latest]"
+SEARCH_OVERLAYS=""
+CROSSDEV_OVERLAY=""
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them
 GUSE_DISABLE="-boundschecking -d -gtk -gcj -libffi -mudflap -objc -objc++ -objc-gc"
@@ -445,34 +462,40 @@ SET_X="no"
 
 while [[ $# -gt 0 ]] ; do
 	case $1 in
-	-V|--version)   echo "crossdev-${CROSSDEV_VER}"; exit 0;;
-	-t|--target)    shift; parse_target $1;;
-	--b|--binutils) shift; BVER=$1;;
-	--benv)         shift; BENV=$1;;
-	--g|--gcc)      shift; GVER=$1;;
-	--genv)         shift; GENV=$1;;
-	--k|--kernel)   shift; KVER=$1;;
-	--kenv)         shift; KENV=$1;;
-	--l|--libc)     shift; LVER=$1;;
-	--lenv)         shift; LENV=$1;;
-	-A|--abis)      shift; MULTILIB_ABIS=$1;;
-	-S|--stable)    DEFAULT_VER="[stable]";;
-	-C|--clean)     shift; parse_target $1; uninstall;;
-	-s?|--stage?)   STAGE=${1:0-1};;
-	--ex-only)      EX_FAST="yes";;
-	--ex-gcc)       EX_GCC="yes";;
-	--ex-gdb)       EX_GDB="yes";;
-	--ex-insight)   EX_INSIGHT="yes";;
-	--with-*)       eval $(set_withval $1);;
-	--without-*)    eval $(set_withval $1);;
-	-f|--force)     FORCE="yes";;
-	-x)             SET_X="yes";;
-	-P|--portage)   UOPTS="${UOPTS} $2"; shift;;
-	-b|-d|-p|-v|-q) UOPTS="${UOPTS} $1";;
-	-pv|-vp)        UOPTS="${UOPTS} -p -v";;
-	-h|--help)      usage;;
-	-*)             eerror "UNKNOWN OPTION: '$1'" ; usage 1;;
-	*)              parse_target $1;;
+	-V|--version)      echo "crossdev-${CROSSDEV_VER}"; exit 0;;
+	-t|--target)       shift; parse_target $1;;
+	--b|--binutils)    shift; BVER=$1;;
+	--benv)            shift; BENV=$1;;
+	-ob|--ov-binutils) shift; BOVL=$1;;
+	--g|--gcc)         shift; GVER=$1;;
+	--genv)            shift; GENV=$1;;
+	-og|--ov-gcc)      shift; GOVL=$1;;
+	--k|--kernel)      shift; KVER=$1;;
+	--kenv)            shift; KENV=$1;;
+	-ok|--ov-kernel)   shift; KOVL=$1;;
+	--l|--libc)        shift; LVER=$1;;
+	--lenv)            shift; LENV=$1;;
+	-ol|--ov-libc)     shift; LOVL=$1;;
+	-A|--abis)         shift; MULTILIB_ABIS=$1;;
+	-S|--stable)       DEFAULT_VER="[stable]";;
+	-C|--clean)        shift; parse_target $1; uninstall;;
+	-s?|--stage?)      STAGE=${1:0-1};;
+	-oS|--overlays)    shift; SEARCH_OVERLAYS=$1;;
+	-oO|--ov-output)   shift; CROSSDEV_OVERLAY=$1;;
+	--ex-only)         EX_FAST="yes";;
+	--ex-gcc)          EX_GCC="yes";;
+	--ex-gdb)          EX_GDB="yes";;
+	--ex-insight)      EX_INSIGHT="yes";;
+	--with-*)          eval $(set_withval $1);;
+	--without-*)       eval $(set_withval $1);;
+	-f|--force)        FORCE="yes";;
+	-x)                SET_X="yes";;
+	-P|--portage)      UOPTS="${UOPTS} $2"; shift;;
+	-b|-d|-p|-v|-q)    UOPTS="${UOPTS} $1";;
+	-pv|-vp)           UOPTS="${UOPTS} -p -v";;
+	-h|--help)         usage;;
+	-*)                eerror "UNKNOWN OPTION: '$1'" ; usage 1;;
+	*)                 parse_target $1;;
 	esac
 	shift
 done
@@ -506,9 +529,9 @@ if ! egrep -qs 'inherit.*toolchain( |$)' /var/db/pkg/sys-devel/gcc-*/*.ebuild ;
 fi
 
 setup_portage_vars
-if [[ -z ${PORTDIR_OVERLAY} ]] ; then
-	eerror "You need to set PORTDIR_OVERLAY in your make.conf."
-	eerror "A standard setting is /usr/local/portage"
+if [[ -z ${CROSSDEV_OVERLAY} ]] ; then
+	eerror "You need to specify an output overlay.  Please use --ov-output or set"
+	eerror "PORTDIR_OVERLAY in your make.conf.  A standard setting is: /usr/local/portage"
 	exit 1
 fi
 
@@ -570,7 +593,7 @@ ex_insight && {
 einfo "Extra: insight:        DO IT"
 }
 echo
-einfo "PORTDIR_OVERLAY:       ${PORTDIR_OVERLAY}"
+einfo "CROSSDEV_OVERLAY:      ${CROSSDEV_OVERLAY}"
 einfo "PORT_LOGDIR:           ${PORT_LOGDIR}"
 einfo "PORTAGE_CONFIGROOT:    ${PORTAGE_CONFIGROOT}"
 hr
@@ -639,23 +662,29 @@ set_use_force() {
 	echo "cross-${CTARGET}/${pkg} ${use}" >> ${output}
 }
 set_links() {
-	local cat=$1 pkg=$2
+	local cat=$1 pkg=$2 ovl=$3
 	local s srcdir=${PORTDIR} d
 
-	d="${PORTDIR_OVERLAY}"/cross-${CTARGET}/${pkg}
-	if [[ -e ${d} ]] ; then #211386 #347389
-		einfo "Leaving existing path alone: ${d}"
-	else
-		rm -f "${d}"
-		for s in ${PORTDIR_OVERLAYS} ; do
-			if [[ -d ${s}/${cat}/${pkg} ]] ; then
-				einfo "Using ${cat}/${pkg} from ${s} instead of ${PORTDIR}"
-				srcdir=${s}
-				break
-			fi
-		done
-		ln -s "${srcdir}"/${cat}/${pkg} "${d}"
+	d="${CROSSDEV_OVERLAY}"/cross-${CTARGET}/${pkg}
+	# if auto searching and something is already set, leave it be
+	if [[ -z ${ovl} ]] && [[ -e ${d} ]] ; then #211386 #347389
+		einfo "leaving ${cat}/${pkg} in ${CROSSDEV_OVERLAY}"
+		return
+	fi
+
+	rm -f "${d}"
+	if [[ -e ${d} ]] ; then
+		eerror "${d} still exists and isn't a symlink !?"
+		exit 1
 	fi
+	for s in ${ovl} ${SEARCH_OVERLAYS} ; do
+		if [[ -d ${s}/${cat}/${pkg} ]] ; then
+			srcdir=${s}
+			einfo "getting ${cat}/${pkg} from ${srcdir}"
+			break
+		fi
+	done
+	ln -s "${srcdir}"/${cat}/${pkg} "${d}"
 }
 set_env() {
 	local pkg=$1 env=$2
@@ -675,8 +704,8 @@ set_env() {
 	EOF
 }
 set_portage() {
-	local cat=$1 pkg=$2 ver=$3 env=$4
-	shift ; shift ; shift
+	local cat=$1 pkg=$2 ver=$3 env=$4 ovl=$5
+	shift 5
 	local use=$@
 
 	[[ ${pkg} == "[none]" ]] && return 0
@@ -684,7 +713,7 @@ set_portage() {
 	set_keywords ${pkg} ${ver}
 	set_use ${pkg} ${use}
 	set_use_force ${pkg} -multilib
-	set_links ${cat} ${pkg}
+	set_links ${cat} ${pkg} "${ovl}"
 	set_env ${pkg} "${env}"
 }
 
@@ -692,7 +721,7 @@ mkdir -p "${CONFIGROOT}"
 check_trailing_newline "${CONFIGROOT}"/categories
 grep -qs "^cross-${CTARGET}$" "${CONFIGROOT}"/categories \
 	|| echo cross-${CTARGET} >> "${CONFIGROOT}"/categories
-mkdir -p "${PORTDIR_OVERLAY}"/cross-${CTARGET} || exit 1
+mkdir -p "${CROSSDEV_OVERLAY}"/cross-${CTARGET} || exit 1
 cd "${CONFIGROOT}"
 for f in package.{keywords,mask,use} env/cross-${CTARGET} profile/package.use.force ; do
 	[[ -f ${f} ]] && continue
@@ -700,10 +729,10 @@ for f in package.{keywords,mask,use} env/cross-${CTARGET} profile/package.use.fo
 	rm -f ${f}/cross-${CTARGET}
 done
 
-set_portage ${BCAT} ${BPKG} ${BVER} "${BENV}"
-set_portage ${GCAT} ${GPKG} ${GVER} "${GENV}"
-set_portage ${KCAT} ${KPKG} ${KVER} "${KENV}"
-set_portage ${LCAT} ${LPKG} ${LVER} "${LENV}"
+set_portage ${BCAT} ${BPKG} ${BVER} "${BENV}" "${BOVL}"
+set_portage ${GCAT} ${GPKG} ${GVER} "${GENV}" "${GOVL}"
+set_portage ${KCAT} ${KPKG} ${KVER} "${KENV}" "${KOVL}"
+set_portage ${LCAT} ${LPKG} ${LVER} "${LENV}" "${LOVL}"
 set_portage sys-devel gdb
 set_portage dev-util insight
 
@@ -711,6 +740,8 @@ set_portage dev-util insight
 mkdir -p /etc/revdep-rebuild
 echo "SEARCH_DIRS_MASK=/usr/${CTARGET}" > /etc/revdep-rebuild/05cross-${CTARGET}
 
+hr
+
 #######################################
 ### Create links for helper scripts ###
 
@@ -752,6 +783,12 @@ doemerge() {
 	eend 0
 }
 
+# Make this "just work" rather than worrying about user not putting
+# this overlay path into their system settings already.
+if [[ -n ${CROSSDEV_OVERLAY} ]] ; then
+	export PORTDIR_OVERLAY="${CROSSDEV_OVERLAY} ${PORTDIR_OVERLAY}"
+fi
+
 # We include the '-u' so that we don't re-emerge packages.  Avoid
 # using --nodeps as packages have more host depends nowadays (like
 # gcc wanting updated mpfr/gmp).  Don't use --oneshot anymore to



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-08-19 18:05 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-08-19 18:05 UTC (permalink / raw
  To: gentoo-commits

commit:     6be75a759d59f8ff8dd1c935bfa74a7f97c91509
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 19 17:53:42 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Aug 19 17:53:42 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=6be75a75

crossdev: tweak the initial output to work with openrc behavior

The newer einfo helpers automatically detect that we're not writing to
a tty and automatically turn off colors, so make the output twice: once
to stdout (and with colors) and once to the log.  Not a big deal since
these are quick `echo` type output only.

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

---
 crossdev |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index e4d4dbe..f9d9517 100755
--- a/crossdev
+++ b/crossdev
@@ -536,7 +536,7 @@ DEFAULT_ABI=${ABI}
 
 #####################
 ### do the emerge ###
-(
+info() {
 hr -
 einfo "crossdev version:      ${CROSSDEV_VER}"
 einfo "Host Portage ARCH:     ${HARCH}"
@@ -574,9 +574,13 @@ einfo "PORTDIR_OVERLAY:       ${PORTDIR_OVERLAY}"
 einfo "PORT_LOGDIR:           ${PORT_LOGDIR}"
 einfo "PORTAGE_CONFIGROOT:    ${PORTAGE_CONFIGROOT}"
 hr
+}
+# avoid pipe since `einfo` will not use color :(
+info
+(
+info
+emerge -v --info
 ) >& "${PORT_LOGDIR}"/cross-${CTARGET}-info.log || exit 1
-cat "${PORT_LOGDIR}"/cross-${CTARGET}-info.log
-emerge -v --info >> "${PORT_LOGDIR}"/cross-${CTARGET}-info.log
 
 ####################################
 ### Fix up portage files / paths ###



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-08-18 20:06 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-08-18 20:06 UTC (permalink / raw
  To: gentoo-commits

commit:     34634dd382a506fca615c4a7058a7626cc4b3822
Author:     Dennis Schridde <devurandom <AT> gmx <DOT> net>
AuthorDate: Thu Aug 18 20:05:29 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Aug 18 20:05:29 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=34634dd3

crossdev: default LPKG to [none] all the time

The logic to default LPKG to [none] doesn't actually work anymore as
we always initialized it to "" and the ${VAR=} syntax skips vars that
are set (even if they're empty).

Signed-off-by: Dennis Schroeder <devurandom <AT> gmx.net>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/crossdev b/crossdev
index 0c74b7d..e4d4dbe 100755
--- a/crossdev
+++ b/crossdev
@@ -242,8 +242,6 @@ parse_target() {
 			KPKG="[none]"
 			;;
 	esac
-
-	: ${LPKG=[none]}
 }
 
 setup_portage_vars() {
@@ -430,7 +428,7 @@ STAGE=""
 BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" ; BUSE="" ; BENV=""
 GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" ; GUSE="" ; GENV=""
 KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" ; KUSE="" ; KENV=""
-LCAT="sys-libs"   ; LPKG=""              ; LVER="" ; LUSE="" ; LENV=""
+LCAT="sys-libs"   ; LPKG="[none]"        ; LVER="" ; LUSE="" ; LENV=""
 DEFAULT_VER="[latest]"
 # These flags are always disabled for cross-gcc; either usually/always broken, or
 # not tested, or doesn't make sense, or no one simply cares about them



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-08-18 20:06 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-08-18 20:06 UTC (permalink / raw
  To: gentoo-commits

commit:     c0286b4cef4dd6c67dc6cf7292d8f720bb234571
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 18 18:32:18 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Aug 18 18:55:34 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=c0286b4c

crossdev: use existing helper to construct package.mask path

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

---
 crossdev |    8 +-------
 1 files changed, 1 insertions(+), 7 deletions(-)

diff --git a/crossdev b/crossdev
index 92c63f6..0c74b7d 100755
--- a/crossdev
+++ b/crossdev
@@ -619,13 +619,7 @@ set_keywords() {
 			echo "${op}cross-${CTARGET}/${pkg}-${ver} * ~* **" >> ${output}
 		else
 			echo "cross-${CTARGET}/${pkg} * ~* **" >> ${output}
-			if [[ -f package.mask ]] ; then
-				output="package.mask"
-				sed -i -e "/cross-${CTARGET}\/${pkg}/d" ${output}
-			else
-				output="package.mask/cross-${CTARGET}"
-			fi
-			check_trailing_newline ${output}
+			output=$(_set_portage_file ${pkg} package.mask)
 			echo ">cross-${CTARGET}/${pkg}-${ver}" >> ${output}
 		fi
 	fi



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-08-18 20:06 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-08-18 20:06 UTC (permalink / raw
  To: gentoo-commits

commit:     c7135b601aed098593d6242205e06f3afa5f7c74
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 18 18:30:43 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Aug 18 18:55:34 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=c7135b60

crossdev: allow people to specify versions with depend atom syntax

If people want an exact version, they can use "--bver =2.21".  This
should cut down on ambiguity with the default behavior of "close to
the specified version, but not exactly".

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

---
 crossdev |   49 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 38 insertions(+), 11 deletions(-)

diff --git a/crossdev b/crossdev
index 5b53471..92c63f6 100755
--- a/crossdev
+++ b/crossdev
@@ -43,6 +43,8 @@ Options:
     ${GOOD}-C, --clean${NORMAL} target    Uninstall specified target
     ${GOOD}-P, --portage${NORMAL} opts    Options to pass to emerge (see emerge(1))
     ${GOOD}--with[out]-headers${NORMAL}   Build C library headers before C compiler?
+Note: versions support depend atom syntaxes; e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
+
 Stage Options:
     ${GOOD}-s0, --stage0${NORMAL}         Build just binutils
     ${GOOD}-s1, --stage1${NORMAL}         Also build a bare C compiler (no C library/
@@ -51,11 +53,13 @@ Stage Options:
     ${GOOD}-s3, --stage3${NORMAL}         Also build the C library
     ${GOOD}-s4, --stage4${NORMAL}         Also build a full compiler [default]
                              (shared libs GCC/various lang frontends/etc...)
+
 Extra Fun (must be run after above stages):
     ${GOOD}--ex-only${NORMAL}             Skip the stage steps above
     ${GOOD}--ex-gcc${NORMAL}              Build extra gcc targets (gcj/ada/etc...)
     ${GOOD}--ex-gdb${NORMAL}              Build a cross gdb
     ${GOOD}--ex-insight${NORMAL}          Build a cross insight
+
 ${BRACKET}Target (-t)${NORMAL} takes a tuple ${BRACKET}ARCH-VENDOR-OS-LIBC${NORMAL}; see 'crossdev -t help'
 EOF
 	[[ -n $* ]] && echo && eerror "Error: $*"
@@ -397,6 +401,21 @@ hr() {
 	local banner=${br//${sext}/${ext}}
 	echo "${banner:0:${c}}"
 }
+ver_get_op() {
+	local op ver=$1
+	[[ ${ver} == "["* ]] && return
+	op=${ver%%[0-9]*}
+	[[ -n ${op} ]] && echo "${op}"
+}
+ver_chop_op() {
+	local op ver=$1
+	op=$(ver_get_op "${ver}")
+	echo "${ver##${op}}"
+}
+pretty_atom() {
+	local mid=$1 ver=$2
+	printf '%s%s%s' "$(ver_get_op "${ver}")" "${mid}" "$(ver_chop_op "${ver}")"
+}
 
 ##################
 ### setup vars ###
@@ -530,17 +549,17 @@ einfo "ABIs:                  ${MULTILIB_ABIS}"
 echo
 ex_fast || {
 is_s0 && {
-einfo "binutils:              ${BPKG}-${BVER}"
+einfo "binutils:              `pretty_atom ${BPKG}- ${BVER}`"
 }
 is_s1 && {
-einfo "gcc:                   ${GPKG}-${GVER}"
+einfo "gcc:                   `pretty_atom ${GPKG}- ${GVER}`"
 }
 is_s2 && {
 [[ ${KPKG} != "[none]" ]] && \
-einfo "headers:               ${KPKG}-${KVER}"
+einfo "headers:               `pretty_atom ${KPKG}- ${KVER}`"
 }
 is_s3 && {
-einfo "libc:                  ${LPKG}-${LVER}"
+einfo "libc:                  `pretty_atom ${LPKG}- ${LVER}`"
 }
 }
 ex_gcc && {
@@ -592,15 +611,23 @@ set_keywords() {
 		[[ "${TARCH}" != "${HARCH}" ]] && keywords="${keywords} -${HARCH} -~${HARCH}"
 		echo "cross-${CTARGET}/${pkg} ${keywords}" >> ${output}
 	else
-		echo "cross-${CTARGET}/${pkg} * ~* **" >> ${output}
-		if [[ -f package.mask ]] ; then
-			output="package.mask"
-			sed -i -e "/cross-${CTARGET}\/${pkg}/d" ${output}
+		local op=$(ver_get_op "${ver}")
+		if [[ -n ${op} ]] ; then
+			# user has been explicit in the version they desire
+			ver=$(ver_chop_op "${ver}")
+			echo "cross-${CTARGET}/${pkg} -*" >> ${output}
+			echo "${op}cross-${CTARGET}/${pkg}-${ver} * ~* **" >> ${output}
 		else
-			output="package.mask/cross-${CTARGET}"
+			echo "cross-${CTARGET}/${pkg} * ~* **" >> ${output}
+			if [[ -f package.mask ]] ; then
+				output="package.mask"
+				sed -i -e "/cross-${CTARGET}\/${pkg}/d" ${output}
+			else
+				output="package.mask/cross-${CTARGET}"
+			fi
+			check_trailing_newline ${output}
+			echo ">cross-${CTARGET}/${pkg}-${ver}" >> ${output}
 		fi
-		check_trailing_newline ${output}
-		echo ">cross-${CTARGET}/${pkg}-${ver}" >> ${output}
 	fi
 }
 set_use() {



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-08-15 22:25 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-08-15 22:25 UTC (permalink / raw
  To: gentoo-commits

commit:     7cb580a271ed6dc224e43096806183c628b714e2
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 15 22:24:19 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Aug 15 22:24:19 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=7cb580a2

crossdev: drop {binutils,gcc}-config forced upgrade

These packages have been in stable for a while now, so there shouldn't be
much of a need to force a sanity upgrade.  Especially since the common
toolchain packages take care of forcing recent ones.

Any stragglers will simply be made fun of if they attempt to use crossdev
on an outdated system.

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

---
 crossdev |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/crossdev b/crossdev
index 6634095..5b53471 100755
--- a/crossdev
+++ b/crossdev
@@ -751,10 +751,6 @@ export UCLIBC_CPU=${UCLIBC_CPU}
 
 ex_fast || {
 
-ebegin "Forcing the latest versions of {binutils,gcc}-config/gnuconfig"
-emerge {binutils,gcc}-config gnuconfig -qu --ignore-default-opts &> /dev/null
-eend $? || exit 1
-
 doemerge ${BPKG}
 
 is_s1 || exit 0



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-08-12 18:59 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-08-12 18:59 UTC (permalink / raw
  To: gentoo-commits

commit:     3b5c872a23b35c10a7af6893e8fd03eafada0c0b
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 12 18:58:45 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Aug 12 18:58:45 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=3b5c872a

crossdev: add a --force option for uninstalling

Rather than forcing people to type "y" or do `yes|crossdev -C`, add a
force option to simplify the prompting.

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

---
 crossdev |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/crossdev b/crossdev
index 6ad9d1a..6634095 100755
--- a/crossdev
+++ b/crossdev
@@ -38,6 +38,7 @@ Options:
     ${GOOD}--l, --libc${NORMAL} ver       Specify version of libc to use
     ${GOOD}-A, --abis${NORMAL} abis       Specify ABIs to build, first one is the default
     ${GOOD}--[bgkl]env${NORMAL} env       Specify env settings for binutils/gcc/kernel/libc
+    ${GOOD}-f, --force${NORMAL}           I don't need a seat belt!
     ${GOOD}-S, --stable${NORMAL}          Use latest stable versions as default
     ${GOOD}-C, --clean${NORMAL} target    Uninstall specified target
     ${GOOD}-P, --portage${NORMAL} opts    Options to pass to emerge (see emerge(1))
@@ -336,13 +337,17 @@ uninstall() {
 	# clean out the sysroot, prompting the user if need be
 	for d in /usr/lib/gcc{,-lib}/${CTARGET} /usr/${CTARGET} ; do
 		if [[ ! -d ${d} ]] ; then
-			rm -f "${d}" &> /dev/null
+			rm -f "${d}"
 		else
-			find "${d}" -type d -depth -exec rmdir {} + 2>/dev/null && continue
-			printf "${d}: directory still exists; remove recursively? [y/N] "
-			local ans
-			read ans
-			[[ ${ans} == [Yy]* ]] && rm -rf "${d}"
+			if [[ ${FORCE} == "no" ]] ; then
+				find "${d}" -type d -depth -exec rmdir {} + 2>/dev/null && continue
+				printf "${d}: directory still exists; remove recursively? [y/N] "
+				local ans
+				read ans
+				[[ ${ans} == [Yy]* ]] && rm -rf "${d}"
+			else
+				rm -rf "${d}"
+			fi
 		fi
 	done
 
@@ -418,6 +423,7 @@ WITH_HEADERS="COW"   WITH_DEF_HEADERS="yes" #227065 gcc-4.3+ is a pita w/out hea
 EX_FAST="no"
 EX_GCC="no"
 EX_GDB="no"
+FORCE="no"
 SET_X="no"
 
 while [[ $# -gt 0 ]] ; do
@@ -442,6 +448,7 @@ while [[ $# -gt 0 ]] ; do
 	--ex-insight)   EX_INSIGHT="yes";;
 	--with-*)       eval $(set_withval $1);;
 	--without-*)    eval $(set_withval $1);;
+	-f|--force)     FORCE="yes";;
 	-x)             SET_X="yes";;
 	-P|--portage)   UOPTS="${UOPTS} $2"; shift;;
 	-b|-d|-p|-v|-q) UOPTS="${UOPTS} $1";;



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-07-05  6:44 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-07-05  6:44 UTC (permalink / raw
  To: gentoo-commits

commit:     43b68c730793e1ef901ed1f768f0c41be17f7038
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  5 06:44:04 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Jul  5 06:44:04 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=43b68c73

have default timestamp use last commit date

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

---
 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index f02e255..15e6e74 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ install:
 	$(INSTALL_EXEC) crossdev $(DESTDIR)/$(PREFIX)/bin/
 	$(MAKE) -C wrappers install
 
-PV = $(shell date +%Y%m%d)
+PV = $(shell date --date="`git log -1 --format=%ci`" +%Y%m%d)
 P = crossdev-$(PV)
 COMP = xz
 dist:



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-03-27  6:07 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-03-27  6:07 UTC (permalink / raw
  To: gentoo-commits

commit:     4f548341b7083a2fc0726e9866323d30965206ac
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 20 22:52:11 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sun Mar 20 22:52:11 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=4f548341

crossdev: unforce USE=multilib for cross-compilers

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

---
 crossdev |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/crossdev b/crossdev
index 1f693cc..6ad9d1a 100755
--- a/crossdev
+++ b/crossdev
@@ -270,7 +270,7 @@ uninstall() {
 	[[ -d ${PORTDIR_OVERLAY}/cross-${CTARGET} ]] \
 		&& rm -r ${PORTDIR_OVERLAY}/cross-${CTARGET}
 	sed -i -e "/^cross-${CTARGET}$/d" "${CONFIGROOT}"/categories
-	for f in package.{mask,keywords,use} ; do
+	for f in package.{mask,keywords,use} profile/package.use.force ; do
 		f="${CONFIGROOT}/${f}"
 		if [[ -d ${f} ]] ; then
 			rm -f "${f}"/cross-${CTARGET}
@@ -564,16 +564,18 @@ check_trailing_newline() { #267132
 		echo >> "$1"
 	fi
 }
+_set_portage_file() {
+	local pkg=$1 output=$2
+	[[ ! -f ${output} ]] && output+="/cross-${CTARGET}"
+	[[ -e ${output} ]] && sed -i -e "/^cross-${CTARGET}\/${pkg}/d" ${output}
+	check_trailing_newline ${output}
+	echo ${output}
+}
 set_keywords() {
 	local pkg=$1 ver=$2 output
 	[[ -z ${pkg} ]] && return 0
-	if [[ -f package.keywords ]] ; then
-		output="package.keywords"
-		sed -i -e "/^cross-${CTARGET}\/${pkg} /d" ${output}
-	else
-		output="package.keywords/cross-${CTARGET}"
-	fi
-	check_trailing_newline ${output}
+	output=$(_set_portage_file ${pkg} package.keywords)
+
 	if [[ ${ver} == "["*"]" ]] || [[ -z ${ver} ]] ; then
 		local keywords=""
 		case ${ver} in
@@ -595,17 +597,15 @@ set_keywords() {
 	fi
 }
 set_use() {
-	local pkg=$1 output
-	shift
-	local use=$@
+	local pkg=$1 output use=${@:2}
 	[[ -z ${use} ]] && return 0
-	if [[ -f package.use ]] ; then
-		output="package.use"
-	else
-		output="package.use/cross-${CTARGET}"
-	fi
-	[[ -e ${output} ]] && sed -i -e "/cross-${CTARGET}\/${pkg}/d" ${output}
-	check_trailing_newline ${output}
+	output=$(_set_portage_file ${pkg} package.use)
+	echo "cross-${CTARGET}/${pkg} ${use}" >> ${output}
+}
+set_use_force() {
+	local pkg=$1 output use=${@:2}
+	[[ -z ${use} ]] && return 0
+	output=$(_set_portage_file ${pkg} profile/package.use.force)
 	echo "cross-${CTARGET}/${pkg} ${use}" >> ${output}
 }
 set_links() {
@@ -630,7 +630,6 @@ set_links() {
 set_env() {
 	local pkg=$1 env=$2
 	shift ; shift
-	mkdir -p env/cross-${CTARGET}
 
 	cat <<-EOF > env/cross-${CTARGET}/${pkg}
 	# handle multilib ourselves
@@ -654,6 +653,7 @@ set_portage() {
 
 	set_keywords ${pkg} ${ver}
 	set_use ${pkg} ${use}
+	set_use_force ${pkg} -multilib
 	set_links ${cat} ${pkg}
 	set_env ${pkg} "${env}"
 }
@@ -664,7 +664,7 @@ grep -qs "^cross-${CTARGET}$" "${CONFIGROOT}"/categories \
 	|| echo cross-${CTARGET} >> "${CONFIGROOT}"/categories
 mkdir -p "${PORTDIR_OVERLAY}"/cross-${CTARGET} || exit 1
 cd "${CONFIGROOT}"
-for f in package.{keywords,mask,use} ; do
+for f in package.{keywords,mask,use} env/cross-${CTARGET} profile/package.use.force ; do
 	[[ -f ${f} ]] && continue
 	mkdir -p ${f} || exit 1
 	rm -f ${f}/cross-${CTARGET}
@@ -708,7 +708,7 @@ doemerge() {
 	einfo "Log: ${logfile}"
 	ebegin "Emerging cross-${2:-$1}"
 
-	set_use $1 ${USE}
+	set_use $1 ${USE} $( [[ ${MULTILIB_ABIS} == "default" ]] && echo - )multilib
 
 	if [[ ${UOPTS/-v} != ${UOPTS} || ${UOPTS/-p} != ${UOPTS} ]] ; then
 		emerge cross-${CTARGET}/$1 ${EOPTS} \



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-03-11  4:22 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-03-11  4:22 UTC (permalink / raw
  To: gentoo-commits

commit:     5da435d712a7896166040ed5751bccc448c06af4
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 11 04:04:58 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Mar 11 04:11:01 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=5da435d7

crossdev: clean out generated sysroot /etc too

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

---
 crossdev |   39 +++++++++++++++++++++++++++++++++------
 1 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/crossdev b/crossdev
index 20d8817..1954331 100755
--- a/crossdev
+++ b/crossdev
@@ -290,8 +290,11 @@ uninstall() {
 			emerge -qC =${p} || exit 1
 		done
 	else
-		ewarn "${CTARGET}: no packages installed"
+		ewarn "${CTARGET}: no packages installed; will clean out known files"
 	fi
+
+	# clean out known toolchain files (binutils/gcc)
+	local b
 	for b in \
 		addr2line ar as c++filt dlltool dllwrap embedspu \
 		gprof ld nm objcopy objdump ranlib readelf \
@@ -300,22 +303,46 @@ uninstall() {
 		rm -f /usr/bin/${CTARGET}-${b} /usr/${CTARGET}/bin/${b}
 	done
 	rm -f /usr/${CTARGET}/{sys-include,usr}
+	rmdir /usr/${CTARGET}/{include/asm,include} 2>/dev/null
 	rm -f /usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,gfortran,gcov}
+	rm -f /etc/env.d/{binutils,gcc}/config-${CTARGET}
+
+	# clean out files from crossdev itself
+	[[ -e /var/db/pkg/cross-${CTARGET} ]] && rmdir /var/db/pkg/cross-${CTARGET}
 	rm -f /usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} /usr/bin/emerge-${CTARGET}
-	rmdir /usr/${CTARGET}/{include/asm,include} &> /dev/null
-	for d in /usr/${CTARGET} /usr/lib/gcc{,-lib}/${CTARGET} ; do
+
+	local f
+	for f in make.{conf,globals,profile} ; do
+		f="/usr/${CTARGET}/etc/${f}"
+		[[ -L ${f} ]] && rm -f ${f}
+		f="/usr/${CTARGET}/etc/portage/${f##*/}"
+		[[ -L ${f} ]] && rm -f ${f}
+	done
+	find /usr/share/crossdev/etc/ -type f | \
+	while read f ; do
+		f1=${f}
+		[[ ! -e ${f1} ]] && continue
+		m1=$(set -- `md5sum ${f1}`; echo $1)
+		f2=/usr/${CTARGET}${f#/usr/share/crossdev}
+		[[ ! -e ${f2} ]] && continue
+		m2=$(set -- `md5sum ${f2}`; echo $1)
+		if [[ ${m1} == ${m2} ]] ; then
+			rm -f ${f2}
+		fi
+	done
+
+	# clean out the sysroot, prompting the user if need be
+	for d in /usr/lib/gcc{,-lib}/${CTARGET} /usr/${CTARGET} ; do
 		if [[ ! -d ${d} ]] ; then
 			rm -f "${d}" &> /dev/null
 		else
-			rmdir "${d}" &> /dev/null && continue
+			find "${d}" -type d -depth -exec rmdir {} + 2>/dev/null && continue
 			printf "${d}: directory still exists; remove recursively? [y/N] "
 			local ans
 			read ans
 			[[ ${ans} == [Yy]* ]] && rm -rf "${d}"
 		fi
 	done
-	rm -f /etc/env.d/{binutils,gcc}/config-${CTARGET}
-	[[ -e /var/db/pkg/cross-${CTARGET} ]] && rmdir /var/db/pkg/cross-${CTARGET}
 
 	exit 0
 }



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-03-11  4:22 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-03-11  4:22 UTC (permalink / raw
  To: gentoo-commits

commit:     5ff69347681dee9ce6f76cf91671cdcab56bfe6b
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 11 04:21:33 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Mar 11 04:21:33 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=5ff69347

crossdev: auto mask sysroot from revdep-rebuild

URL: http://bugs.gentoo.org/182601
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/crossdev b/crossdev
index 1954331..1f693cc 100755
--- a/crossdev
+++ b/crossdev
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 CROSSDEV_VER="@CDEVPV@"
@@ -281,6 +281,8 @@ uninstall() {
 	done
 	rm -rf "${CONFIGROOT}"/env/cross-${CTARGET}
 	rmdir "${CONFIGROOT}"/env 2>/dev/null
+	rm -f /etc/revdep-rebuild/05cross-${CTARGET}
+	rmdir /etc/revdep-rebuild 2>/dev/null
 
 	rmdir /var/db/pkg/cross-${CTARGET} 2>/dev/null
 	if [[ -d /var/db/pkg/cross-${CTARGET} ]] ; then
@@ -675,6 +677,10 @@ set_portage ${LCAT} ${LPKG} ${LVER} "${LENV}"
 set_portage sys-devel gdb
 set_portage dev-util insight
 
+# filter out revdep rebuild stuff #182601
+mkdir -p /etc/revdep-rebuild
+echo "SEARCH_DIRS_MASK=/usr/${CTARGET}" > /etc/revdep-rebuild/05cross-${CTARGET}
+
 #######################################
 ### Create links for helper scripts ###
 



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-03-11  4:22 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-03-11  4:22 UTC (permalink / raw
  To: gentoo-commits

commit:     0c97183c740cc8bc22eb11ec86a9cc94b3155fc5
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 10 07:45:24 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Mar 10 08:32:09 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=0c97183c

crossdev: add proper multilib handling

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

---
 crossdev |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index 1f794fb..20d8817 100755
--- a/crossdev
+++ b/crossdev
@@ -36,6 +36,7 @@ Options:
     ${GOOD}--g, --gcc${NORMAL} ver        Specify version of gcc to use
     ${GOOD}--k, --kernel${NORMAL} ver     Specify version of kernel headers to use
     ${GOOD}--l, --libc${NORMAL} ver       Specify version of libc to use
+    ${GOOD}-A, --abis${NORMAL} abis       Specify ABIs to build, first one is the default
     ${GOOD}--[bgkl]env${NORMAL} env       Specify env settings for binutils/gcc/kernel/libc
     ${GOOD}-S, --stable${NORMAL}          Use latest stable versions as default
     ${GOOD}-C, --clean${NORMAL} target    Uninstall specified target
@@ -371,6 +372,7 @@ UOPTS=
 TARCH=
 HARCH=
 CTARGET=
+MULTILIB_ABIS="default"
 STAGE=""
 BCAT="sys-devel"  ; BPKG="binutils"      ; BVER="" ; BUSE="" ; BENV=""
 GCAT="sys-devel"  ; GPKG="gcc"           ; GVER="" ; GUSE="" ; GENV=""
@@ -401,6 +403,7 @@ while [[ $# -gt 0 ]] ; do
 	--kenv)         shift; KENV=$1;;
 	--l|--libc)     shift; LVER=$1;;
 	--lenv)         shift; LENV=$1;;
+	-A|--abis)      shift; MULTILIB_ABIS=$1;;
 	-S|--stable)    DEFAULT_VER="[stable]";;
 	-C|--clean)     shift; parse_target $1; uninstall;;
 	-s?|--stage?)   STAGE=${1:0-1};;
@@ -463,7 +466,7 @@ if [[ ${HCHOST} == "${CTARGET}" ]] ; then
 fi
 
 # grab user settings
-for v in ABI UCLIBC_CPU USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS ASFLAGS ; do
+for v in MULTILIB_ABIS UCLIBC_CPU USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS ASFLAGS ; do
 	d="${CONFIGROOT}/crossdev/${CTARGET}"
 	if [[ -e ${d}/${v} ]] ; then
 		# yes, quotes are needed in this instance (export $var="...")
@@ -475,6 +478,8 @@ for v in ABI UCLIBC_CPU USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS ASFLAGS ; d
 		source "${d}"/env
 	fi
 done
+ABI=$(set -- ${MULTILIB_ABIS:-default}; echo $1)
+DEFAULT_ABI=${ABI}
 
 #####################
 ### do the emerge ###
@@ -485,6 +490,7 @@ einfo "Host Portage ARCH:     ${HARCH}"
 einfo "Target Portage ARCH:   ${TARCH}"
 einfo "Target System:         ${CTARGET}"
 einfo "Stage:                 ${STAGE} (${STAGE_DISP[${STAGE}]})"
+einfo "ABIs:                  ${MULTILIB_ABIS}"
 echo
 ex_fast || {
 is_s0 && {
@@ -598,13 +604,15 @@ set_env() {
 	mkdir -p env/cross-${CTARGET}
 
 	cat <<-EOF > env/cross-${CTARGET}/${pkg}
-	# make sure multilib crap doesn't screw us over
-	ABI=${ABI:-pos}
-	LIBDIR_pos="lib"
-	CFLAGS_pos=
-	CPPFLAGS_pos=
-	CXXFLAGS_pos=
-	LDFLAGS_pos=
+	# handle multilib ourselves
+	ABI=${ABI}
+	MULTILIB_ABIS="${MULTILIB_ABIS}"
+	DEFAULT_ABI=${DEFAULT_ABI}
+	LIBDIR_default="lib"
+	CFLAGS_default=
+	CPPFLAGS_default=
+	CXXFLAGS_default=
+	LDFLAGS_default=
 	$(printf '%b' "${env}")
 	EOF
 }



^ permalink raw reply related	[flat|nested] 217+ messages in thread
* [gentoo-commits] proj/crossdev:master commit in: /
@ 2011-02-14  3:08 Mike Frysinger
  0 siblings, 0 replies; 217+ messages in thread
From: Mike Frysinger @ 2011-02-14  3:08 UTC (permalink / raw
  To: gentoo-commits

commit:     1cd06f195aa1ab628658938b6e671642c5248d9e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 14 03:07:31 2011 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Feb 14 03:07:31 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=1cd06f19

crossdev: don't attempt headers install with newlib

The newlib package doesn't provide headers to install separately, so
default to --without-headers when that is the C library.

URL: http://bugs.gentoo.org/259144
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

---
 crossdev |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/crossdev b/crossdev
index 16fe0fb..1f794fb 100755
--- a/crossdev
+++ b/crossdev
@@ -227,6 +227,7 @@ parse_target() {
 			LPKG="newlib"
 			KPKG="[none]"
 			STAGE_DEFAULT=${STAGE_LIBC}
+			WITH_DEF_HEADERS="no"
 			;;
 
 		# Now for the BSDs ...



^ permalink raw reply related	[flat|nested] 217+ messages in thread

end of thread, other threads:[~2024-10-15  7:13 UTC | newest]

Thread overview: 217+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-31  0:52 [gentoo-commits] proj/crossdev:master commit in: / Mike Frysinger
  -- strict thread matches above, loose matches on Subject: below --
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-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-18 17:36 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox