This commit is contained in:
Hennadii Stepanov 2025-04-29 11:53:20 +02:00 committed by GitHub
commit b853b35d81
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 29 additions and 49 deletions

View file

@ -6,11 +6,12 @@
export LC_ALL=C.UTF-8 export LC_ALL=C.UTF-8
export HOST=i686-pc-linux-gnu export HOST=i686-linux-gnu
export DPKG_ADD_ARCH="i386"
export CONTAINER_NAME=ci_i686_multiprocess export CONTAINER_NAME=ci_i686_multiprocess
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04" export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
export CI_IMAGE_PLATFORM="linux/amd64" export CI_IMAGE_PLATFORM="linux/amd64"
export PACKAGES="llvm clang g++-multilib" export PACKAGES="llvm clang g++-i686-linux-gnu binutils-i686-linux-gnu libstdc++6:i386 libatomic1:i386"
export DEP_OPTS="DEBUG=1 MULTIPROCESS=1" export DEP_OPTS="DEBUG=1 MULTIPROCESS=1"
export GOAL="install" export GOAL="install"
export TEST_RUNNER_EXTRA="--v2transport" export TEST_RUNNER_EXTRA="--v2transport"

View file

@ -165,20 +165,14 @@ export TZ="UTC"
# Depends Building # # Depends Building #
#################### ####################
# Build the depends tree, overriding variables that assume multilib gcc # Build the depends tree
make -C depends --jobs="$JOBS" HOST="$HOST" \ make -C depends --jobs="$JOBS" HOST="$HOST" \
${V:+V=1} \ ${V:+V=1} \
${SOURCES_PATH+SOURCES_PATH="$SOURCES_PATH"} \ ${SOURCES_PATH+SOURCES_PATH="$SOURCES_PATH"} \
${BASE_CACHE+BASE_CACHE="$BASE_CACHE"} \ ${BASE_CACHE+BASE_CACHE="$BASE_CACHE"} \
${SDK_PATH+SDK_PATH="$SDK_PATH"} \ ${SDK_PATH+SDK_PATH="$SDK_PATH"} \
${build_CC+build_CC="$build_CC"} \ ${build_CC+build_CC="$build_CC"} \
${build_CXX+build_CXX="$build_CXX"} \ ${build_CXX+build_CXX="$build_CXX"}
x86_64_linux_CC=x86_64-linux-gnu-gcc \
x86_64_linux_CXX=x86_64-linux-gnu-g++ \
x86_64_linux_AR=x86_64-linux-gnu-gcc-ar \
x86_64_linux_RANLIB=x86_64-linux-gnu-gcc-ranlib \
x86_64_linux_NM=x86_64-linux-gnu-gcc-nm \
x86_64_linux_STRIP=x86_64-linux-gnu-strip
case "$HOST" in case "$HOST" in
*darwin*) *darwin*)

View file

@ -4,7 +4,7 @@ To build dependencies for the current arch+OS:
make make
To build for another arch/OS: To build for another arch+OS:
make HOST=host-platform-triplet make HOST=host-platform-triplet
@ -22,17 +22,17 @@ created. To use it during configuring Bitcoin Core:
Common `host-platform-triplet`s for cross compilation are: Common `host-platform-triplet`s for cross compilation are:
- `i686-pc-linux-gnu` for Linux x86 32 bit - `i686-linux-gnu` for Linux x86 32-bit
- `x86_64-pc-linux-gnu` for Linux x86 64 bit - `x86_64-linux-gnu` for Linux x86 64-bit
- `x86_64-w64-mingw32` for Win64 - `x86_64-w64-mingw32` for Windows
- `x86_64-apple-darwin` for macOS - `x86_64-apple-darwin` for macOS
- `arm64-apple-darwin` for ARM macOS - `arm64-apple-darwin` for ARM 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) - `powerpc64-linux-gnu` for Linux POWER 64-bit (big endian)
- `powerpc64le-linux-gnu` for Linux POWER 64 bit (little 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 - `s390x-linux-gnu` for Linux S390X
The paths are automatically configured and no other options are needed. The paths are automatically configured and no other options are needed.
@ -62,29 +62,35 @@ For more information, see [SDK Extraction](../contrib/macdeploy/README.md#sdk-ex
apt install g++-mingw-w64-x86-64-posix apt install g++-mingw-w64-x86-64-posix
#### For linux (including i386, ARM) cross compilation #### For Linux cross compilation
Common linux dependencies: Please note that package availability might depend on your arch+OS your are building on.
sudo apt-get install g++-multilib binutils For Linux x86 32-bit cross compilation:
For linux ARM cross compilation: sudo apt-get install g++-i686-linux-gnu binutils-i686-linux-gnu
For Linux x86 64-bit cross compilation:
sudo apt-get install g++-x86-64-linux-gnu binutils-x86-64-linux-gnu
For Linux ARM 32-bit cross compilation:
sudo apt-get install g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf sudo apt-get install g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf
For linux AARCH64 cross compilation: For Linux ARM 64-bit 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): 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 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
For linux S390X cross compilation: For Linux S390X cross compilation:
sudo apt-get install g++-s390x-linux-gnu binutils-s390x-linux-gnu sudo apt-get install g++-s390x-linux-gnu binutils-s390x-linux-gnu

View file

@ -19,27 +19,6 @@ linux_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
# https://libcxx.llvm.org/Hardening.html # https://libcxx.llvm.org/Hardening.html
linux_debug_CPPFLAGS+=-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG linux_debug_CPPFLAGS+=-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG
ifeq (86,$(findstring 86,$(build_arch)))
i686_linux_CC=gcc -m32
i686_linux_CXX=g++ -m32
i686_linux_AR=ar
i686_linux_RANLIB=ranlib
i686_linux_NM=nm
i686_linux_STRIP=strip
x86_64_linux_CC=gcc -m64
x86_64_linux_CXX=g++ -m64
x86_64_linux_AR=ar
x86_64_linux_RANLIB=ranlib
x86_64_linux_NM=nm
x86_64_linux_STRIP=strip
else
i686_linux_CC=$(default_host_CC) -m32
i686_linux_CXX=$(default_host_CXX) -m32
x86_64_linux_CC=$(default_host_CC) -m64
x86_64_linux_CXX=$(default_host_CXX) -m64
endif
linux_cmake_system_name=Linux linux_cmake_system_name=Linux
# Refer to doc/dependencies.md for the minimum required kernel. # Refer to doc/dependencies.md for the minimum required kernel.
linux_cmake_system_version=3.17.0 linux_cmake_system_version=3.17.0