diff options
author | MarcoFalke <falke.marco@gmail.com> | 2019-12-09 12:48:45 -0500 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2019-12-09 12:48:56 -0500 |
commit | 1d6fda65dd4100079a13fddeca3b17b986bb58e7 (patch) | |
tree | fdb18e465a4b6c91bffb4edf7c6645e51a4ab526 | |
parent | ac09180128a1d2c7d198fa1e08095a46f54831f9 (diff) | |
parent | 11113247c323c5b98debcb512fb9db9fe5a8e7cf (diff) | |
download | bitcoin-1d6fda65dd4100079a13fddeca3b17b986bb58e7.tar.xz |
Merge #17678: depends: Support for S390X and POWER targets
11113247c323c5b98debcb512fb9db9fe5a8e7cf depends: Support for S390X targets (MarcoFalke)
989fd539d5bf590c5f6070ee2a4a9e2d3018df2c depends: Support for 64-bit POWER targets (Luke Dashjr)
Pull request description:
Failure before:
```
$ make -C depends HOST=powerpc64-linux-gnu
...
ERROR: Feature 'system-zlib' was enabled, but the pre-condition 'libs.zlib' failed.
ERROR: Feature 'xcb' was enabled, but the pre-condition 'libs.xcb' failed.
ERROR: Feature 'system-freetype' was enabled, but the pre-condition 'features.freetype && libs.freetype' failed.
ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed.
make: *** [funcs.mk:254: /bitcoin/depends/work/build/powerpc64-linux-gnu/qt/5.9.8-95548079095/qtbase/.stamp_configured] Error 3
$ make -C depends HOST=s390x-linux-gnu
...
ERROR: Feature 'system-zlib' was enabled, but the pre-condition 'libs.zlib' failed.
ERROR: Feature 'xcb' was enabled, but the pre-condition 'libs.xcb' failed.
ERROR: Feature 'system-freetype' was enabled, but the pre-condition 'features.freetype && libs.freetype' failed.
ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed.
make: *** [funcs.mk:254: /bitcoin/depends/work/build/s390x-linux-gnu/qt/5.9.8-79c6d6ca6ec/qtbase/.stamp_configured] Error 3
```
ACKs for top commit:
laanwj:
Code review ACK 11113247c323c5b98debcb512fb9db9fe5a8e7cf
dongcarl:
tested ACK 11113247c323c5b98debcb512fb9db9fe5a8e7cf
practicalswift:
ACK 11113247c323c5b98debcb512fb9db9fe5a8e7cf -- diff looks correct
Tree-SHA512: f990101ced0ed579168bb25762c1296c9b512c597bab924013af41832670a69ed786c6ec9b654c95fe064187797880a66c575395bc102a914c1bdb323ca7538a
-rw-r--r-- | depends/.gitignore | 2 | ||||
-rw-r--r-- | depends/Makefile | 2 | ||||
-rw-r--r-- | depends/README.md | 15 | ||||
-rw-r--r-- | depends/packages/qt.mk | 3 |
4 files changed, 19 insertions, 3 deletions
diff --git a/depends/.gitignore b/depends/.gitignore index 72734102c5..19c506ce54 100644 --- a/depends/.gitignore +++ b/depends/.gitignore @@ -8,5 +8,7 @@ i686* mips* arm* aarch64* +powerpc* riscv32* riscv64* +s390x* diff --git a/depends/Makefile b/depends/Makefile index 8706e013f9..f81bc3001b 100644 --- a/depends/Makefile +++ b/depends/Makefile @@ -191,7 +191,7 @@ $(host_prefix)/share/config.site: check-packages check-packages: check-sources clean-all: clean - @rm -rf $(SOURCES_PATH) x86_64* i686* mips* arm* aarch64* riscv32* riscv64* + @rm -rf $(SOURCES_PATH) x86_64* i686* mips* arm* aarch64* powerpc* riscv32* riscv64* s390x* clean: @rm -rf $(WORK_PATH) $(BASE_CACHE) $(BUILD) diff --git a/depends/README.md b/depends/README.md index e382e8a200..93f619983f 100644 --- a/depends/README.md +++ b/depends/README.md @@ -12,13 +12,13 @@ For example: make HOST=x86_64-w64-mingw32 -j4 -**Bitcoin's configure script by default will ignore the depends output.** In +**Bitcoin Core's configure script by default will ignore the depends output.** In order for it to pick up libraries, tools, and settings from the depends build, you must point it at the appropriate `--prefix` directory generated by the build. In the above example, a prefix dir named x86_64-w64-mingw32 will be created. To use it for Bitcoin: - ./configure --prefix=`pwd`/depends/x86_64-w64-mingw32 + ./configure --prefix=$PWD/depends/x86_64-w64-mingw32 Common `host-platform-triplets` for cross compilation are: @@ -28,8 +28,11 @@ Common `host-platform-triplets` for cross compilation are: - `x86_64-apple-darwin16` for macOS - `arm-linux-gnueabihf` for Linux ARM 32 bit - `aarch64-linux-gnu` for Linux ARM 64 bit +- `powerpc64-linux-gnu` for Linux POWER 64-bit (big endian) +- `powerpc64le-linux-gnu` for Linux POWER 64-bit (little endian) - `riscv32-linux-gnu` for Linux RISC-V 32 bit - `riscv64-linux-gnu` for Linux RISC-V 64 bit +- `s390x-linux-gnu` for Linux S390X - `armv7a-linux-android` for Android ARM 32 bit - `aarch64-linux-android` for Android ARM 64 bit - `i686-linux-android` for Android x86 32 bit @@ -61,6 +64,10 @@ For linux AARCH64 cross compilation: sudo apt-get install g++-aarch64-linux-gnu binutils-aarch64-linux-gnu +For linux POWER 64-bit cross compilation (there are no packages for 32-bit): + + sudo apt-get install g++-powerpc64-linux-gnu binutils-powerpc64-linux-gnu g++-powerpc64le-linux-gnu binutils-powerpc64le-linux-gnu + For linux RISC-V 64-bit cross compilation (there are no packages for 32-bit): sudo apt-get install g++-riscv64-linux-gnu binutils-riscv64-linux-gnu @@ -68,6 +75,10 @@ For linux RISC-V 64-bit cross compilation (there are no packages for 32-bit): 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. +For linux S390X cross compilation: + + sudo apt-get install g++-s390x-linux-gnu binutils-s390x-linux-gnu + ### Dependency Options The following can be set when running make: make FOO=bar diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk index f1d234ccf6..2087fec14d 100644 --- a/depends/packages/qt.mk +++ b/depends/packages/qt.mk @@ -129,7 +129,10 @@ $(package)_config_opts_arm_linux += -platform linux-g++ -xplatform bitcoin-linux $(package)_config_opts_i686_linux = -xplatform linux-g++-32 $(package)_config_opts_x86_64_linux = -xplatform linux-g++-64 $(package)_config_opts_aarch64_linux = -xplatform linux-aarch64-gnu-g++ +$(package)_config_opts_powerpc64_linux = -platform linux-g++ -xplatform bitcoin-linux-g++ +$(package)_config_opts_powerpc64le_linux = -platform linux-g++ -xplatform bitcoin-linux-g++ $(package)_config_opts_riscv64_linux = -platform linux-g++ -xplatform bitcoin-linux-g++ +$(package)_config_opts_s390x_linux = -platform linux-g++ -xplatform bitcoin-linux-g++ $(package)_config_opts_mingw32 = -no-opengl $(package)_config_opts_mingw32 += -no-dbus |