sys-libs/ncurses: fix build on platforms that don't support static linking
authorFabian Groffen <grobian@gentoo.org>
Mon, 31 Aug 2015 18:36:02 +0000 (20:36 +0200)
committerFabian Groffen <grobian@gentoo.org>
Mon, 31 Aug 2015 18:43:19 +0000 (20:43 +0200)
Package-Manager: portage-2.2.20-prefix

sys-libs/ncurses/ncurses-6.0-r1.ebuild

index 245d977593f1f9fc89d221f6842b9d19154a721a..c41219baea45e5cfb0d1d41e9dab7ff6739935ca 100644 (file)
@@ -68,13 +68,24 @@ src_configure() {
        # or installing for the first time.  Build a local copy of tic whenever
        # the host version isn't available. #249363 #557598
        if ! ROOT=/ has_version "~sys-libs/${P}:0" ; then
+               local lbuildflags="-static"
+
+               # some toolchains don't quite support static linking
+               local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
+               case ${CHOST} in
+                       *-darwin*)  dbuildflags=     ;;
+               esac
+               echo "int main() {}" | \
+                       $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
+                       || lbuildflags="${dbuildflags}"
+
                # We can't re-use the multilib BUILD_DIR because we run outside of it.
                BUILD_DIR="${WORKDIR}" \
                CHOST=${CBUILD} \
                CFLAGS=${BUILD_CFLAGS} \
                CXXFLAGS=${BUILD_CXXFLAGS} \
                CPPFLAGS=${BUILD_CPPFLAGS} \
-               LDFLAGS="${BUILD_LDFLAGS} -static" \
+               LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
                multijob_child_init do_configure cross --without-shared --with-normal
        fi
        multilib-minimal_src_configure
@@ -165,7 +176,7 @@ do_configure() {
 
        # Force bash until upstream rebuilds the configure script with a newer
        # version of autotools. #545532
-       CONFIG_SHELL=/bin/bash \
+       CONFIG_SHELL=${EPREFIX}/bin/bash \
        ECONF_SOURCE=${S} \
        econf "${conf[@]}" "$@"
 }