diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2018-04-06 20:13:27 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2018-04-06 20:13:38 +0100 |
commit | dc0564d9e7675dad5603d5e8cfbf50e0154891b5 (patch) | |
tree | 929d014a4b0e93064f445b3b6bbf28e07aa7ea7d /sys-libs | |
parent | sys-libs/glibc: drop outdated ports/sysdeps/mips/ mangling (diff) | |
download | gentoo-dc0564d9e7675dad5603d5e8cfbf50e0154891b5.tar.gz gentoo-dc0564d9e7675dad5603d5e8cfbf50e0154891b5.tar.bz2 gentoo-dc0564d9e7675dad5603d5e8cfbf50e0154891b5.zip |
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
Diffstat (limited to 'sys-libs')
-rw-r--r-- | sys-libs/glibc/glibc-2.27-r1.ebuild | 43 | ||||
-rw-r--r-- | 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 c61cf3e29292..3cc1a137ada3 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 12272c31f35d..519bc28c9546 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 |