* [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: /
@ 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: 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: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: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-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-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-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: 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-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-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: 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: 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: 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: 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: 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: 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-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-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: 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: /
@ 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: /
@ 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: 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-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-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: 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-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-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: 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: /
@ 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: 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: 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: /
@ 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-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: 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-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-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: /
@ 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: 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-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-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: 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-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-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: 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-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-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: 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: 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: 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: 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: 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: 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-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-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: 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: 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: 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: 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-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-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 --
2023-02-02 17:40 [gentoo-commits] proj/crossdev:master commit in: / Sam James
-- 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-01-14 17:58 Sam James
2022-12-28 15:17 Sam James
2022-12-28 15:17 Sam James
2022-11-18 17:57 Mike Gilbert
2022-11-18 17:57 Mike Gilbert
2022-07-09 3:45 Sam James
2022-07-09 3:45 Sam James
2022-07-09 3:45 Sam James
2022-05-02 23:19 Sam James
2022-04-24 16:30 Sam James
2022-04-19 20:25 Sam James
2022-03-17 23:42 Sam James
2022-03-06 2:08 Sam James
2022-02-20 2:19 Sam James
2022-02-11 22:53 Andreas K. Hüttel
2022-01-31 2:06 Sam James
2022-01-28 12:30 Mike Frysinger
2021-11-21 13:08 Sam James
2021-10-27 17:20 Mike Frysinger
2021-10-27 9:19 Mike Frysinger
2021-10-27 8:56 Mike Frysinger
2021-10-27 8:55 Mike Frysinger
2021-07-17 23:38 Sergei Trofimovich
2021-06-21 21:23 Sergei Trofimovich
2021-06-21 21:23 Sergei Trofimovich
2021-06-21 21:23 Sergei Trofimovich
2021-06-21 21:23 Sergei Trofimovich
2021-06-08 22:44 Sergei Trofimovich
2021-06-07 20:44 Sergei Trofimovich
2021-01-05 23:25 Sergei Trofimovich
2021-01-05 23:25 Sergei Trofimovich
2021-01-05 23:25 Sergei Trofimovich
2020-12-31 12:23 Sergei Trofimovich
2020-11-29 22:30 Sergei Trofimovich
2020-11-22 20:41 Sergei Trofimovich
2020-11-08 13:26 Sergei Trofimovich
2020-11-08 13:26 Sergei Trofimovich
2020-08-01 19:50 Sergei Trofimovich
2020-03-26 23:52 Sergei Trofimovich
2020-01-31 7:36 Sergei Trofimovich
2020-01-31 7:36 Sergei Trofimovich
2020-01-31 7:36 Sergei Trofimovich
2020-01-30 8:36 Sergei Trofimovich
2020-01-29 23:20 Sergei Trofimovich
2020-01-25 21:17 Sergei Trofimovich
2020-01-25 12:05 Sergei Trofimovich
2020-01-25 12:05 Sergei Trofimovich
2019-12-22 22:32 Sergei Trofimovich
2019-12-22 22:04 Sergei Trofimovich
2019-12-22 22:01 Sergei Trofimovich
2019-10-21 22:54 Sergei Trofimovich
2019-10-21 22:50 Sergei Trofimovich
2019-10-14 7:35 Sergei Trofimovich
2019-09-08 11:16 Sergei Trofimovich
2019-09-01 19:02 Sergei Trofimovich
2019-09-01 16:14 Sergei Trofimovich
2019-08-25 9:38 Sergei Trofimovich
2019-06-08 18:20 Sergei Trofimovich
2019-03-18 22:54 Sergei Trofimovich
2018-10-18 22:26 Sergei Trofimovich
2018-10-17 21:45 Sergei Trofimovich
2018-09-27 23:44 Jason Donenfeld
2018-09-18 22:44 Sergei Trofimovich
2018-08-18 15:42 Sergei Trofimovich
2018-07-24 23:44 Sergei Trofimovich
2018-05-08 21:40 Sergei Trofimovich
2018-04-10 7:15 Sergei Trofimovich
2018-04-09 20:46 Sergei Trofimovich
2018-04-07 15:57 Sergei Trofimovich
2018-04-07 11:21 Sergei Trofimovich
2018-04-07 10:56 Sergei Trofimovich
2018-04-07 7:27 Sergei Trofimovich
2018-04-05 22:16 Sergei Trofimovich
2018-03-02 22:32 Sergei Trofimovich
2018-02-03 9:39 Sergei Trofimovich
2018-01-20 12:37 Sergei Trofimovich
2018-01-07 20:15 Sergei Trofimovich
2018-01-05 23:27 Sergei Trofimovich
2017-12-30 21:21 Sergei Trofimovich
2017-12-30 17:41 Sergei Trofimovich
2017-12-30 17:41 Sergei Trofimovich
2017-12-30 14:52 Sergei Trofimovich
2017-12-30 14:46 Sergei Trofimovich
2017-12-29 20:44 Sergei Trofimovich
2017-12-28 17:47 Sergei Trofimovich
2017-12-27 18:10 Sergei Trofimovich
2017-12-12 21:35 Steve Arnold
2017-11-23 18:18 Steve Arnold
2017-11-21 23:01 Sergei Trofimovich
2017-11-21 22:13 Sergei Trofimovich
2017-11-19 23:03 Sergei Trofimovich
2017-10-24 17:38 Steve Arnold
2017-10-14 23:46 Steve Arnold
2017-10-14 23:46 Steve Arnold
2017-10-14 23:46 Steve Arnold
2017-10-13 17:56 Steve Arnold
2017-10-13 16:31 Steve Arnold
2017-10-13 16:31 Steve Arnold
2017-10-13 16:31 Steve Arnold
2017-10-13 16:31 Steve Arnold
2016-06-02 15:56 Mike Frysinger
2016-06-02 15:56 Mike Frysinger
2016-06-02 15:56 Mike Frysinger
2016-06-02 15:56 Mike Frysinger
2016-01-16 6:38 Mike Frysinger
2015-10-16 3:19 Mike Frysinger
2015-08-13 2:45 Mike Frysinger
2015-06-02 17:01 Mike Frysinger
2015-05-30 4:46 Mike Frysinger
2015-05-23 5:35 Mike Frysinger
2015-04-18 22:58 Mike Frysinger
2014-10-31 1:56 Mike Frysinger
2014-10-31 1:56 Mike Frysinger
2014-10-31 0:52 Mike Frysinger
2014-09-17 21:41 Mike Frysinger
2014-01-18 18:42 Mike Frysinger
2013-11-07 20:32 Mike Frysinger
2013-11-07 20:28 Mike Frysinger
2013-10-12 20:15 Mike Frysinger
2013-10-11 19:05 Mike Frysinger
2013-10-11 18:48 Mike Frysinger
2013-09-30 0:21 Mike Frysinger
2013-06-28 5:42 Mike Frysinger
2013-06-28 5:14 Mike Frysinger
2013-04-20 2:50 Mike Frysinger
2013-03-28 16:20 Mike Frysinger
2013-03-28 16:20 Mike Frysinger
2013-02-18 20:11 Mike Frysinger
2012-12-25 21:44 Mike Frysinger
2012-11-18 7:56 Mike Frysinger
2012-11-11 9:10 Mike Frysinger
2012-11-05 8:37 Mike Frysinger
2012-10-02 3:23 Mike Frysinger
2012-09-13 5:13 Mike Frysinger
2012-09-13 5:05 Mike Frysinger
2012-08-30 18:16 Mike Frysinger
2012-08-20 21:36 Mike Frysinger
2012-08-17 21:20 Mike Frysinger
2012-07-31 16:19 Mike Frysinger
2012-07-30 3:01 Mike Frysinger
2012-06-09 5:23 Mike Frysinger
2012-06-09 5:23 Mike Frysinger
2012-06-03 9:03 Mike Frysinger
2012-06-03 9:03 Mike Frysinger
2012-06-03 9:03 Mike Frysinger
2012-06-03 9:03 Mike Frysinger
2012-05-30 15:28 Mike Frysinger
2012-05-30 15:28 Mike Frysinger
2012-05-30 15:28 Mike Frysinger
2012-05-30 15:28 Mike Frysinger
2012-03-07 18:31 Mike Frysinger
2012-03-05 23:15 Mike Frysinger
2012-03-05 23:15 Mike Frysinger
2012-03-05 23:15 Mike Frysinger
2012-03-01 18:43 Mike Frysinger
2012-03-01 18:43 Mike Frysinger
2012-03-01 18:43 Mike Frysinger
2012-03-01 18:43 Mike Frysinger
2012-02-29 17:18 Mike Frysinger
2012-02-29 16:22 Mike Frysinger
2012-02-29 16:22 Mike Frysinger
2012-02-29 16:22 Mike Frysinger
2012-02-27 22:50 Mike Frysinger
2012-02-27 22:47 Mike Frysinger
2012-02-24 22:23 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2012-02-14 20:24 Mike Frysinger
2011-12-21 21:06 Mike Frysinger
2011-12-21 21:06 Mike Frysinger
2011-12-13 19:06 Mike Frysinger
2011-12-06 21:50 Mike Frysinger
2011-11-18 20:44 Mike Frysinger
2011-10-31 3:30 Mike Frysinger
2011-10-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