commit: ad34d5e17e56a4a446402185cd67d7b920edf28f
Author: Palmer Dabbelt <palmer <AT> dabbelt <DOT> com>
AuthorDate: Tue Apr 3 20:10:41 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Apr 3 20:21:18 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ad34d5e1
sys-libs/glibc: Add support for building RISC-V headers
The RISC-V GCC port defines some extra preprocessor macros that glibc
uses to determine which RISC-V target is being compiled for. Since
crossdev doesn't use a RISC-V compiler to build the headers, this blows
up. These checks don't matter for building the headers because they're
the same on all RISC-V targets, so we just hack up the glibc build to
elide the check.
sys-libs/glibc/glibc-2.27-r1.ebuild | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/sys-libs/glibc/glibc-2.27-r1.ebuild
b/sys-libs/glibc/glibc-2.27-r1.ebuild
index b281c00fac3..588eebae7f2 100644
--- a/sys-libs/glibc/glibc-2.27-r1.ebuild
+++ b/sys-libs/glibc/glibc-2.27-r1.ebuild
@@ -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