mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
Merge #6384: backport: merge bitcoin#22380, #25838, #25917, #26059, #26578, #27798, #27676, #27999, #28337, #28422, #28630, #28783, partial bitcoin#24866, #25612 (toolchain backports: part 1)
d7cb92aa7a
merge bitcoin#28783: remove `-bind_at_load` usage (Kittywhiskers Van Gogh)019c9dd7f4
partial bitcoin#25612: default to using GCC tool wrappers for LTO (with GCC) (Kittywhiskers Van Gogh)9e0b93568b
partial bitcoin#24866: No longer need to hack the `PATH` variable in `config.site` (Kittywhiskers Van Gogh)5dbc83bef1
merge bitcoin#28630: update `LD64_VERSION` to 711 (Kittywhiskers Van Gogh)b265352c7a
merge bitcoin#28422: cctools 986, ld64 711 & libtapi 1300.0.6.5 (Kittywhiskers Van Gogh)fe94154851
merge bitcoin#28337: use Clang 15 for macOS cross-compilation (Kittywhiskers Van Gogh)ba281413b0
ci: add missing `xorriso` `PACKAGES` entry in macOS environment (Kittywhiskers Van Gogh)62b0213c45
merge bitcoin#27999: add macOS test for fixup_chains usage (Kittywhiskers Van Gogh)be175091e6
merge bitcoin#27676: Bump minimum required runtime version and prepare for building with upstream LLVM (Kittywhiskers Van Gogh)9f5d4b3719
merge bitcoin#27798: modernize clang flags for Darwin (Kittywhiskers Van Gogh)54c538d697
merge bitcoin#26578: install binutils, not binutils-gold in depends (Kittywhiskers Van Gogh)d0aae2bd3d
merge bitcoin#26059: revert "Build depends/qt with our platform definition" (Kittywhiskers Van Gogh)9d1cd6255d
merge bitcoin#25917: libnatpmp 07004b97cf691774efebe70404cf22201e4d330d (Kittywhiskers Van Gogh)fff0f6b628
merge bitcoin#25838: Use `mkspecs/bitcoin-linux-g++` for all Linux hosts (Kittywhiskers Van Gogh)8d51bcc171
merge bitcoin#22380: add and use C_STANDARD and CXX_STANDARD in depends (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * Dependent on https://github.com/dashpay/dash/pull/6383 * Dependency for https://github.com/dashpay/dash/pull/6385 * [bitcoin#24866](https://github.com/bitcoin/bitcoin/pull/24866) is partial because f3af4f7 alters the way `dsymutil`'s location is reported, which is relevant due to the build target `osx_debug` ([source](3aa51d6515/src/Makefile.am (L1025-L1026)
)) using `dsymutil` to generate flat dSYM bundles to ensure that stacktraces work as expected (introduced in [dash#3006](1807c47a69 (diff-4cb884d03ebb901069e4ee5de5d02538c40dd9b39919c615d8eaa9d364bbbd77R668-R669)
)) As-is, with the changes, aberrant behaviour is noticeable when running `configure` (see below), where `depends` defines `DSYMUTIL` as being included in the target directory of the `native_clang` package... despite Guix builds using `FORCE_USE_SYSTEM_CLANG` ([source](3aa51d6515/contrib/guix/libexec/build.sh (L206)
)), meaning, the `native_clang` is never staged in `depends` because the build environment natively has it. Attempting to override it in `build.sh` yielded no results. <details> <summary>Run:</summary> ``` [...] checking whether dsymutil needs -flat... ./configure: line 36201: /dash/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-dsymutil: No such file or directory no checking that generated files are newer than configure... done [...] ``` </details> Which eventually results in the build failing <details> <summary>Failure:</summary> ``` make: Entering directory '/distsrc-base/distsrc-22.0.0-beta.1-79-gb284e4c7cd48-x86_64-apple-darwin/src' for i in dashd dash-cli dash-tx dash-wallet test/test_dash qt/dash-qt ; do mkdir -p $i.dSYM/Contents/Resources/DWARF && /dash/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-dsymutil -o $i.dSYM/Contents/Resources/DWARF/$(basename $i) $i &> /dev/null ; done make: *** [Makefile:22468: osx_debug] Error 127 make: Leaving directory '/distsrc-base/distsrc-22.0.0-beta.1-79-gb284e4c7cd48-x86_64-apple-darwin/src' ``` </details> To avoid breakage, the commit overriding `DSYMUTIL` and subsequent changes building on it (portions of [bitcoin#25612](https://github.com/bitcoin/bitcoin/pull/25612)) have been skipped. ## Breaking Changes * The minimum runtime version needed to run Dash Qt is now macOS 11 (Big Sur) ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACKd7cb92aa7a
Tree-SHA512: 28c9ea13adc80a00b501afca286bd0b97e14a272bb50f578df7ab1af6ee8139f563bc5d670f0bfe3632bfab769c8228a76b5bcc51cfb727a54e31ac0f9af7a97
This commit is contained in:
commit
2625984ddf
@ -154,7 +154,7 @@ task:
|
||||
FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh"
|
||||
|
||||
task:
|
||||
name: 'macOS 10.12 [gui, no tests] [jammy]'
|
||||
name: 'macOS 11.0 [gui, no tests] [jammy]'
|
||||
<< : *GLOBAL_TASK_TEMPLATE
|
||||
container:
|
||||
image: ubuntu:jammy
|
||||
|
@ -130,7 +130,7 @@ $(OSX_DMG): deploydir
|
||||
$(XORRISOFS) -D -l -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -o $@ $(APP_DIST_DIR) -- $(if $(SOURCE_DATE_EPOCH),-volume_date all_file_dates =$(SOURCE_DATE_EPOCH))
|
||||
|
||||
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
|
||||
INSTALLNAMETOOL=$(INSTALLNAMETOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR)
|
||||
INSTALL_NAME_TOOL=$(INSTALL_NAME_TOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR)
|
||||
|
||||
deploydir: $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt
|
||||
endif !BUILD_DARWIN
|
||||
|
@ -8,10 +8,13 @@ export LC_ALL=C.UTF-8
|
||||
|
||||
export CONTAINER_NAME=ci_macos_cross
|
||||
export HOST=x86_64-apple-darwin
|
||||
export PACKAGES="cmake libz-dev libtinfo5 python3-setuptools"
|
||||
export PACKAGES="cmake libz-dev python3-setuptools xorriso"
|
||||
export XCODE_VERSION=12.2
|
||||
export XCODE_BUILD_ID=12B45b
|
||||
export RUN_UNIT_TESTS=false
|
||||
export RUN_FUNCTIONAL_TESTS=false
|
||||
export GOAL="all deploy"
|
||||
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner --with-boost-process"
|
||||
|
||||
# False-positive warning is fixed with clang 17, remove this when that version
|
||||
# can be used.
|
||||
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner --with-boost-process LDFLAGS=-Wno-error=unused-command-line-argument"
|
||||
|
15
configure.ac
15
configure.ac
@ -843,7 +843,7 @@ case $host in
|
||||
;;
|
||||
*)
|
||||
AC_PATH_TOOL([DSYMUTIL], [dsymutil], dsymutil)
|
||||
AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], install_name_tool)
|
||||
AC_PATH_TOOL([INSTALL_NAME_TOOL], [install_name_tool], install_name_tool)
|
||||
AC_PATH_TOOL([OTOOL], [otool], otool)
|
||||
AC_PATH_PROGS([XORRISOFS], [xorrisofs], xorrisofs)
|
||||
|
||||
@ -1047,7 +1047,7 @@ dnl "ad_strip" as the symbol for the entry point.
|
||||
if test x$TARGET_OS = xdarwin; then
|
||||
AX_CHECK_LINK_FLAG([[-Wl,-dead_strip]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip"],, [[$LDFLAG_WERROR]])
|
||||
AX_CHECK_LINK_FLAG([[-Wl,-dead_strip_dylibs]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip_dylibs"],, [[$LDFLAG_WERROR]])
|
||||
AX_CHECK_LINK_FLAG([[-Wl,-bind_at_load]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-bind_at_load"],, [[$LDFLAG_WERROR]])
|
||||
AX_CHECK_LINK_FLAG([[-Wl,-fixup_chains]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-fixup_chains"], [], [[$LDFLAG_WERROR]])
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS([endian.h sys/endian.h byteswap.h stdio.h stdlib.h unistd.h strings.h sys/types.h sys/stat.h sys/select.h sys/prctl.h sys/sysctl.h vm/vm_param.h sys/vmmeter.h sys/resources.h])
|
||||
@ -1955,6 +1955,17 @@ case ${OS} in
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl An old hack similar to a98356fee to remove hard-coded
|
||||
dnl bind_at_load flag from libtool
|
||||
case $host in
|
||||
*darwin*)
|
||||
AC_MSG_RESULT([Removing -Wl,bind_at_load from libtool.])
|
||||
sed < libtool > libtool-2 '/bind_at_load/d'
|
||||
mv libtool-2 libtool
|
||||
chmod 755 libtool
|
||||
;;
|
||||
esac
|
||||
|
||||
echo
|
||||
echo "Options used to compile and link:"
|
||||
echo " boost process = $with_boost_process"
|
||||
|
@ -158,12 +158,11 @@ def check_MACHO_NOUNDEFS(binary) -> bool:
|
||||
'''
|
||||
return binary.header.has(lief.MachO.HEADER_FLAGS.NOUNDEFS)
|
||||
|
||||
def check_MACHO_LAZY_BINDINGS(binary) -> bool:
|
||||
def check_MACHO_FIXUP_CHAINS(binary) -> bool:
|
||||
'''
|
||||
Check for no lazy bindings.
|
||||
We don't use or check for MH_BINDATLOAD. See #18295.
|
||||
Check for use of chained fixups.
|
||||
'''
|
||||
return binary.dyld_info.lazy_bind == (0,0)
|
||||
return binary.has_dyld_chained_fixups
|
||||
|
||||
def check_MACHO_Canary(binary) -> bool:
|
||||
'''
|
||||
@ -214,8 +213,8 @@ BASE_PE = [
|
||||
|
||||
BASE_MACHO = [
|
||||
('NOUNDEFS', check_MACHO_NOUNDEFS),
|
||||
('LAZY_BINDINGS', check_MACHO_LAZY_BINDINGS),
|
||||
('Canary', check_MACHO_Canary),
|
||||
('FIXUP_CHAINS', check_MACHO_FIXUP_CHAINS),
|
||||
]
|
||||
|
||||
CHECKS = {
|
||||
|
@ -242,7 +242,7 @@ def check_MACHO_libraries(binary) -> bool:
|
||||
return ok
|
||||
|
||||
def check_MACHO_min_os(binary) -> bool:
|
||||
if binary.build_version.minos == [10,15,0]:
|
||||
if binary.build_version.minos == [11,0,0]:
|
||||
return True
|
||||
return False
|
||||
|
||||
@ -251,6 +251,11 @@ def check_MACHO_sdk(binary) -> bool:
|
||||
return True
|
||||
return False
|
||||
|
||||
def check_MACHO_ld64(binary) -> bool:
|
||||
if binary.build_version.tools[0].version == [711, 0, 0]:
|
||||
return True
|
||||
return False
|
||||
|
||||
def check_PE_libraries(binary) -> bool:
|
||||
ok: bool = True
|
||||
for dylib in binary.libraries:
|
||||
@ -290,6 +295,7 @@ lief.EXE_FORMATS.MACHO: [
|
||||
('DYNAMIC_LIBRARIES', check_MACHO_libraries),
|
||||
('MIN_OS', check_MACHO_min_os),
|
||||
('SDK', check_MACHO_sdk),
|
||||
('LD64', check_MACHO_ld64),
|
||||
],
|
||||
lief.EXE_FORMATS.PE: [
|
||||
('DYNAMIC_LIBRARIES', check_PE_libraries),
|
||||
|
@ -119,29 +119,31 @@ class TestSecurityChecks(unittest.TestCase):
|
||||
arch = get_arch(cc, source, executable)
|
||||
|
||||
if arch == lief.ARCHITECTURES.X86:
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-flat_namespace','-Wl,-allow_stack_execute','-fno-stack-protector']),
|
||||
(1, executable+': failed NOUNDEFS LAZY_BINDINGS Canary PIE NX CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-flat_namespace','-Wl,-allow_stack_execute','-fstack-protector-all']),
|
||||
(1, executable+': failed NOUNDEFS LAZY_BINDINGS PIE NX CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-flat_namespace','-fstack-protector-all']),
|
||||
(1, executable+': failed NOUNDEFS LAZY_BINDINGS PIE CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-fstack-protector-all']),
|
||||
(1, executable+': failed LAZY_BINDINGS PIE CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-bind_at_load','-fstack-protector-all']),
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-flat_namespace','-Wl,-allow_stack_execute','-fno-stack-protector', '-Wl,-no_fixup_chains']),
|
||||
(1, executable+': failed NOUNDEFS Canary FIXUP_CHAINS PIE NX CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-flat_namespace','-Wl,-allow_stack_execute','-fno-stack-protector', '-Wl,-fixup_chains']),
|
||||
(1, executable+': failed NOUNDEFS Canary PIE NX CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-flat_namespace','-Wl,-allow_stack_execute','-fstack-protector-all', '-Wl,-fixup_chains']),
|
||||
(1, executable+': failed NOUNDEFS PIE NX CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-flat_namespace','-fstack-protector-all', '-Wl,-fixup_chains']),
|
||||
(1, executable+': failed NOUNDEFS PIE CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-fstack-protector-all', '-Wl,-fixup_chains']),
|
||||
(1, executable+': failed PIE CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-Wl,-bind_at_load','-fstack-protector-all', '-fcf-protection=full']),
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-fstack-protector-all', '-Wl,-fixup_chains']),
|
||||
(1, executable+': failed PIE CONTROL_FLOW'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-no_pie','-fstack-protector-all', '-fcf-protection=full', '-Wl,-fixup_chains']),
|
||||
(1, executable+': failed PIE'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-pie','-Wl,-bind_at_load','-fstack-protector-all', '-fcf-protection=full']),
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-pie','-fstack-protector-all', '-fcf-protection=full', '-Wl,-fixup_chains']),
|
||||
(0, ''))
|
||||
else:
|
||||
# arm64 darwin doesn't support non-PIE binaries, control flow or executable stacks
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-flat_namespace','-fno-stack-protector']),
|
||||
(1, executable+': failed NOUNDEFS LAZY_BINDINGS Canary'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-flat_namespace','-fstack-protector-all']),
|
||||
(1, executable+': failed NOUNDEFS LAZY_BINDINGS'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-fstack-protector-all']),
|
||||
(1, executable+': failed LAZY_BINDINGS'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-bind_at_load','-fstack-protector-all']),
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-flat_namespace','-fno-stack-protector', '-Wl,-no_fixup_chains']),
|
||||
(1, executable+': failed NOUNDEFS Canary FIXUP_CHAINS'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-flat_namespace','-fno-stack-protector', '-Wl,-fixup_chains']),
|
||||
(1, executable+': failed NOUNDEFS Canary'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-flat_namespace','-fstack-protector-all', '-Wl,-fixup_chains']),
|
||||
(1, executable+': failed NOUNDEFS'))
|
||||
self.assertEqual(call_security_check(cc, source, executable, ['-fstack-protector-all', '-Wl,-fixup_chains']),
|
||||
(0, ''))
|
||||
|
||||
|
||||
|
@ -121,7 +121,7 @@ class TestSymbolChecks(unittest.TestCase):
|
||||
}
|
||||
''')
|
||||
|
||||
self.assertEqual(call_symbol_check(cc, source, executable, ['-Wl,-platform_version','-Wl,macos', '-Wl,10.15', '-Wl,11.4']),
|
||||
self.assertEqual(call_symbol_check(cc, source, executable, ['-Wl,-platform_version','-Wl,macos', '-Wl,11.0', '-Wl,11.4']),
|
||||
(1, f'{executable}: failed SDK'))
|
||||
|
||||
def test_PE(self):
|
||||
|
@ -202,7 +202,6 @@ make -C depends --jobs="$JOBS" HOST="$HOST" \
|
||||
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 \
|
||||
qt_config_opts_x86_64_linux='-platform linux-g++ -xplatform bitcoin-linux-g++' \
|
||||
FORCE_USE_SYSTEM_CLANG=1
|
||||
|
||||
|
||||
|
@ -609,7 +609,7 @@ inspecting signatures in Mach-O binaries.")
|
||||
(list ;; Native GCC 11 toolchain
|
||||
gcc-toolchain-11
|
||||
binutils
|
||||
clang-toolchain-10
|
||||
clang-toolchain-15
|
||||
python-signapple
|
||||
xorriso))
|
||||
(else '())))))
|
||||
|
@ -211,7 +211,7 @@ def getFrameworks(binaryPath: str, verbose: int) -> List[FrameworkInfo]:
|
||||
return libraries
|
||||
|
||||
def runInstallNameTool(action: str, *args):
|
||||
installnametoolbin=os.getenv("INSTALLNAMETOOL", "install_name_tool")
|
||||
installnametoolbin=os.getenv("INSTALL_NAME_TOOL", "install_name_tool")
|
||||
run([installnametoolbin, "-"+action] + list(args), check=True)
|
||||
|
||||
def changeInstallName(oldName: str, newName: str, binaryPath: str, verbose: int):
|
||||
|
@ -45,6 +45,9 @@ MULTIPROCESS ?=
|
||||
LTO ?=
|
||||
FALLBACK_DOWNLOAD_PATH ?= http://dash-depends-sources.s3-website-us-west-2.amazonaws.com
|
||||
|
||||
C_STANDARD ?= c11
|
||||
CXX_STANDARD ?= c++17
|
||||
|
||||
BUILD = $(shell ./config.guess)
|
||||
HOST ?= $(BUILD)
|
||||
PATCHES_PATH = $(BASEDIR)/patches
|
||||
@ -223,6 +226,8 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
|
||||
-e 's|@RANLIB@|$(host_RANLIB)|' \
|
||||
-e 's|@NM@|$(host_NM)|' \
|
||||
-e 's|@STRIP@|$(host_STRIP)|' \
|
||||
-e 's|@OTOOL@|$(host_OTOOL)|' \
|
||||
-e 's|@INSTALL_NAME_TOOL@|$(host_INSTALL_NAME_TOOL)|' \
|
||||
-e 's|@build_os@|$(build_os)|' \
|
||||
-e 's|@host_os@|$(host_os)|' \
|
||||
-e 's|@CFLAGS@|$(strip $(host_CFLAGS) $(host_$(release_type)_CFLAGS))|' \
|
||||
|
@ -47,7 +47,7 @@ The paths are automatically configured and no other options are needed unless ta
|
||||
|
||||
#### For macOS cross compilation
|
||||
|
||||
sudo apt-get install curl bsdmainutils cmake libz-dev python3-setuptools libtinfo5 xorriso
|
||||
sudo apt-get install curl bsdmainutils cmake libz-dev python3-setuptools xorriso
|
||||
|
||||
Note: You must obtain the macOS SDK before proceeding with a cross-compile.
|
||||
Under the depends directory, create a subdirectory named `SDKs`.
|
||||
@ -62,7 +62,7 @@ For more information, see [SDK Extraction](../contrib/macdeploy/README.md#sdk-ex
|
||||
|
||||
Common linux dependencies:
|
||||
|
||||
sudo apt-get install make automake curl g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 patch bison
|
||||
sudo apt-get install make automake curl g++-multilib libtool binutils bsdmainutils pkg-config python3 patch bison
|
||||
|
||||
For linux ARM cross compilation:
|
||||
|
||||
@ -103,6 +103,8 @@ The following can be set when running make: `make FOO=bar`
|
||||
- `BASE_CACHE`: Built packages will be placed here
|
||||
- `SDK_PATH`: Path where SDKs can be found (used by macOS)
|
||||
- `FALLBACK_DOWNLOAD_PATH`: If a source file can't be fetched, try here before giving up
|
||||
- `C_STANDARD`: Set the C standard version used. Defaults to `c11`.
|
||||
- `CXX_STANDARD`: Set the C++ standard version used. Defaults to `c++17`.
|
||||
- `NO_QT`: Don't download/build/cache Qt and its dependencies
|
||||
- `NO_QR`: Don't download/build/cache packages needed for enabling qrencode
|
||||
- `NO_ZMQ`: Don't download/build/cache packages needed for enabling ZeroMQ
|
||||
|
@ -5,8 +5,6 @@ default_build_TAR = tar
|
||||
default_build_RANLIB = ranlib
|
||||
default_build_STRIP = strip
|
||||
default_build_NM = nm
|
||||
default_build_OTOOL = otool
|
||||
default_build_INSTALL_NAME_TOOL = install_name_tool
|
||||
|
||||
define add_build_tool_func
|
||||
build_$(build_os)_$1 ?= $$(default_build_$1)
|
||||
|
@ -119,6 +119,23 @@ if test -n "@NM@"; then
|
||||
ac_cv_path_ac_pt_NM="${NM}"
|
||||
fi
|
||||
|
||||
if test -n "@STRIP@"; then
|
||||
STRIP="@STRIP@"
|
||||
ac_cv_path_ac_pt_STRIP="${STRIP}"
|
||||
fi
|
||||
|
||||
if test "@host_os@" = darwin; then
|
||||
if test -n "@OTOOL@"; then
|
||||
OTOOL="@OTOOL@"
|
||||
ac_cv_path_ac_pt_OTOOL="${OTOOL}"
|
||||
fi
|
||||
|
||||
if test -n "@INSTALL_NAME_TOOL@"; then
|
||||
INSTALL_NAME_TOOL="@INSTALL_NAME_TOOL@"
|
||||
ac_cv_path_ac_pt_INSTALL_NAME_TOOL="${INSTALL_NAME_TOOL}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "@debug@"; then
|
||||
enable_reduce_exports=no
|
||||
fi
|
||||
|
@ -6,6 +6,9 @@ android_CXX=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang++
|
||||
android_CC=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang
|
||||
endif
|
||||
|
||||
android_CFLAGS=-std=$(C_STANDARD)
|
||||
android_CXXFLAGS=-std=$(CXX_STANDARD)
|
||||
|
||||
ifneq ($(LTO),)
|
||||
android_CFLAGS += -flto
|
||||
android_LDFLAGS += -flto
|
||||
|
@ -1,8 +1,8 @@
|
||||
OSX_MIN_VERSION=10.15
|
||||
OSX_MIN_VERSION=11.0
|
||||
OSX_SDK_VERSION=11.0
|
||||
XCODE_VERSION=12.2
|
||||
XCODE_BUILD_ID=12B45b
|
||||
LD64_VERSION=609
|
||||
LD64_VERSION=711
|
||||
|
||||
OSX_SDK=$(SDK_PATH)/Xcode-$(XCODE_VERSION)-$(XCODE_BUILD_ID)-extracted-SDK-with-libcxx-headers
|
||||
|
||||
@ -19,7 +19,6 @@ clang_prog=$(build_prefix)/bin/clang
|
||||
clangxx_prog=$(clang_prog)++
|
||||
llvm_config_prog=$(build_prefix)/bin/llvm-config
|
||||
|
||||
clang_resource_dir=$(build_prefix)/lib/clang/$(native_clang_version)
|
||||
else
|
||||
# FORCE_USE_SYSTEM_CLANG is non-empty, so we use the clang from the user's
|
||||
# system
|
||||
@ -37,7 +36,6 @@ clang_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang")
|
||||
clangxx_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang++")
|
||||
llvm_config_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-config")
|
||||
|
||||
clang_resource_dir=$(shell clang -print-resource-dir)
|
||||
llvm_lib_dir=$(shell $(llvm_config_prog) --libdir)
|
||||
endif
|
||||
|
||||
@ -63,63 +61,43 @@ $(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(
|
||||
# Explicitly point to our binaries (e.g. cctools) so that they are
|
||||
# ensured to be found and preferred over other possibilities.
|
||||
#
|
||||
# -stdlib++-isystem$(OSX_SDK)/usr/include/c++/v1
|
||||
# -isysroot$(OSX_SDK) -nostdlibinc
|
||||
#
|
||||
# Forces clang to use the libc++ headers from our SDK and completely
|
||||
# forget about the libc++ headers from the standard directories
|
||||
# Disable default include paths built into the compiler as well as
|
||||
# those normally included for libc and libc++. The only path that
|
||||
# remains implicitly is the clang resource dir.
|
||||
#
|
||||
# -Xclang -*system<path_a> \
|
||||
# -Xclang -*system<path_b> \
|
||||
# -Xclang -*system<path_c> ...
|
||||
# -iwithsysroot / -iframeworkwithsysroot
|
||||
#
|
||||
# Adds path_a, path_b, and path_c to the bottom of clang's list of
|
||||
# include search paths. This is used to explicitly specify the list of
|
||||
# system include search paths and its ordering, rather than rely on
|
||||
# clang's autodetection routine. This routine has been shown to:
|
||||
# 1. Fail to pickup libc++ headers in $SYSROOT/usr/include/c++/v1
|
||||
# when clang was built manually (see: https://github.com/bitcoin/bitcoin/pull/17919#issuecomment-656785034)
|
||||
# 2. Fail to pickup C headers in $SYSROOT/usr/include when
|
||||
# C_INCLUDE_DIRS was specified at configure time (see: https://gist.github.com/dongcarl/5cdc6990b7599e8a5bf6d2a9c70e82f9)
|
||||
#
|
||||
# Talking directly to cc1 with -Xclang here grants us access to specify
|
||||
# more granular categories for these system include search paths, and we
|
||||
# can use the correct categories that these search paths would have been
|
||||
# placed in if the autodetection routine had worked correctly. (see:
|
||||
# https://gist.github.com/dongcarl/5cdc6990b7599e8a5bf6d2a9c70e82f9#the-treatment)
|
||||
#
|
||||
# Furthermore, it places these search paths after any "non-Xclang"
|
||||
# specified search paths. This prevents any additional clang options or
|
||||
# environment variables from coming after or in between these system
|
||||
# include search paths, as that would be wrong in general but would also
|
||||
# break #include_next's.
|
||||
# Adds the desired paths from the SDK
|
||||
#
|
||||
|
||||
darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
||||
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
|
||||
-u LIBRARY_PATH \
|
||||
$(clang_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \
|
||||
-B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \
|
||||
-isysroot$(OSX_SDK) \
|
||||
-Xclang -internal-externc-isystem -Xclang $(clang_resource_dir)/include \
|
||||
-Xclang -internal-externc-isystem -Xclang $(OSX_SDK)/usr/include
|
||||
-isysroot$(OSX_SDK) -nostdlibinc \
|
||||
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks
|
||||
|
||||
darwin_CXX=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
||||
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
|
||||
-u LIBRARY_PATH \
|
||||
$(clangxx_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \
|
||||
-B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \
|
||||
-isysroot$(OSX_SDK) \
|
||||
-stdlib++-isystem$(OSX_SDK)/usr/include/c++/v1 \
|
||||
-Xclang -internal-externc-isystem -Xclang $(clang_resource_dir)/include \
|
||||
-Xclang -internal-externc-isystem -Xclang $(OSX_SDK)/usr/include
|
||||
-isysroot$(OSX_SDK) -nostdlibinc \
|
||||
-iwithsysroot/usr/include/c++/v1 \
|
||||
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks
|
||||
|
||||
darwin_CFLAGS=-pipe
|
||||
darwin_CFLAGS=-pipe -std=$(C_STANDARD)
|
||||
darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
||||
|
||||
ifneq ($(LTO),)
|
||||
darwin_CFLAGS += -flto
|
||||
darwin_CXXFLAGS += -flto
|
||||
darwin_LDFLAGS += -flto
|
||||
endif
|
||||
|
||||
darwin_CXXFLAGS=$(darwin_CFLAGS)
|
||||
|
||||
darwin_release_CFLAGS=-O2
|
||||
darwin_release_CXXFLAGS=$(darwin_release_CFLAGS)
|
||||
|
||||
|
@ -8,9 +8,8 @@ default_host_AR = $(host_toolchain)ar
|
||||
default_host_RANLIB = $(host_toolchain)ranlib
|
||||
default_host_STRIP = $(host_toolchain)strip
|
||||
default_host_LIBTOOL = $(host_toolchain)libtool
|
||||
default_host_INSTALL_NAME_TOOL = $(host_toolchain)install_name_tool
|
||||
default_host_OTOOL = $(host_toolchain)otool
|
||||
default_host_NM = $(host_toolchain)nm
|
||||
default_host_OBJCOPY = $(host_toolchain)objcopy
|
||||
|
||||
define add_host_tool_func
|
||||
ifneq ($(filter $(origin $1),undefined default),)
|
||||
@ -40,5 +39,5 @@ host_$1 = $$($(host_arch)_$(host_os)_$1)
|
||||
host_$(release_type)_$1 = $$($(host_arch)_$(host_os)_$(release_type)_$1)
|
||||
endef
|
||||
|
||||
$(foreach tool,CC CXX AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL,$(eval $(call add_host_tool_func,$(tool))))
|
||||
$(foreach tool,CC CXX AR RANLIB STRIP LIBTOOL NM OBJCOPY OTOOL INSTALL_NAME_TOOL,$(eval $(call add_host_tool_func,$(tool))))
|
||||
$(foreach flags,CFLAGS CXXFLAGS CPPFLAGS LDFLAGS, $(eval $(call add_host_flags_func,$(flags))))
|
||||
|
@ -1,12 +1,12 @@
|
||||
freebsd_CFLAGS=-pipe
|
||||
freebsd_CFLAGS=-pipe -std=$(C_STANDARD)
|
||||
freebsd_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
||||
|
||||
ifneq ($(LTO),)
|
||||
freebsd_CFLAGS += -flto
|
||||
freebsd_CXXFLAGS += -flto
|
||||
freebsd_LDFLAGS += -flto
|
||||
endif
|
||||
|
||||
freebsd_CXXFLAGS=$(freebsd_CFLAGS)
|
||||
|
||||
freebsd_release_CFLAGS=-O2
|
||||
freebsd_release_CXXFLAGS=$(freebsd_release_CFLAGS)
|
||||
|
||||
|
@ -1,11 +1,15 @@
|
||||
linux_CFLAGS=-pipe
|
||||
linux_CFLAGS=-pipe -std=$(C_STANDARD)
|
||||
linux_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
||||
|
||||
ifneq ($(LTO),)
|
||||
linux_CFLAGS += -flto
|
||||
linux_CXXFLAGS += -flto
|
||||
linux_LDFLAGS += -flto
|
||||
endif
|
||||
|
||||
linux_CXXFLAGS=$(linux_CFLAGS)
|
||||
linux_AR = $(host_toolchain)gcc-ar
|
||||
linux_NM = $(host_toolchain)gcc-nm
|
||||
linux_RANLIB = $(host_toolchain)gcc-ranlib
|
||||
endif
|
||||
|
||||
linux_release_CFLAGS=-O2
|
||||
linux_release_CXXFLAGS=$(linux_release_CFLAGS)
|
||||
|
@ -2,14 +2,18 @@ ifneq ($(shell $(SHELL) $(.SHELLFLAGS) "command -v $(host)-g++-posix"),)
|
||||
mingw32_CXX := $(host)-g++-posix
|
||||
endif
|
||||
|
||||
mingw32_CFLAGS=-pipe
|
||||
mingw32_CFLAGS=-pipe -std=$(C_STANDARD)
|
||||
mingw32_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
||||
|
||||
ifneq ($(LTO),)
|
||||
mingw32_CFLAGS += -flto
|
||||
mingw32_CXXFLAGS += -flto
|
||||
mingw32_LDFLAGS += -flto
|
||||
endif
|
||||
|
||||
mingw32_CXXFLAGS=$(mingw32_CFLAGS)
|
||||
mingw32_AR = $(host_toolchain)gcc-ar
|
||||
mingw32_NM = $(host_toolchain)gcc-nm
|
||||
mingw32_RANLIB = $(host_toolchain)gcc-ranlib
|
||||
endif
|
||||
|
||||
mingw32_release_CFLAGS=-O2
|
||||
mingw32_release_CXXFLAGS=$(mingw32_release_CFLAGS)
|
||||
|
@ -1,8 +1,14 @@
|
||||
netbsd_CFLAGS=-pipe
|
||||
netbsd_CFLAGS=-pipe -std=$(C_STANDARD)
|
||||
netbsd_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
||||
|
||||
ifneq ($(LTO),)
|
||||
netbsd_CFLAGS += -flto
|
||||
netbsd_CXXFLAGS += -flto
|
||||
netbsd_LDFLAGS += -flto
|
||||
|
||||
netbsd_AR = $(host_toolchain)gcc-ar
|
||||
netbsd_NM = $(host_toolchain)gcc-nm
|
||||
netbsd_RANLIB = $(host_toolchain)gcc-ranlib
|
||||
endif
|
||||
|
||||
netbsd_CXXFLAGS=$(netbsd_CFLAGS)
|
||||
|
@ -1,8 +1,9 @@
|
||||
openbsd_CFLAGS=-pipe
|
||||
openbsd_CXXFLAGS=$(openbsd_CFLAGS)
|
||||
openbsd_CFLAGS=-pipe -std=$(C_STANDARD)
|
||||
openbsd_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
||||
|
||||
ifneq ($(LTO),)
|
||||
openbsd_CFLAGS += -flto
|
||||
openbsd_CXXFLAGS += -flto
|
||||
openbsd_LDFLAGS += -flto
|
||||
endif
|
||||
|
||||
|
@ -10,7 +10,6 @@ define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --enable-cxx --disable-replication --enable-option-checking
|
||||
$(package)_config_opts_mingw32=--enable-mingw
|
||||
$(package)_cflags+=-Wno-error=implicit-function-declaration -Wno-error=format-security -Wno-error=implicit-int
|
||||
$(package)_cxxflags+=-std=c++17
|
||||
$(package)_cppflags_freebsd=-D_XOPEN_SOURCE=600 -D__BSD_VISIBLE=1
|
||||
$(package)_cppflags_netbsd=-D_XOPEN_SOURCE=600
|
||||
$(package)_cppflags_mingw32=-DUNICODE -D_UNICODE
|
||||
|
@ -1,8 +1,8 @@
|
||||
package=libnatpmp
|
||||
$(package)_version=4536032ae32268a45c073a4d5e91bbab4534773a
|
||||
$(package)_version=07004b97cf691774efebe70404cf22201e4d330d
|
||||
$(package)_download_path=https://github.com/miniupnp/libnatpmp/archive
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=543b460aab26acf91e11d15e17d8798f845304199eea2d76c2f444ec749c5383
|
||||
$(package)_sha256_hash=9321953ceb39d07c25463e266e50d0ae7b64676bb3a986d932b18881ed94f1fb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_build_opts=CC="$($(package)_cc)"
|
||||
|
@ -1,8 +1,8 @@
|
||||
package=native_cctools
|
||||
$(package)_version=2ef2e931cf641547eb8a68cfebde61003587c9fd
|
||||
$(package)_version=c74fafe86076713cb8e6f937af43b6df6da1f42d
|
||||
$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=6b73269efdf5c58a070e7357b66ee760501388549d6a12b423723f45888b074b
|
||||
$(package)_sha256_hash=e2c1588d505a69c32e079f4e616e0f117d5478429040e394f624f43f2796e6bc
|
||||
$(package)_build_subdir=cctools
|
||||
$(package)_dependencies=native_libtapi
|
||||
|
||||
@ -17,13 +17,9 @@ endef
|
||||
ifneq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||
define $(package)_preprocess_cmds
|
||||
mkdir -p $($(package)_staging_prefix_dir)/lib && \
|
||||
cp $(llvm_lib_dir)/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub cctools
|
||||
cp $(llvm_lib_dir)/libLTO.so $($(package)_staging_prefix_dir)/lib/
|
||||
endef
|
||||
else
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub cctools
|
||||
endef
|
||||
endif
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
@ -1,12 +1,12 @@
|
||||
package=native_clang
|
||||
$(package)_version=10.0.1
|
||||
$(package)_version=15.0.6
|
||||
$(package)_download_path=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_version)
|
||||
ifneq (,$(findstring aarch64,$(BUILD)))
|
||||
$(package)_file_name=clang+llvm-$($(package)_version)-aarch64-linux-gnu.tar.xz
|
||||
$(package)_sha256_hash=90dc69a4758ca15cd0ffa45d07fbf5bf4309d47d2c7745a9f0735ecffde9c31f
|
||||
$(package)_sha256_hash=8ca4d68cf103da8331ca3f35fe23d940c1b78fb7f0d4763c1c059e352f5d1bec
|
||||
else
|
||||
$(package)_file_name=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
||||
$(package)_sha256_hash=48b83ef827ac2c213d5b64f5ad7ed082c8bcb712b46644e0dc5045c6f462c231
|
||||
$(package)_file_name=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz
|
||||
$(package)_sha256_hash=38bc7f5563642e73e69ac5626724e206d6d539fbef653541b34cae0ba9c3f036
|
||||
endif
|
||||
|
||||
define $(package)_stage_cmds
|
||||
|
@ -1,13 +1,18 @@
|
||||
package=native_libtapi
|
||||
$(package)_version=664b8414f89612f2dfd35a9b679c345aa5389026
|
||||
$(package)_version=eb33a59f2e30ff9724dc1ea8bee8b5229b0557c9
|
||||
$(package)_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=62e419c12d1c9fad67cc1cd523132bc00db050998337c734c15bc8d73cc02b61
|
||||
$(package)_sha256_hash=d4d46c64622f13d6938cecf989046d9561011bb59e8ee835f8f39825d67f578f
|
||||
$(package)_patches=disable_zlib.patch
|
||||
|
||||
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||
$(package)_dependencies=native_clang
|
||||
endif
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/disable_zlib.patch
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
CC=$(clang_prog) CXX=$(clangxx_prog) INSTALLPREFIX=$($(package)_staging_prefix_dir) ./build.sh
|
||||
endef
|
||||
|
@ -160,18 +160,10 @@ $(package)_config_opts_linux += -dbus-runtime
|
||||
ifneq ($(LTO),)
|
||||
$(package)_config_opts_linux += -ltcg
|
||||
endif
|
||||
$(package)_config_opts_arm_linux += -platform linux-g++ -xplatform bitcoin-linux-g++
|
||||
$(package)_config_opts_i686_linux = -xplatform linux-g++-32
|
||||
$(package)_config_opts_linux += -platform linux-g++ -xplatform bitcoin-linux-g++
|
||||
ifneq (,$(findstring -stdlib=libc++,$($(1)_cxx)))
|
||||
$(package)_config_opts_x86_64_linux = -xplatform linux-clang-libc++
|
||||
else
|
||||
$(package)_config_opts_x86_64_linux = -xplatform linux-g++-64
|
||||
endif
|
||||
$(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
|
||||
@ -236,18 +228,11 @@ endef
|
||||
# 2. Create a macOS-Clang-Linux mkspec using our mac-qmake.conf.
|
||||
#
|
||||
# 3. After making a copy of the mkspec for the linux-arm-gnueabi host, named
|
||||
# bitcoin-linux-g++, replace instances of linux-arm-gnueabi with $(host). This
|
||||
# way we can generically support hosts like riscv64-linux-gnu, which Qt doesn't
|
||||
# ship a mkspec for. See it's usage in config_opts_* above.
|
||||
# bitcoin-linux-g++, replace tool names with $($($(package)_type)_TOOL).
|
||||
#
|
||||
# 4. Put our C, CXX and LD FLAGS into gcc-base.conf. Only used for non-host builds.
|
||||
#
|
||||
# 5. Do similar for the win32-g++ mkspec.
|
||||
#
|
||||
# 6. In clang.conf, swap out clang & clang++, for our compiler + flags. See #17466.
|
||||
#
|
||||
# 7. Adjust a regex in toolchain.prf, to accommodate Guix's usage of
|
||||
# CROSS_LIBRARY_PATH. See #15277.
|
||||
# 5. In clang.conf, swap out clang & clang++, for our compiler + flags. See #17466.
|
||||
define $(package)_preprocess_cmds
|
||||
cp $($(package)_patch_dir)/qt.pro qt.pro && \
|
||||
cp $($(package)_patch_dir)/qttools_src.pro qttools/src/src.pro && \
|
||||
@ -270,7 +255,12 @@ define $(package)_preprocess_cmds
|
||||
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
|
||||
cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
|
||||
cp -r qtbase/mkspecs/linux-arm-gnueabi-g++ qtbase/mkspecs/bitcoin-linux-g++ && \
|
||||
sed -i.old "s/arm-linux-gnueabi-/$(host)-/g" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-gcc|$($($(package)_type)_CC)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-g++|$($($(package)_type)_CXX)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-ar|$($($(package)_type)_AR)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-objcopy|$($($(package)_type)_OBJCOPY)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-nm|$($($(package)_type)_NM)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-strip|$($($(package)_type)_STRIP)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
echo "!host_build: QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
echo "!host_build: QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
echo "!host_build: QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
|
@ -22,7 +22,6 @@ define $(package)_set_vars
|
||||
$(package)_cxxflags += -ffile-prefix-map=$($(package)_extract_dir)=/usr
|
||||
$(package)_config_opts_mingw32 += -DZMQ_WIN32_WINNT=0x0601 -DZMQ_HAVE_IPC=OFF
|
||||
$(package)_config_opts_mingw32 += -DCMAKE_RC_COMPILER=x86_64-w64-mingw32-windres
|
||||
$(package)_cxxflags+=-std=c++17
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
17
depends/patches/native_libtapi/disable_zlib.patch
Normal file
17
depends/patches/native_libtapi/disable_zlib.patch
Normal file
@ -0,0 +1,17 @@
|
||||
build: disable zlib
|
||||
|
||||
This isn't needed, and causes issues when clang-tblgen
|
||||
is built, but trys to reach for a system libz.so.
|
||||
|
||||
diff --git a/build.sh b/build.sh
|
||||
index e25d2f732..ec8422621 100755
|
||||
--- a/build.sh
|
||||
+++ b/build.sh
|
||||
@@ -66,6 +66,7 @@ cmake ../src/llvm \
|
||||
-DCMAKE_INSTALL_PREFIX=$INSTALLPREFIX \
|
||||
-DTAPI_REPOSITORY_STRING=$TAPI_VERSION \
|
||||
-DTAPI_FULL_VERSION=$TAPI_VERSION \
|
||||
+ -DLLVM_ENABLE_ZLIB=OFF \
|
||||
$CMAKE_EXTRA_ARGS
|
||||
|
||||
echo ""
|
@ -4,7 +4,7 @@ See discussion in https://github.com/bitcoin/bitcoin/pull/15277.
|
||||
|
||||
--- a/qtbase/mkspecs/features/toolchain.prf
|
||||
+++ b/qtbase/mkspecs/features/toolchain.prf
|
||||
@@ -231,8 +231,8 @@ isEmpty($${target_prefix}.INCDIRS) {
|
||||
@@ -236,8 +236,8 @@ isEmpty($${target_prefix}.INCDIRS) {
|
||||
add_libraries = false
|
||||
for (line, output) {
|
||||
line ~= s/^[ \\t]*// # remove leading spaces
|
||||
|
@ -15,7 +15,7 @@ QMAKE_MAC_SDK.macosx.SDKVersion = $${MAC_SDK_VERSION}
|
||||
QMAKE_MAC_SDK.macosx.PlatformPath = /phony
|
||||
!host_build: QMAKE_CFLAGS += -target $${MAC_TARGET}
|
||||
!host_build: QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CFLAGS
|
||||
!host_build: QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
|
||||
!host_build: QMAKE_CXXFLAGS += -target $${MAC_TARGET}
|
||||
!host_build: QMAKE_LFLAGS += -target $${MAC_TARGET}
|
||||
QMAKE_AR = $${CROSS_COMPILE}ar cq
|
||||
QMAKE_RANLIB=$${CROSS_COMPILE}ranlib
|
||||
|
@ -14,7 +14,7 @@ These are the dependencies currently used by Dash Core. You can find instruction
|
||||
| glibc | | [2.31](https://www.gnu.org/software/libc/) | | | | |
|
||||
| HarfBuzz-NG | | | | | [Yes](https://github.com/dashpay/dash/blob/develop/depends/packages/qt.mk) |
|
||||
| libevent | [2.1.12-stable](https://github.com/libevent/libevent/releases) | [2.0.21](https://github.com/bitcoin/bitcoin/pull/18676) | No | | |
|
||||
| libnatpmp | git commit [4536032...](https://github.com/miniupnp/libnatpmp/tree/4536032ae32268a45c073a4d5e91bbab4534773a) | | No | | |
|
||||
| libnatpmp | git commit [07004b9...](https://github.com/miniupnp/libnatpmp/tree/07004b97cf691774efebe70404cf22201e4d330d) | | No | | |
|
||||
| libpng | | | | | [Yes](https://github.com/dashpay/dash/blob/develop/depends/packages/qt.mk) |
|
||||
| Linux Kernel | [N/A](https://www.kernel.org/) | 3.2.0 | | | |
|
||||
| MiniUPnPc | [2.2.2](https://miniupnp.tuxfamily.org/files) | | No | | |
|
||||
|
@ -3,7 +3,7 @@
|
||||
<plist version="0.9">
|
||||
<dict>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.15.0</string>
|
||||
<string>11</string>
|
||||
|
||||
<key>LSArchitecturePriority</key>
|
||||
<array>
|
||||
|
Loading…
Reference in New Issue
Block a user