aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2019-08-21 14:49:09 -0500
committerluigi1111 <luigi1111w@gmail.com>2019-08-21 14:49:09 -0500
commit1b373185aa2c9df3ffccc4204f91839c8768e466 (patch)
tree7ad0de35887022ec0036593111089116c662dffd
parentMerge pull request #5511 (diff)
parentAdd depends riscv 64 bit support (diff)
downloadmonero-1b373185aa2c9df3ffccc4204f91839c8768e466.tar.xz
Merge pull request #5702
13c0b8c Add depends riscv 64 bit support (TheCharlatan)
-rw-r--r--.travis.yml2
-rw-r--r--README.md2
-rw-r--r--contrib/depends/README.md1
-rw-r--r--contrib/depends/packages/ldns.mk4
-rw-r--r--contrib/depends/packages/openssl.mk1
-rw-r--r--contrib/depends/packages/packages.mk6
-rw-r--r--contrib/depends/toolchain.cmake.in5
7 files changed, 20 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml
index d83675869..07b92aaff 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,6 +18,8 @@ env:
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
- DOCKER_PACKAGES="build-essential libtool cmake autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache"
matrix:
+# RISCV 64bit
+ - HOST=riscv64-linux-gnu PACKAGES="python3 gperf g++-riscv64-linux-gnu"
# ARM v7
- HOST=arm-linux-gnueabihf PACKAGES="python3 gperf g++-arm-linux-gnueabihf"
# ARM v8
diff --git a/README.md b/README.md
index 1636ae856..4af4c7764 100644
--- a/README.md
+++ b/README.md
@@ -535,6 +535,8 @@ You can also cross-compile static binaries on Linux for Windows and macOS with t
* Requires: `g++-arm-linux-gnueabihf`
* ```make depends target=aarch64-linux-gnu``` for armv8 binaries.
* Requires: `g++-aarch64-linux-gnu`
+* ```make depends target=riscv64-linux-gnu``` for RISC V 64 bit binaries.
+ * Requires: `g++-riscv64-linux-gnu`
The required packages are the names for each toolchain on apt. Depending on your distro, they may have different names.
diff --git a/contrib/depends/README.md b/contrib/depends/README.md
index 6a15055b4..10866acbe 100644
--- a/contrib/depends/README.md
+++ b/contrib/depends/README.md
@@ -33,6 +33,7 @@ Common `host-platform-triplets` for cross compilation are:
- `x86_64-apple-darwin11` for MacOSX
- `arm-linux-gnueabihf` for Linux ARM 32 bit
- `aarch64-linux-gnu` for Linux ARM 64 bit
+- `riscv64-linux-gnu` for Linux RISCV 64 bit
No other options are needed, the paths are automatically configured.
diff --git a/contrib/depends/packages/ldns.mk b/contrib/depends/packages/ldns.mk
index ea4902170..6fbcc3466 100644
--- a/contrib/depends/packages/ldns.mk
+++ b/contrib/depends/packages/ldns.mk
@@ -12,6 +12,10 @@ define $(package)_set_vars
$(package)_config_opts_linux=--with-pic
endef
+define $(package)_preprocess_cmds
+ cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
+endef
+
define $(package)_config_cmds
$($(package)_autoconf)
endef
diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk
index e39dc1d04..8d08900f5 100644
--- a/contrib/depends/packages/openssl.mk
+++ b/contrib/depends/packages/openssl.mk
@@ -40,6 +40,7 @@ $(package)_config_opts_x86_64_linux=linux-x86_64
$(package)_config_opts_i686_linux=linux-generic32
$(package)_config_opts_arm_linux=linux-generic32
$(package)_config_opts_aarch64_linux=linux-generic64
+$(package)_config_opts_riscv64_linux=linux-generic64
$(package)_config_opts_mipsel_linux=linux-generic32
$(package)_config_opts_mips_linux=linux-generic32
$(package)_config_opts_powerpc_linux=linux-generic32
diff --git a/contrib/depends/packages/packages.mk b/contrib/depends/packages/packages.mk
index 562f4f7d6..1e5a74670 100644
--- a/contrib/depends/packages/packages.mk
+++ b/contrib/depends/packages/packages.mk
@@ -4,13 +4,17 @@ native_packages := native_ccache native_protobuf
darwin_native_packages = native_biplist native_ds_store native_mac_alias
darwin_packages = sodium-darwin ncurses readline
-linux_packages = eudev ncurses readline unwind sodium
+linux_packages = eudev ncurses readline sodium
qt_packages = qt
ifeq ($(build_tests),ON)
packages += gtest
endif
+ifneq ($(host_arch),riscv64)
+ packages += unwind
+endif
+
ifeq ($(host_os),mingw32)
packages += icu4c
packages += sodium
diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in
index ee0407a5e..b748f5c55 100644
--- a/contrib/depends/toolchain.cmake.in
+++ b/contrib/depends/toolchain.cmake.in
@@ -98,6 +98,11 @@ elseif(ARCHITECTURE STREQUAL "aarch64")
set(BUILD_64 ON)
endif()
+if(ARCHITECTURE STREQUAL "riscv64")
+ set(NO_AES ON)
+ set(ARCH "rv64imafdc")
+endif()
+
if(ARCHITECTURE STREQUAL "i686" AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
SET(LINUX_32 ON)
SET(ARCH_ID "i386")