summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas K. Hüttel <dilfridge@gentoo.org>2019-04-19 01:44:46 +0200
committerAndreas K. Hüttel <dilfridge@gentoo.org>2019-04-19 01:45:11 +0200
commit08ac6a89ea72d4cdcb02383410b58e76e69913a4 (patch)
treea44922d85ff7475f7b8f3a74ecf80e30c3d7e46c
parentmedia-sound/pavucontrol: amd64 stable wrt bug #683804 (diff)
downloadgentoo-08ac6a89ea72d4cdcb02383410b58e76e69913a4.tar.gz
gentoo-08ac6a89ea72d4cdcb02383410b58e76e69913a4.tar.bz2
gentoo-08ac6a89ea72d4cdcb02383410b58e76e69913a4.zip
sys-libs/glibc: Fix headers-only cross-build for riscv
Package-Manager: Portage-2.3.63, Repoman-2.3.12 Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
-rw-r--r--sys-libs/glibc/glibc-2.29-r2.ebuild37
-rw-r--r--sys-libs/glibc/glibc-9999.ebuild37
2 files changed, 36 insertions, 38 deletions
diff --git a/sys-libs/glibc/glibc-2.29-r2.ebuild b/sys-libs/glibc/glibc-2.29-r2.ebuild
index 093ffc207eb..fe9feab7f75 100644
--- a/sys-libs/glibc/glibc-2.29-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.29-r2.ebuild
@@ -1006,25 +1006,6 @@ 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
@@ -1042,6 +1023,24 @@ glibc_headers_configure() {
# Nothing is compiled here which would affect the headers for the target.
# So forcing CC/CFLAGS is sane.
local headers_only_CC=$(tc-getBUILD_CC)
+
+ 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.
+ # It's not sufficient to shove the flags into CPPFLAGS, they need
+ # to really go *everywhere*.
+ headers_only_CC="${headers_only_CC} -D__riscv_xlen=64 -D__riscv_flen=64 -D__riscv_float_abi_double=1 -D__riscv_atomic=1"
+ ;;
+ esac
+
local headers_only_CFLAGS="-O1 -pipe"
local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}"
local headers_only_LDFLAGS=""
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 142153734f9..20846e05faf 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -1007,25 +1007,6 @@ 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,6 +1024,24 @@ glibc_headers_configure() {
# Nothing is compiled here which would affect the headers for the target.
# So forcing CC/CFLAGS is sane.
local headers_only_CC=$(tc-getBUILD_CC)
+
+ 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.
+ # It's not sufficient to shove the flags into CPPFLAGS, they need
+ # to really go *everywhere*.
+ headers_only_CC="${headers_only_CC} -D__riscv_xlen=64 -D__riscv_flen=64 -D__riscv_float_abi_double=1 -D__riscv_atomic=1"
+ ;;
+ esac
+
local headers_only_CFLAGS="-O1 -pipe"
local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}"
local headers_only_LDFLAGS=""