dist: enable libbacktrace on ARM and ARM64

(and make sure it will work on Windows, when enabled)
This commit is contained in:
Ștefan Talpalaru 2021-03-14 04:19:11 +01:00 committed by zah
parent eafe694536
commit c5035c6eca
2 changed files with 19 additions and 7 deletions

View File

@ -32,23 +32,37 @@ if [[ "${PLATFORM}" == "Windows_amd64" ]]; then
deps-common build/generate_makefile deps-common build/generate_makefile
# This can be reduced to `make CC=... ...` when it becomes possible to # This can be reduced to `make CC=... ...` when it becomes possible to
# replace `CC=gcc` with `CC=$(CC)` in "vendor/nimbus-build-system/makefiles/targets.mk". # replace `CC=gcc` with `CC=$(CC)` in "vendor/nimbus-build-system/makefiles/targets.mk".
CC=x86_64-w64-mingw32.static-gcc
CXX=x86_64-w64-mingw32.static-g++
make \ make \
-j$(nproc) \ -j$(nproc) \
-C vendor/nim-nat-traversal/vendor/miniupnp/miniupnpc \ -C vendor/nim-nat-traversal/vendor/miniupnp/miniupnpc \
-f Makefile.mingw \ -f Makefile.mingw \
CC=x86_64-w64-mingw32.static-gcc \ CC="${CC}" \
libminiupnpc.a &>/dev/null libminiupnpc.a &>/dev/null
make \ make \
-j$(nproc) \ -j$(nproc) \
-C vendor/nim-nat-traversal/vendor/libnatpmp-upstream \ -C vendor/nim-nat-traversal/vendor/libnatpmp-upstream \
CC=x86_64-w64-mingw32.static-gcc \ CC="${CC}" \
CFLAGS="-Wall -Os -DWIN32 -DNATPMP_STATICLIB -DENABLE_STRNATPMPERR -DNATPMP_MAX_RETRIES=4 ${CFLAGS}" \ CFLAGS="-Wall -Os -DWIN32 -DNATPMP_STATICLIB -DENABLE_STRNATPMPERR -DNATPMP_MAX_RETRIES=4 ${CFLAGS}" \
libnatpmp.a &>/dev/null libnatpmp.a &>/dev/null
# We set CXX and add CXXFLAGS for libunwind's C++ code, even though we don't
# use those C++ objects. I don't see an easy way of disabling the C++ parts in
# libunwind itself.
#
# "libunwind.a" combines objects produced from C and C++ code. Even though we
# don't link any C++-generated objects, the linker still checks them for
# undefined symbols, so we're forced to use g++ as a linker wrapper.
# For some reason, macOS's Clang doesn't need this trick, nor do native (and
# newer) Mingw-w64 toolchains on Windows.
make \ make \
-j$(nproc) \ -j$(nproc) \
USE_LIBBACKTRACE=0 \ CC="${CC}" \
CXX="${CXX}" \
CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS -D_WIN32_WINNT=0x0600" \
USE_VENDORED_LIBUNWIND=1 \
LOG_LEVEL="TRACE" \ LOG_LEVEL="TRACE" \
NIMFLAGS="-d:disableMarchNative -d:chronicles_sinks=textlines -d:chronicles_colors=none --os:windows --gcc.exe=x86_64-w64-mingw32.static-gcc --gcc.linkerexe=x86_64-w64-mingw32.static-gcc --passL:-static" \ NIMFLAGS="-d:disableMarchNative -d:chronicles_sinks=textlines -d:chronicles_colors=none --os:windows --gcc.exe=${CC} --gcc.linkerexe=${CXX} --passL:-static" \
${BINARIES} ${BINARIES}
elif [[ "${PLATFORM}" == "Linux_arm32v7" ]]; then elif [[ "${PLATFORM}" == "Linux_arm32v7" ]]; then
CC="arm-linux-gnueabihf-gcc" CC="arm-linux-gnueabihf-gcc"
@ -59,7 +73,6 @@ elif [[ "${PLATFORM}" == "Linux_arm32v7" ]]; then
deps-common build/generate_makefile deps-common build/generate_makefile
make \ make \
-j$(nproc) \ -j$(nproc) \
USE_LIBBACKTRACE=0 \
LOG_LEVEL="TRACE" \ LOG_LEVEL="TRACE" \
CC="${CC}" \ CC="${CC}" \
NIMFLAGS="-d:disableMarchNative -d:chronicles_sinks=textlines -d:chronicles_colors=none --cpu:arm --gcc.exe=${CC} --gcc.linkerexe=${CC}" \ NIMFLAGS="-d:disableMarchNative -d:chronicles_sinks=textlines -d:chronicles_colors=none --cpu:arm --gcc.exe=${CC} --gcc.linkerexe=${CC}" \
@ -74,7 +87,6 @@ elif [[ "${PLATFORM}" == "Linux_arm64v8" ]]; then
deps-common build/generate_makefile deps-common build/generate_makefile
make \ make \
-j$(nproc) \ -j$(nproc) \
USE_LIBBACKTRACE=0 \
LOG_LEVEL="TRACE" \ LOG_LEVEL="TRACE" \
CC="${CC}" \ CC="${CC}" \
NIMFLAGS="-d:disableMarchNative -d:chronicles_sinks=textlines -d:chronicles_colors=none --cpu:arm64 --gcc.exe=${CC} --gcc.linkerexe=${CC}" \ NIMFLAGS="-d:disableMarchNative -d:chronicles_sinks=textlines -d:chronicles_colors=none --cpu:arm64 --gcc.exe=${CC} --gcc.linkerexe=${CC}" \

@ -1 +1 @@
Subproject commit 8121c08e0e7bdf92f86012b4af2330434fa7ed5d Subproject commit 40be35148e87747666c3afd78fa678079406eac7