diff options
author | 2018-04-03 13:10:41 -0700 | |
---|---|---|
committer | 2018-04-03 21:21:18 +0100 | |
commit | ad34d5e17e56a4a446402185cd67d7b920edf28f (patch) | |
tree | 0690db6f0d67919ae7cb8ef308dd985d4dc8ea0d /sys-libs/glibc | |
parent | media-libs/exiftool: version bump to 10.89 (diff) | |
download | gentoo-ad34d5e17e56a4a446402185cd67d7b920edf28f.tar.gz gentoo-ad34d5e17e56a4a446402185cd67d7b920edf28f.tar.bz2 gentoo-ad34d5e17e56a4a446402185cd67d7b920edf28f.zip |
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.
Diffstat (limited to 'sys-libs/glibc')
-rw-r--r-- | sys-libs/glibc/glibc-2.27-r1.ebuild | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sys-libs/glibc/glibc-2.27-r1.ebuild b/sys-libs/glibc/glibc-2.27-r1.ebuild index b281c00fac39..588eebae7f2d 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 |