sys-libs/compiler-rt-sanitizers: Stop using unsandbox in 6.0+
authorMichał Górny <mgorny@gentoo.org>
Mon, 19 Feb 2018 17:54:02 +0000 (18:54 +0100)
committerMichał Górny <mgorny@gentoo.org>
Mon, 19 Feb 2018 17:55:24 +0000 (18:55 +0100)
Stop relying on app-portage/unsandbox in the live ebuilds. Instead,
rely on sys-apps/sandbox-2.13 that supports stopping to clobber
LD_PRELOAD on its own!

sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.0_rc2.ebuild
sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.9999.ebuild
sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild

index 19492d445c29315dd1f05ba53f4cfee85737ed9c..8a7c7cce68344f2482f1fdb6d51ec0cbced6ec7f 100644 (file)
@@ -30,7 +30,7 @@ DEPEND="
        >=sys-devel/llvm-6
        clang? ( sys-devel/clang )
        test? (
-               app-portage/unsandbox
+               !<sys-apps/sandbox-2.13
                $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
                =sys-devel/clang-${PV%_*}*:${LLVM_SLOT}
                sys-libs/compiler-rt:${SLOT} )
@@ -95,14 +95,9 @@ src_configure() {
                -DCOMPILER_RT_BUILD_XRAY=ON
        )
        if use test; then
-               cat > "${T}"/unsandbox-lit.py <<-EOF || die
-                       import os, sys
-                       os.execlp("unsandbox", sys.argv[0], "lit", *sys.argv[1:])
-               EOF
-
                mycmakeargs+=(
                        -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
-                       -DLLVM_EXTERNAL_LIT="${T}/unsandbox-lit.py"
+                       -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
                        -DLLVM_LIT_ARGS="-vv"
 
                        # they are created during src_test()
@@ -151,6 +146,10 @@ src_configure() {
 src_test() {
        # respect TMPDIR!
        local -x LIT_PRESERVES_TMP=1
+       # disable sandbox to have it stop clobbering LD_PRELOAD
+       local -x SANDBOX_ON=0
+       # wipe LD_PRELOAD to make ASAN happy
+       local -x LD_PRELOAD=
 
        cmake-utils_src_make check-all
 }
index b3850e773bed4bcefd354d4c241e5b0960c90a9a..b263b10f2f76edd3c418c900e9ffd20f8bf7eab5 100644 (file)
@@ -30,7 +30,7 @@ DEPEND="
        >=sys-devel/llvm-6
        clang? ( sys-devel/clang )
        test? (
-               app-portage/unsandbox
+               !<sys-apps/sandbox-2.13
                $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
                =sys-devel/clang-${PV%_*}*:${LLVM_SLOT}
                sys-libs/compiler-rt:${SLOT} )
@@ -96,14 +96,9 @@ src_configure() {
                -DCOMPILER_RT_BUILD_XRAY=ON
        )
        if use test; then
-               cat > "${T}"/unsandbox-lit.py <<-EOF || die
-                       import os, sys
-                       os.execlp("unsandbox", sys.argv[0], "lit", *sys.argv[1:])
-               EOF
-
                mycmakeargs+=(
                        -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
-                       -DLLVM_EXTERNAL_LIT="${T}/unsandbox-lit.py"
+                       -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
                        -DLLVM_LIT_ARGS="-vv"
 
                        # they are created during src_test()
@@ -152,6 +147,10 @@ src_configure() {
 src_test() {
        # respect TMPDIR!
        local -x LIT_PRESERVES_TMP=1
+       # disable sandbox to have it stop clobbering LD_PRELOAD
+       local -x SANDBOX_ON=0
+       # wipe LD_PRELOAD to make ASAN happy
+       local -x LD_PRELOAD=
 
        cmake-utils_src_make check-all
 }
index 2b85804e799d922272701e5aaf7047f93195225b..f83cb210e4e7da10dee65d853d22394a54119939 100644 (file)
@@ -29,7 +29,7 @@ DEPEND="
        >=sys-devel/llvm-6
        clang? ( sys-devel/clang )
        test? (
-               app-portage/unsandbox
+               !<sys-apps/sandbox-2.13
                $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
                =sys-devel/clang-${PV%_*}*:${LLVM_SLOT}
                sys-libs/compiler-rt:${SLOT} )
@@ -95,14 +95,9 @@ src_configure() {
                -DCOMPILER_RT_BUILD_XRAY=ON
        )
        if use test; then
-               cat > "${T}"/unsandbox-lit.py <<-EOF || die
-                       import os, sys
-                       os.execlp("unsandbox", sys.argv[0], "lit", *sys.argv[1:])
-               EOF
-
                mycmakeargs+=(
                        -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
-                       -DLLVM_EXTERNAL_LIT="${T}/unsandbox-lit.py"
+                       -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
                        -DLLVM_LIT_ARGS="-vv"
 
                        # they are created during src_test()
@@ -151,6 +146,10 @@ src_configure() {
 src_test() {
        # respect TMPDIR!
        local -x LIT_PRESERVES_TMP=1
+       # disable sandbox to have it stop clobbering LD_PRELOAD
+       local -x SANDBOX_ON=0
+       # wipe LD_PRELOAD to make ASAN happy
+       local -x LD_PRELOAD=
 
        cmake-utils_src_make check-all
 }