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() {

Reply via email to