commit: dc0564d9e7675dad5603d5e8cfbf50e0154891b5
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 6 19:13:27 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Apr 6 19:13:38 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dc0564d9
sys-libs/glibc: tweak riscv preconfigure mangling
Changed 'preconfigure' mangling from using sed to using CPPFLAGS.
While at it move the hack closer to ./configure call.
Package-Manager: Portage-2.3.28, Repoman-2.3.9
sys-libs/glibc/glibc-2.27-r1.ebuild | 43 ++++++++++++++++++------------------
sys-libs/glibc/glibc-9999.ebuild | 44 +++++++++++++++++++------------------
2 files changed, 45 insertions(+), 42 deletions(-)
diff --git a/sys-libs/glibc/glibc-2.27-r1.ebuild
b/sys-libs/glibc/glibc-2.27-r1.ebuild
index c61cf3e2929..3cc1a137ada 100644
--- a/sys-libs/glibc/glibc-2.27-r1.ebuild
+++ b/sys-libs/glibc/glibc-2.27-r1.ebuild
@@ -754,26 +754,6 @@ src_prepare() {
einfo "Done."
fi
- if just_headers ; then
- if [[ -e sysdeps/riscv/preconfigure ]] ; then
- # RISC-V interrogates the compiler to determine which
target to
- # build. If building the headers then we don't
strictly need a
- # RISC-V compiler, so the built-in definitions that are
provided
- # along with all RISC-V compiler might not exist. This
causes
- # glibc's RISC-V preconfigure script to blow up. Since
we're just
- # building the headers any value will actually work
here, so just
- # pick the standard one (rv64g/lp64d) to make the build
scripts
- # happy for now -- the headers are all the same anyway
so it
- # doesn't matter.
- sed -i 's/^ xlen=.*/ xlen=64/g'
sysdeps/riscv/preconfigure || die
- sed -i 's/^ flen=.*/ flen=64/g'
sysdeps/riscv/preconfigure || die
- sed -i 's/^ float_abi=.*/ float_abi=double/g'
sysdeps/riscv/preconfigure || die
- sed -i 's/^ atomic=.*/ atomic=__riscv_atomic/g'
sysdeps/riscv/preconfigure || die
- sed -i
's/^libc_cv_riscv_float_abi=no/libc_cv_riscv_float_abi=d/g'
sysdeps/unix/sysv/linux/riscv/configure.ac || die
- sed -i
's/^libc_cv_riscv_float_abi=no/libc_cv_riscv_float_abi=d/g'
sysdeps/unix/sysv/linux/riscv/configure || die
- fi
- fi
-
default
gnuconfig_update
@@ -1009,6 +989,8 @@ glibc_headers_configure() {
export ${v}
done
+ local headers_only_arch_CPPFLAGS=()
+
# Blow away some random CC settings that screw things up. #550192
if [[ -d ${S}/sysdeps/mips ]]; then
pushd "${S}"/sysdeps/mips >/dev/null
@@ -1025,6 +1007,25 @@ glibc_headers_configure() {
popd >/dev/null
fi
+ case ${CTARGET} in
+ riscv*)
+ # RISC-V interrogates the compiler to determine which target to
+ # build. If building the headers then we don't strictly need a
+ # RISC-V compiler, so the built-in definitions that are provided
+ # along with all RISC-V compiler might not exist. This causes
+ # glibc's RISC-V preconfigure script to blow up. Since we're
just
+ # building the headers any value will actually work here, so
just
+ # pick the standard one (rv64g/lp64d) to make the build scripts
+ # happy for now -- the headers are all the same anyway so it
+ # doesn't matter.
+ headers_only_arch_CPPFLAGS+=(
+ -D__riscv_xlen=64
+ -D__riscv_flen=64
+ -D__riscv_float_abi_double=1
+ -D__riscv_atomic=1
+ ) ;;
+ esac
+
local myconf=()
myconf+=(
--disable-sanity-checks
@@ -1043,7 +1044,7 @@ glibc_headers_configure() {
# So forcing CC/CFLAGS is sane.
local headers_only_CC=$(tc-getBUILD_CC)
local headers_only_CFLAGS="-O1 -pipe"
- local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE"
+ local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE
${headers_only_arch_CPPFLAGS[*]}"
local headers_only_LDFLAGS=""
set -- "${S}"/configure "${myconf[@]}"
echo \
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 12272c31f35..519bc28c954 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -754,26 +754,6 @@ src_prepare() {
einfo "Done."
fi
- if just_headers ; then
- if [[ -e sysdeps/riscv/preconfigure ]] ; then
- # RISC-V interrogates the compiler to determine which
target to
- # build. If building the headers then we don't
strictly need a
- # RISC-V compiler, so the built-in definitions that are
provided
- # along with all RISC-V compiler might not exist. This
causes
- # glibc's RISC-V preconfigure script to blow up. Since
we're just
- # building the headers any value will actually work
here, so just
- # pick the standard one (rv64g/lp64d) to make the build
scripts
- # happy for now -- the headers are all the same anyway
so it
- # doesn't matter.
- sed -i 's/^ xlen=.*/ xlen=64/g'
sysdeps/riscv/preconfigure || die
- sed -i 's/^ flen=.*/ flen=64/g'
sysdeps/riscv/preconfigure || die
- sed -i 's/^ float_abi=.*/ float_abi=double/g'
sysdeps/riscv/preconfigure || die
- sed -i 's/^ atomic=.*/ atomic=__riscv_atomic/g'
sysdeps/riscv/preconfigure || die
- sed -i
's/^libc_cv_riscv_float_abi=no/libc_cv_riscv_float_abi=d/g'
sysdeps/unix/sysv/linux/riscv/configure.ac || die
- sed -i
's/^libc_cv_riscv_float_abi=no/libc_cv_riscv_float_abi=d/g'
sysdeps/unix/sysv/linux/riscv/configure || die
- fi
- fi
-
default
gnuconfig_update
@@ -1009,6 +989,8 @@ glibc_headers_configure() {
export ${v}
done
+ local headers_only_arch_CPPFLAGS=()
+
# Blow away some random CC settings that screw things up. #550192
if [[ -d ${S}/sysdeps/mips ]]; then
pushd "${S}"/sysdeps/mips >/dev/null
@@ -1025,6 +1007,25 @@ glibc_headers_configure() {
popd >/dev/null
fi
+ case ${CTARGET} in
+ riscv*)
+ # RISC-V interrogates the compiler to determine which target to
+ # build. If building the headers then we don't strictly need a
+ # RISC-V compiler, so the built-in definitions that are provided
+ # along with all RISC-V compiler might not exist. This causes
+ # glibc's RISC-V preconfigure script to blow up. Since we're
just
+ # building the headers any value will actually work here, so
just
+ # pick the standard one (rv64g/lp64d) to make the build scripts
+ # happy for now -- the headers are all the same anyway so it
+ # doesn't matter.
+ headers_only_arch_CPPFLAGS+=(
+ -D__riscv_xlen=64
+ -D__riscv_flen=64
+ -D__riscv_float_abi_double=1
+ -D__riscv_atomic=1
+ ) ;;
+ esac
+
local myconf=()
myconf+=(
--disable-sanity-checks
@@ -1043,7 +1044,7 @@ glibc_headers_configure() {
# So forcing CC/CFLAGS is sane.
local headers_only_CC=$(tc-getBUILD_CC)
local headers_only_CFLAGS="-O1 -pipe"
- local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE"
+ local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE
${headers_only_arch_CPPFLAGS[*]}"
local headers_only_LDFLAGS=""
set -- "${S}"/configure "${myconf[@]}"
echo \
@@ -1101,6 +1102,7 @@ src_test() {
if just_headers ; then
return
fi
+
# Give tests more time to complete.
export TIMEOUTFACTOR=5