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
This commit is contained in:
MarcoFalke 2019-12-09 12:48:45 -05:00 committed by UdjinM6
parent 4fcd7850b0
commit 578fac1743
4 changed files with 19 additions and 3 deletions

2
depends/.gitignore vendored
View File

@ -8,5 +8,7 @@ i686*
mips* mips*
arm* arm*
aarch64* aarch64*
powerpc*
riscv32* riscv32*
riscv64* riscv64*
s390x*

View File

@ -245,7 +245,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* riscv32* riscv64* @rm -rf $(SOURCES_PATH) x86_64* i686* mips* arm* aarch64* powerpc* riscv32* riscv64* s390x*
clean: clean:
@rm -rf $(WORK_PATH) $(BASE_CACHE) $(BUILD) @rm -rf $(WORK_PATH) $(BASE_CACHE) $(BUILD)

View File

@ -12,13 +12,13 @@ For example:
make HOST=x86_64-w64-mingw32 -j4 make HOST=x86_64-w64-mingw32 -j4
**Dash's configure script by default will ignore the depends output.** In **Dash 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, 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 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 build. In the above example, a prefix dir named x86_64-w64-mingw32 will be
created. To use it for Dash: created. To use it for Dash:
./configure --prefix=`pwd`/depends/x86_64-w64-mingw32 ./configure --prefix=$PWD/depends/x86_64-w64-mingw32
Common `host-platform-triplets` for cross compilation are: Common `host-platform-triplets` for cross compilation are:
@ -28,8 +28,11 @@ Common `host-platform-triplets` for cross compilation are:
- `x86_64-apple-darwin19` for macOS - `x86_64-apple-darwin19` 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
- `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 - `riscv32-linux-gnu` for Linux RISC-V 32 bit
- `riscv64-linux-gnu` for Linux RISC-V 64 bit - `riscv64-linux-gnu` for Linux RISC-V 64 bit
- `s390x-linux-gnu` for Linux S390X
- `armv7a-linux-android` for Android ARM 32 bit - `armv7a-linux-android` for Android ARM 32 bit
- `aarch64-linux-android` for Android ARM 64 bit - `aarch64-linux-android` for Android ARM 64 bit
- `i686-linux-android` for Android x86 32 bit - `i686-linux-android` for Android x86 32 bit
@ -66,6 +69,10 @@ For linux AARCH64 cross compilation:
sudo apt-get install g++-aarch64-linux-gnu binutils-aarch64-linux-gnu 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): 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 sudo apt-get install g++-riscv64-linux-gnu binutils-riscv64-linux-gnu
@ -73,6 +80,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_dash` executable (see https://github.com/bitcoin/bitcoin/pull/13543), RISC-V known issue: gcc-7.3.0 and gcc-7.3.1 result in a broken `test_dash` executable (see https://github.com/bitcoin/bitcoin/pull/13543),
this is apparently fixed in gcc-8.1.0. 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 ### Dependency Options
The following can be set when running make: `make FOO=bar` The following can be set when running make: `make FOO=bar`

View File

@ -151,7 +151,10 @@ else
$(package)_config_opts_x86_64_linux = -xplatform linux-g++-64 $(package)_config_opts_x86_64_linux = -xplatform linux-g++-64
endif endif
$(package)_config_opts_aarch64_linux = -xplatform linux-aarch64-gnu-g++ $(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_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-opengl
$(package)_config_opts_mingw32 += -no-dbus $(package)_config_opts_mingw32 += -no-dbus