Merge #13543: depends: Add RISC-V support
974f0bf8e6
depends: Mention RISC-V known compilation issue with gcc-7.3.x (Wladimir J. van der Laan)0d1f38c45f
depends: update zmq config.guess/config.sub for riscv support (fanquake)409481c465
depends: latest config.sub (fanquake)d7005e9988
depends: latest config.guess (fanquake)359e2e3525
depends: Add RISC-V support (Wladimir J. van der Laan) Pull request description: This adds support for riscv32 and riscv64 builds to the depends system. The change consists of documentation and build system changes. The most significant change is an update of `config.sub` and `config.guess` inside zeromq patch, as the current version does not recognize the `riscv*` host tuples (there's no new version of ZeroMQ yet with newer ones). Good thing: RISC-V 64-bit toolchain packages can be installed out of the box on Ubuntu 18.04+. I would also like to add RISC-V 64-bit executables to gitian, but this will not be possible until #12511 . Tree-SHA512: 358ed72ee9e4ae44e7d305c09a4ff5ce5460eeb7ed915eb25d39c8f43b61e7b347f51bf0ae5d83ddb4ce8876dea7703c926b3baa3cccb4932b3bc17160d801bb
This commit is contained in:
commit
6c6a3001e5
7 changed files with 776 additions and 755 deletions
2
depends/.gitignore
vendored
2
depends/.gitignore
vendored
|
@ -8,3 +8,5 @@ i686*
|
||||||
mips*
|
mips*
|
||||||
arm*
|
arm*
|
||||||
aarch64*
|
aarch64*
|
||||||
|
riscv32*
|
||||||
|
riscv64*
|
||||||
|
|
|
@ -167,7 +167,7 @@ $(host_prefix)/share/config.site: check-packages
|
||||||
check-packages: check-sources
|
check-packages: check-sources
|
||||||
|
|
||||||
clean-all: clean
|
clean-all: clean
|
||||||
@rm -rf $(SOURCES_PATH) x86_64* i686* mips* arm* aarch64*
|
@rm -rf $(SOURCES_PATH) x86_64* i686* mips* arm* aarch64* riscv32* riscv64*
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -rf $(WORK_PATH) $(BASE_CACHE) $(BUILD)
|
@rm -rf $(WORK_PATH) $(BASE_CACHE) $(BUILD)
|
||||||
|
|
|
@ -25,6 +25,8 @@ Common `host-platform-triplets` for cross compilation are:
|
||||||
- `x86_64-apple-darwin11` for macOS
|
- `x86_64-apple-darwin11` for macOS
|
||||||
- `arm-linux-gnueabihf` for Linux ARM 32 bit
|
- `arm-linux-gnueabihf` for Linux ARM 32 bit
|
||||||
- `aarch64-linux-gnu` for Linux ARM 64 bit
|
- `aarch64-linux-gnu` for Linux ARM 64 bit
|
||||||
|
- `riscv32-linux-gnu` for Linux RISC-V 32 bit
|
||||||
|
- `riscv64-linux-gnu` for Linux RISC-V 64 bit
|
||||||
|
|
||||||
No other options are needed, the paths are automatically configured.
|
No other options are needed, the paths are automatically configured.
|
||||||
|
|
||||||
|
@ -43,6 +45,12 @@ For linux (including i386, ARM) cross compilation:
|
||||||
|
|
||||||
sudo apt-get install curl g++-aarch64-linux-gnu g++-4.8-aarch64-linux-gnu gcc-4.8-aarch64-linux-gnu binutils-aarch64-linux-gnu g++-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf gcc-4.8-arm-linux-gnueabihf binutils-arm-linux-gnueabihf g++-4.8-multilib gcc-4.8-multilib binutils-gold bsdmainutils
|
sudo apt-get install curl g++-aarch64-linux-gnu g++-4.8-aarch64-linux-gnu gcc-4.8-aarch64-linux-gnu binutils-aarch64-linux-gnu g++-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf gcc-4.8-arm-linux-gnueabihf binutils-arm-linux-gnueabihf g++-4.8-multilib gcc-4.8-multilib binutils-gold bsdmainutils
|
||||||
|
|
||||||
|
For linux RISC-V 64-bit cross compilation (there are no packages for 32-bit):
|
||||||
|
|
||||||
|
sudo apt-get install curl g++-riscv64-linux-gnu binutils-riscv64-linux-gnu
|
||||||
|
|
||||||
|
RISC-V known issue: gcc-7.3.0 and gcc-7.3.1 result in a broken `test_bitcoin` executable (see https://github.com/bitcoin/bitcoin/pull/13543),
|
||||||
|
this is apparently fixed in gcc-8.1.0.
|
||||||
|
|
||||||
Dependency Options:
|
Dependency Options:
|
||||||
The following can be set when running make: make FOO=bar
|
The following can be set when running make: make FOO=bar
|
||||||
|
|
16
depends/config.guess
vendored
16
depends/config.guess
vendored
|
@ -2,7 +2,7 @@
|
||||||
# Attempt to guess a canonical system name.
|
# Attempt to guess a canonical system name.
|
||||||
# Copyright 1992-2018 Free Software Foundation, Inc.
|
# Copyright 1992-2018 Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2018-01-26'
|
timestamp='2018-07-06'
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by
|
# under the terms of the GNU General Public License as published by
|
||||||
|
@ -101,12 +101,12 @@ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && e
|
||||||
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
|
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
|
||||||
: ${TMPDIR=/tmp} ;
|
: ${TMPDIR=/tmp} ;
|
||||||
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
|
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
|
||||||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
|
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp 2>/dev/null) ; } ||
|
||||||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
|
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
|
||||||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
|
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
|
||||||
dummy=$tmp/dummy ;
|
dummy=$tmp/dummy ;
|
||||||
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
|
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
|
||||||
case $CC_FOR_BUILD,$HOST_CC,$CC in
|
case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
|
||||||
,,) echo "int x;" > "$dummy.c" ;
|
,,) echo "int x;" > "$dummy.c" ;
|
||||||
for c in cc gcc c89 c99 ; do
|
for c in cc gcc c89 c99 ; do
|
||||||
if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
|
if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
|
||||||
|
@ -237,7 +237,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
|
||||||
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
|
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
|
||||||
# contains redundant information, the shorter form:
|
# contains redundant information, the shorter form:
|
||||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
|
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
|
||||||
echo "$machine-${os}${release}${abi}"
|
echo "$machine-${os}${release}${abi-}"
|
||||||
exit ;;
|
exit ;;
|
||||||
*:Bitrig:*:*)
|
*:Bitrig:*:*)
|
||||||
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
|
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
|
||||||
|
@ -894,8 +894,8 @@ EOF
|
||||||
# other systems with GNU libc and userland
|
# other systems with GNU libc and userland
|
||||||
echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
|
echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:Minix:*:*)
|
*:Minix:*:*)
|
||||||
echo "$UNAME_MACHINE"-pc-minix
|
echo "$UNAME_MACHINE"-unknown-minix
|
||||||
exit ;;
|
exit ;;
|
||||||
aarch64:Linux:*:*)
|
aarch64:Linux:*:*)
|
||||||
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
|
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
|
||||||
|
@ -1469,7 +1469,7 @@ EOF
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-functions 'time-stamp)
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
# time-stamp-start: "timestamp='"
|
# time-stamp-start: "timestamp='"
|
||||||
# time-stamp-format: "%:y-%02m-%02d"
|
# time-stamp-format: "%:y-%02m-%02d"
|
||||||
# time-stamp-end: "'"
|
# time-stamp-end: "'"
|
||||||
|
|
1484
depends/config.sub
vendored
1484
depends/config.sub
vendored
File diff suppressed because it is too large
Load diff
|
@ -52,6 +52,8 @@ $(package)_config_opts_aarch64_linux=linux-generic64
|
||||||
$(package)_config_opts_mipsel_linux=linux-generic32
|
$(package)_config_opts_mipsel_linux=linux-generic32
|
||||||
$(package)_config_opts_mips_linux=linux-generic32
|
$(package)_config_opts_mips_linux=linux-generic32
|
||||||
$(package)_config_opts_powerpc_linux=linux-generic32
|
$(package)_config_opts_powerpc_linux=linux-generic32
|
||||||
|
$(package)_config_opts_riscv32_linux=linux-generic32
|
||||||
|
$(package)_config_opts_riscv64_linux=linux-generic64
|
||||||
$(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc
|
$(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc
|
||||||
$(package)_config_opts_x86_64_mingw32=mingw64
|
$(package)_config_opts_x86_64_mingw32=mingw64
|
||||||
$(package)_config_opts_i686_mingw32=mingw
|
$(package)_config_opts_i686_mingw32=mingw
|
||||||
|
|
|
@ -13,7 +13,8 @@ endef
|
||||||
|
|
||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
patch -p1 < $($(package)_patch_dir)/0001-fix-build-with-older-mingw64.patch && \
|
patch -p1 < $($(package)_patch_dir)/0001-fix-build-with-older-mingw64.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/0002-disable-pthread_set_name_np.patch
|
patch -p1 < $($(package)_patch_dir)/0002-disable-pthread_set_name_np.patch && \
|
||||||
|
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub config
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_config_cmds
|
define $(package)_config_cmds
|
||||||
|
|
Loading…
Reference in a new issue