depends: Fully determine path for darwin_{CC,CXX}
Instead of doing the awkward /bin path prepending at config.site creation time, set darwin_{CC,CXX} in a way that fully determines the program's path (clang/clang++) Also see the added comment block in depends/Makefile for more context on determining $PATH for our config.site. Cherry-picked from: 880660ac Conflicts: cherry-picked from a Bitcoin Core build system that is optimized for supporting system-provided clang builds which Dogecoin Core does not have at this time. I have removed all code regarding that functionality and only kept the code relevant to Dogecoin Core for this major version (1.14), i.e. those lines that use the pinned clang from the depends system.
This commit is contained in:
parent
cbc3aaeed8
commit
043ce9a2c2
|
@ -119,11 +119,35 @@ $(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
|
||||||
$(AT)cd $(@D); $(foreach package,$^, tar xf $($(package)_cached); )
|
$(AT)cd $(@D); $(foreach package,$^, tar xf $($(package)_cached); )
|
||||||
$(AT)touch $@
|
$(AT)touch $@
|
||||||
|
|
||||||
|
# $PATH is not preserved between ./configure and make by convention. Its
|
||||||
|
# modification and overriding at ./configure time is (as I understand it)
|
||||||
|
# supposed to be captured by the AC_{PROG_{,OBJ}CXX,PATH_{PROG,TOOL}} macros,
|
||||||
|
# which will expand the program names to their full absolute paths. The notable
|
||||||
|
# exception is command line overriding: ./configure CC=clang, which skips the
|
||||||
|
# program name expansion step, and works because the user implicitly indicates
|
||||||
|
# with CC=clang that clang will be available in $PATH at all times, and is most
|
||||||
|
# likely part of the user's system.
|
||||||
|
#
|
||||||
|
# Therefore, when we "seed the autoconf cache"/"override well-known program
|
||||||
|
# vars" by setting AR=<blah> in our config.site, either one of two things needs
|
||||||
|
# to be true for the build system to work correctly:
|
||||||
|
#
|
||||||
|
# 1. If we refer to the program by name (e.g. AR=riscv64-gnu-linux-ar), the
|
||||||
|
# tool needs to be available in $PATH at all times.
|
||||||
|
#
|
||||||
|
# 2. If the tool is _**not**_ expected to be available in $PATH at all times
|
||||||
|
# (such as is the case for our native_cctools binutils tools), it needs to
|
||||||
|
# be referred to by its absolute path, such as would be output by the
|
||||||
|
# AC_PATH_{PROG,TOOL} macros.
|
||||||
|
#
|
||||||
|
# Minor note: it is also okay to refer to tools by their absolute path even if
|
||||||
|
# we expect them to be available in $PATH at all times, more specificity does
|
||||||
|
# not hurt.
|
||||||
$(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_build_id)
|
$(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_build_id)
|
||||||
$(AT)@mkdir -p $(@D)
|
$(AT)@mkdir -p $(@D)
|
||||||
$(AT)sed -e 's|@HOST@|$(host)|' \
|
$(AT)sed -e 's|@HOST@|$(host)|' \
|
||||||
-e 's|@CC@|$(toolchain_path)$(host_CC)|' \
|
-e 's|@CC@|$(host_CC)|' \
|
||||||
-e 's|@CXX@|$(toolchain_path)$(host_CXX)|' \
|
-e 's|@CXX@|$(host_CXX)|' \
|
||||||
-e 's|@AR@|$(toolchain_path)$(host_AR)|' \
|
-e 's|@AR@|$(toolchain_path)$(host_AR)|' \
|
||||||
-e 's|@RANLIB@|$(toolchain_path)$(host_RANLIB)|' \
|
-e 's|@RANLIB@|$(toolchain_path)$(host_RANLIB)|' \
|
||||||
-e 's|@NM@|$(toolchain_path)$(host_NM)|' \
|
-e 's|@NM@|$(toolchain_path)$(host_NM)|' \
|
||||||
|
|
|
@ -2,8 +2,12 @@ OSX_MIN_VERSION=10.8
|
||||||
OSX_SDK_VERSION=10.11
|
OSX_SDK_VERSION=10.11
|
||||||
OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk
|
OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk
|
||||||
LD64_VERSION=253.9
|
LD64_VERSION=253.9
|
||||||
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
|
||||||
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++
|
clang_prog=$(build_prefix)/bin/clang
|
||||||
|
clangxx_prog=$(clang_prog)++
|
||||||
|
|
||||||
|
darwin_CC=$(build_prefix)/bin/clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
||||||
|
darwin_CXX=$(clang_prog)++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++
|
||||||
|
|
||||||
darwin_CFLAGS=-pipe
|
darwin_CFLAGS=-pipe
|
||||||
darwin_CXXFLAGS=$(darwin_CFLAGS)
|
darwin_CXXFLAGS=$(darwin_CFLAGS)
|
||||||
|
|
Loading…
Reference in a new issue