sys-libs/glibc: apply riscv kludge to live ebuild
authorSergei Trofimovich <slyfox@gentoo.org>
Tue, 3 Apr 2018 20:20:45 +0000 (21:20 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Tue, 3 Apr 2018 20:21:19 +0000 (21:21 +0100)
This pulls in commit from 2.27-r1
"sys-libs/glibc: Add support for building RISC-V headers"
Package-Manager: Portage-2.3.28, Repoman-2.3.9

sys-libs/glibc/glibc-9999.ebuild

index 17f8cdafed54aaf3bd2c2ded3ae72dee21b264b8..e6d10969e8b3da068d79790df378699dc4c1a89a 100644 (file)
@@ -762,6 +762,23 @@ src_prepare() {
                        sed -i '/CPPFLAGS=.*-mabi/s|.*|:|' ports/sysdeps/mips/preconfigure || die
                        find ports/sysdeps/mips/ -name Makefile -exec sed -i '/^CC.*-mabi=/s:-mabi=.*:-D_MIPS_SZPTR=32:' {} +
                fi
+               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