Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macOS: rewrite some docs & swap mmacosx-version-min for mmacos-version-min #30287

Merged
merged 2 commits into from
Jun 18, 2024

Conversation

fanquake
Copy link
Member

Whilst -mmacosx-version-min and -mmacos-version-min remain aliases for each other, the later is preferred,
and I assume the former will be removed at some point in the future; see: llvm/llvm-project#95374.

Somewhat of a followup to #21778. Rewrite some of the mac deploy docs.

fanquake added 2 commits June 14, 2024 09:43
Whilst these remain aliases for each other, the later is preferred,
and I assume the former will be removed at some point in the future;
see: llvm/llvm-project#95374.
@DrahtBot
Copy link
Contributor

DrahtBot commented Jun 14, 2024

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage

For detailed information about the code coverage, see the test coverage report.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK theuni, TheCharlatan, hebasto

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Copy link
Member

@theuni theuni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK 7c298fe

Copy link
Contributor

@TheCharlatan TheCharlatan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 7c298fe

@fanquake
Copy link
Member Author

Guix Build (aarch64):

df01ba57dd26dc4ef6c88a9d3538b92d7edfe96edca021b8fc16bb2f146ce438  guix-build-7c298fe0df38/output/aarch64-linux-gnu/SHA256SUMS.part
c19ce42ffe95497f7e4383dd2009413f45bc02e602adf33361eab40ffe1c98ce  guix-build-7c298fe0df38/output/aarch64-linux-gnu/bitcoin-7c298fe0df38-aarch64-linux-gnu-debug.tar.gz
73eb0d6887cc9b67a207c486f76a001b38d22d2ffee93f398dd6b01dbf18208f  guix-build-7c298fe0df38/output/aarch64-linux-gnu/bitcoin-7c298fe0df38-aarch64-linux-gnu.tar.gz
f1ed102a242b3e2bb291190550c290e950626e74c3eebe0af460dffc84fbd0dd  guix-build-7c298fe0df38/output/arm-linux-gnueabihf/SHA256SUMS.part
660885cfc50f80c4e6caa85f8002321031a95a3aaa24de568cdd2ec054f4218c  guix-build-7c298fe0df38/output/arm-linux-gnueabihf/bitcoin-7c298fe0df38-arm-linux-gnueabihf-debug.tar.gz
57753f9a6264f32a2e6d2baaed849deeb0b69f1d59d6ba48e8733908549827e6  guix-build-7c298fe0df38/output/arm-linux-gnueabihf/bitcoin-7c298fe0df38-arm-linux-gnueabihf.tar.gz
c749e06e582abccb481fed3b1754f209d81a7092840bfe18ee68a68b1cafef0d  guix-build-7c298fe0df38/output/arm64-apple-darwin/SHA256SUMS.part
5b0d3d772146694214c6041c299efb05c2f76c9fe7dc80fc522270786f426388  guix-build-7c298fe0df38/output/arm64-apple-darwin/bitcoin-7c298fe0df38-arm64-apple-darwin-unsigned.tar.gz
537b5e3068e4939c36b758dd8957f25ffa66b572663e9bc699ce109857aa1e6a  guix-build-7c298fe0df38/output/arm64-apple-darwin/bitcoin-7c298fe0df38-arm64-apple-darwin-unsigned.zip
65cbe9324ed56ae51d8568b7499c7ff73469e3fe469fe59ece83a3fca18421df  guix-build-7c298fe0df38/output/arm64-apple-darwin/bitcoin-7c298fe0df38-arm64-apple-darwin.tar.gz
bb44628fe27497c25c0e4787eed944aaa55dd86793b6b3dfee0e2da59bbed193  guix-build-7c298fe0df38/output/dist-archive/bitcoin-7c298fe0df38.tar.gz
aeb98c8fd9d9df62e5a22ae08a0d40d422eaaa406c8e31ee53d2433cbccb5c14  guix-build-7c298fe0df38/output/powerpc64-linux-gnu/SHA256SUMS.part
4dfab644b7060779ab9b3b1135bdb1dd20096e3b534f1e7a558d89531a20421f  guix-build-7c298fe0df38/output/powerpc64-linux-gnu/bitcoin-7c298fe0df38-powerpc64-linux-gnu-debug.tar.gz
7d889053b75958de75925e443e681b647891709da84b73f2ca26748d76c397c1  guix-build-7c298fe0df38/output/powerpc64-linux-gnu/bitcoin-7c298fe0df38-powerpc64-linux-gnu.tar.gz
cc1cc47c3168a7b25ffd57cffd17b1989731902c32484d9410d0cf1dc478f5f1  guix-build-7c298fe0df38/output/riscv64-linux-gnu/SHA256SUMS.part
138250f706b2460b4d1af0630e46836ca586a11fe927ebb44cc362b76b203558  guix-build-7c298fe0df38/output/riscv64-linux-gnu/bitcoin-7c298fe0df38-riscv64-linux-gnu-debug.tar.gz
4192bd95df42c4220795e09ec88d82e137ec8e0299843802d2e08b37f9fa5ec0  guix-build-7c298fe0df38/output/riscv64-linux-gnu/bitcoin-7c298fe0df38-riscv64-linux-gnu.tar.gz
33c4fd5893b5e91dd20e70df3c4f56ec82def979fe6851b44228f85a79fd50e5  guix-build-7c298fe0df38/output/x86_64-apple-darwin/SHA256SUMS.part
3310b3287ef77ffa6bf94b4cd3bb20da671c9ca70f9f0eb7c79facbd8406d6e6  guix-build-7c298fe0df38/output/x86_64-apple-darwin/bitcoin-7c298fe0df38-x86_64-apple-darwin-unsigned.tar.gz
1c708931000a2406f281b007fd93b4179e4aa59ba9e830396f46b371b8aba48e  guix-build-7c298fe0df38/output/x86_64-apple-darwin/bitcoin-7c298fe0df38-x86_64-apple-darwin-unsigned.zip
d1b14feace185d20276d785cf52efef73d05d6396ef598b3dcf2bd11711afc34  guix-build-7c298fe0df38/output/x86_64-apple-darwin/bitcoin-7c298fe0df38-x86_64-apple-darwin.tar.gz
235eaa4e29b4b002975b992674390a00dd622230cf42078704f4c971fee4e9a5  guix-build-7c298fe0df38/output/x86_64-linux-gnu/SHA256SUMS.part
cd1df71f1958768274b14339304b2bb3ab48c6cf431c7b0733c28392454f185e  guix-build-7c298fe0df38/output/x86_64-linux-gnu/bitcoin-7c298fe0df38-x86_64-linux-gnu-debug.tar.gz
11e6b680053ad6abeb18581b70fc4778a8bedac4058e030ca23b1674b29e3592  guix-build-7c298fe0df38/output/x86_64-linux-gnu/bitcoin-7c298fe0df38-x86_64-linux-gnu.tar.gz
39b9cef57fb67676808c16fccfde1ef502a5b7e4b7969cc5adeacbcc415e939f  guix-build-7c298fe0df38/output/x86_64-w64-mingw32/SHA256SUMS.part
ce07f3c38c511b224b5463c1bd97f1c0a4cad214573f53226300aafe36eb8c0c  guix-build-7c298fe0df38/output/x86_64-w64-mingw32/bitcoin-7c298fe0df38-win64-debug.zip
fdf10ee9ec1db0f496f64f0e976678767a3b6f39284fc26c7a90026823306aea  guix-build-7c298fe0df38/output/x86_64-w64-mingw32/bitcoin-7c298fe0df38-win64-setup-unsigned.exe
ac7f4bd12ee17918219fdd54393201ae00c91b338f441fa2e0fa5f30ecd29d75  guix-build-7c298fe0df38/output/x86_64-w64-mingw32/bitcoin-7c298fe0df38-win64-unsigned.tar.gz
6c1bb715e639d4f948795565bd98266c5fab25f73d1bd36940373c78a60caa17  guix-build-7c298fe0df38/output/x86_64-w64-mingw32/bitcoin-7c298fe0df38-win64.zip

@DrahtBot
Copy link
Contributor

Guix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use]

File commit 0b94fb8
(master)
commit f7f83fe
(master and this pull)
SHA256SUMS.part 2a23fdd86b7a8236... eef903cf4774e682...
*-aarch64-linux-gnu-debug.tar.gz aa2ebc169f913c32... db3c9b29b1745590...
*-aarch64-linux-gnu.tar.gz cdf5148e331a390a... 7a68d2eb45f2a01a...
*-arm-linux-gnueabihf-debug.tar.gz ab428351f47b09d3... 99f9a4f6c3bfab8d...
*-arm-linux-gnueabihf.tar.gz c6effc46ca88eab5... d886606397e4fa45...
*-arm64-apple-darwin-unsigned.tar.gz ca4f2d537a66429a... 634f19b7eafc6b33...
*-arm64-apple-darwin-unsigned.zip 1b91c7b990ac342b... 58fa9891906417d2...
*-arm64-apple-darwin.tar.gz 9e324e4c90d4ca78... 82db5aec7794f68a...
*-powerpc64-linux-gnu-debug.tar.gz 5df50e2feef319a4... 8e6db15bb7a1e906...
*-powerpc64-linux-gnu.tar.gz 6f31209f6a98a3c5... a8ee8691ebc20e30...
*-riscv64-linux-gnu-debug.tar.gz 9dfc8d3117aff140... 6a9c266b0753dcc9...
*-riscv64-linux-gnu.tar.gz bf784480e4b5d7c0... f52372b2585b186f...
*-x86_64-apple-darwin-unsigned.tar.gz 8eb1a42253fbe48f... 02833a207f71b9d9...
*-x86_64-apple-darwin-unsigned.zip f8efadeee45e4bd4... 423e43ef62ace6c8...
*-x86_64-apple-darwin.tar.gz de7643f5fdcdead1... 14360dbfcc88d47c...
*-x86_64-linux-gnu-debug.tar.gz 91ed8823062dd642... 256f63ccfe21d46c...
*-x86_64-linux-gnu.tar.gz c75f00117a8ad22d... ab94c3bfa3bb377f...
*.tar.gz 918055b08859cc5f... 359c92d0df92b154...
guix_build.log 9cd1ee6c7a01d164... f26898f64f545068...
guix_build.log.diff 4e5c762702a3c543...

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 7c298fe.

My Guix builds:

x86_64
c749e06e582abccb481fed3b1754f209d81a7092840bfe18ee68a68b1cafef0d  guix-build-7c298fe0df38/output/arm64-apple-darwin/SHA256SUMS.part
5b0d3d772146694214c6041c299efb05c2f76c9fe7dc80fc522270786f426388  guix-build-7c298fe0df38/output/arm64-apple-darwin/bitcoin-7c298fe0df38-arm64-apple-darwin-unsigned.tar.gz
537b5e3068e4939c36b758dd8957f25ffa66b572663e9bc699ce109857aa1e6a  guix-build-7c298fe0df38/output/arm64-apple-darwin/bitcoin-7c298fe0df38-arm64-apple-darwin-unsigned.zip
65cbe9324ed56ae51d8568b7499c7ff73469e3fe469fe59ece83a3fca18421df  guix-build-7c298fe0df38/output/arm64-apple-darwin/bitcoin-7c298fe0df38-arm64-apple-darwin.tar.gz
bb44628fe27497c25c0e4787eed944aaa55dd86793b6b3dfee0e2da59bbed193  guix-build-7c298fe0df38/output/dist-archive/bitcoin-7c298fe0df38.tar.gz
33c4fd5893b5e91dd20e70df3c4f56ec82def979fe6851b44228f85a79fd50e5  guix-build-7c298fe0df38/output/x86_64-apple-darwin/SHA256SUMS.part
3310b3287ef77ffa6bf94b4cd3bb20da671c9ca70f9f0eb7c79facbd8406d6e6  guix-build-7c298fe0df38/output/x86_64-apple-darwin/bitcoin-7c298fe0df38-x86_64-apple-darwin-unsigned.tar.gz
1c708931000a2406f281b007fd93b4179e4aa59ba9e830396f46b371b8aba48e  guix-build-7c298fe0df38/output/x86_64-apple-darwin/bitcoin-7c298fe0df38-x86_64-apple-darwin-unsigned.zip
d1b14feace185d20276d785cf52efef73d05d6396ef598b3dcf2bd11711afc34  guix-build-7c298fe0df38/output/x86_64-apple-darwin/bitcoin-7c298fe0df38-x86_64-apple-darwin.tar.gz

@fanquake fanquake merged commit 9c5cdf0 into bitcoin:master Jun 18, 2024
16 checks passed
@fanquake fanquake deleted the use_mmacos_over_mmacosx branch June 18, 2024 09:55
kwvg added a commit to kwvg/dash that referenced this pull request Dec 31, 2024
kwvg added a commit to kwvg/dash that referenced this pull request Jan 2, 2025
kwvg added a commit to kwvg/dash that referenced this pull request Jan 3, 2025
PastaPastaPasta added a commit to dashpay/dash that referenced this pull request Jan 7, 2025
, bitcoin#28757, bitcoin#28845, bitcoin#28932, bitcoin#28973, bitcoin#21778, bitcoin#30204, bitcoin#29765, bitcoin#30201, bitcoin#30287, bitcoin#30511 (toolchain backports: part 3)

ee04e1f merge bitcoin#30511: GCC 12 consolidation (Kittywhiskers Van Gogh)
cc5c30e merge bitcoin#30287: rewrite some docs & swap `mmacosx-version-min` for `mmacos-version-min` (Kittywhiskers Van Gogh)
632b8b4 merge bitcoin#30201: remove `FORCE_USE_SYSTEM_CLANG` (Kittywhiskers Van Gogh)
994e7b1 merge bitcoin#29765: Use clang-18 (Kittywhiskers Van Gogh)
7e7d7bd merge bitcoin#30204: consolidate dependency docs (Kittywhiskers Van Gogh)
061a608 merge bitcoin#21778: LLD based macOS toolchain (Kittywhiskers Van Gogh)
ea891d4 fix: use `LDFLAGS` when compiling `gmp`'s `configure` test programs (Kittywhiskers Van Gogh)
c2fe7c6 merge bitcoin#28973: remove `libz-dev` from macOS build deps (Kittywhiskers Van Gogh)
62e671d merge bitcoin#28932: remove `python3-setuptools` from macOS build deps (Kittywhiskers Van Gogh)
5bef1e5 merge bitcoin#28845: remove `PYTHONPATH` from config.site (Kittywhiskers Van Gogh)
c501a0d merge bitcoin#28757: Zip needs to include all files and set time to SOURCE_DATE_EPOCH (Kittywhiskers Van Gogh)
122a61f merge bitcoin#28432: Produce a `.zip` for macOS distribution (Kittywhiskers Van Gogh)
407deab merge bitcoin#25612: default to using GCC tool wrappers for LTO (with GCC) (Kittywhiskers Van Gogh)
f0a0040 fix: ensure that `dsymutil` available even when `FORCE_USE_SYSTEM_CLANG=1` (Kittywhiskers Van Gogh)
416e154 merge bitcoin#24866: No longer need to hack the PATH variable in `config.site` (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Depends on #6385

  * Omissions related to explicitly defining the location of `DSYMUTIL` (see [dash#6384](#6384) for more information) have been remedied and are now included (completing [bitcoin#24866](bitcoin#24866) and [bitcoin#25612](bitcoin#25612) in this pull request), courtesy of a fix that defines `DSYMUTIL` even when `FORCE_USE_SYSTEM_CLANG` is defined ([commit](f0a0040)).
    * This fix is effectively reverted in [bitcoin#21778](bitcoin#21778) as the backport ensures that `DSYMUTIL` is defined in the `FORCE_USE_SYSTEM_CLANG` case and `cctools` is no longer used.
    * It still remains to allow testing and validation of commits pre-[bitcoin#21778](bitcoin#21778).

  * GMP runs its test programs during build configuration sans `LDFLAGS` ([source](https://github.com/gmp-mirror/gmp/blob/141ed4f98a50e4a3c1a95a1758cb599b7499ac39/acinclude.m4#L1755)), which are quite important when using an LLD-based toolchain as we rely on it to take on `ld64`'s duties ([source](https://lld.llvm.org/MachO/index.html)) using `-fuse-ld=lld` ([source](https://lld.llvm.org/#using-lld)). This has been remedied by patching `acinclude.m4` and `configure.ac` to include `LDFLAGS`.

    <details>

    <summary>configure failure:</summary>

     ```
     checking build system type... x86_64-pc-linux-gnu
     checking host system type... x86_64-apple-darwin
     checking for a BSD-compatible install... /home/debian/.guix-profile/bin/install -c
     checking whether build environment is sane... yes
     checking for x86_64-apple-darwin-strip... no
     checking for strip... strip
     configure: WARNING: using cross tools not prefixed with host triplet
     checking for a thread-safe mkdir -p... /home/debian/.guix-profile/bin/mkdir -p
     checking for gawk... gawk
     checking whether make sets $(MAKE)... yes
     checking whether make supports nested variables... yes
     checking whether to enable maintainer-specific portions of Makefiles... no
     checking ABI=64
     checking whether env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks is gcc... yes
     checking compiler env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks -pipe -std=c11 -mmacos-version-min=11.0 -mlinker-version=711 -O2 -march=x86-64    -I/dash/depends/x86_64-apple-darwin/include... no
     checking ABI=x32
     checking whether env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks is gcc... yes
     checking compiler env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks -pipe -std=c11 -mmacos-version-min=11.0 -mlinker-version=711 -O2 -march=x86-64    -I/dash/depends/x86_64-apple-darwin/include... no
     checking ABI=32
     checking whether env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks is gcc... yes
     checking compiler env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks -pipe -std=c11 -mmacos-version-min=11.0 -mlinker-version=711 -O2 -march=x86-64    -I/dash/depends/x86_64-apple-darwin/include... no
     configure: error: could not find a working compiler, see config.log for details
     make: *** [funcs.mk:302: /dash/depends/x86_64-apple-darwin/.gmp_stamp_configured] Error 1
     make: Leaving directory '/dash/depends'
     ```

    </details>

    <details>

    <summary>config.log excerpt:</summary>

     ```
     This file contains any messages produced by compilers while
     running configure, to aid debugging if configure makes a mistake.

     It was created by GNU MP configure 6.3.0, which was
     generated by GNU Autoconf 2.69.  Invocation command line was

     [...]

     ## --------- ##
     ## Platform. ##
     ## --------- ##

     hostname = [...]
     uname -m = x86_64
     uname -r = 6.6.32[...]
     uname -s = Linux
     uname -v = #1 SMP PREEMPT_DYNAMIC Mon Jul  8 16:11:58 UTC 2024

     /usr/bin/uname -p = unknown
     /bin/uname -X     = unknown

     /bin/arch              = unknown
     /usr/bin/arch -k       = unknown
     /usr/convex/getsysinfo = unknown
     /usr/bin/hostinfo      = unknown
     /bin/machine           = unknown
     /usr/bin/oslevel       = unknown
     /bin/universe          = unknown

     PATH: /dash/depends/x86_64-apple-darwin/native/bin
     PATH: /home/debian/.guix-profile/bin
     PATH: /home/debian/.guix-profile/sbin

     ## ----------- ##
     ## Core tests. ##
     ## ----------- ##

     [...]
     configure:5889: env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks -c conftest.c >&5
     configure:5892: $? = 0
     configure:5895: checking whether env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks is gcc
     configure:5897: result: yes
     configure:5911: env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks 2>&1 | grep xlc >/dev/null
     configure:5914: $? = 1
     configure:5968: checking compiler env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks -pipe -std=c11 -mmacos-version-min=11.0 -mlinker-version=711 -O2 -march=x86-64   -I/dash/depends/x86_64-apple-darwin/include
     Test compile:
     configure:5982: env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/debian/.guix-profile/bin/clang --target=x86_64-apple-darwin -isysroot/dash/depends/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks -pipe -std=c11 -mmacos-version-min=11.0 -mlinker-version=711 -O2 -march=x86-64   -I/dash/depends/x86_64-apple-darwin/include conftest.c >&5
     ld: unrecognized option '-dynamic'
     ld: use the --help option for usage information
     clang: error: linker command failed with exit code 1 (use -v to see invocation)
     configure:5985: $? = 1
     failed program was:

     int main () { return 0; }
     configure:7072: result: no
     [...]
     configure:7310: error: could not find a working compiler, see config.log for details
     [...]

     ## ---------------- ##
     ## Cache variables. ##
     ## ---------------- ##

     [...]
     ac_cv_env_LDFLAGS_set=set
     ac_cv_env_LDFLAGS_value='-Wl,-platform_version,macos,11.0,14.0 -Wl,-no_adhoc_codesign -fuse-ld=lld  -L/dash/depends/x86_64-apple-darwin/lib'
     [...]
     LD=''
     LDFLAGS='-Wl,-platform_version,macos,11.0,14.0 -Wl,-no_adhoc_codesign -fuse-ld=lld  -L/dash/depends/x86_64-apple-darwin/lib'
     [...]

     ## ----------- ##
     ## confdefs.h. ##
     ## ----------- ##

     /* confdefs.h */
     #define PACKAGE_NAME "GNU MP"
     #define PACKAGE_TARNAME "gmp"
     #define PACKAGE_VERSION "6.3.0"
     #define PACKAGE_STRING "GNU MP 6.3.0"
     #define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org (see https://gmplib.org/manual/Reporting-Bugs.html)"
     #define PACKAGE_URL "http://www.gnu.org/software/gmp/"
     #define PACKAGE "gmp"
     #define VERSION "6.3.0"
     #define WANT_FFT 1
     #define HAVE_HOST_CPU_x86_64 1

     configure: exit 1
     ```

     **Note:** `lld` itself will never respond like this, as it will exit with a catch-all message requesting you to invoke it with the correct name

     ```
     $ lld -dynamic
     lld is a generic driver.
     Invoke ld.lld (Unix), ld64.lld (macOS), lld-link (Windows), wasm-ld (WebAssembly) instead
     ```

     Nor is it calling the Unix-specific variant mistakenly

     ```
     $ ld.lld -dynamic
     ld.lld: error: unknown argument '-dynamic', did you mean '-Bdynamic'
     ```

     The error displayed above is consistent with GNU `ld`
     ```
     $ ld -dynamic
     ld: unrecognized option '-dynamic'
     ld: use the --help option for usage information
     ```

    </details>

    * A similar problem is observed for Qt, which was resolved upstream by adding it to `CXXFLAGS` ([source](https://github.com/bitcoin/bitcoin/blob/e8c25e8a35e333e90514945c592557615641553f/depends/patches/qt/mac-qmake.conf#L16)) (but this comes at the downside of an unused argument warnings whenever the compiler doesn't intend to do any linking and is why we didn't just modify `darwin_{CC,CXX}` instead)

      <details>

      <summary>Warning messages when building Qt:</summary>

      ```
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      compiling kernel/qplatformcursor.cpp
      compiling kernel/qplatformclipboard.cpp
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      compiling kernel/qplatformsurface.cpp
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      4 warnings generated.
      compiling kernel/qcursor.cpp
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      compiling kernel/qguivariant.cpp
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      compiling kernel/qshortcutmap.cpp
      compiling kernel/qtouchdevice.cpp
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      compiling kernel/qplatformservices.cpp
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      kernel/qplatformcursor.cpp:622:17: warning: variable 'w' set but not used [-Wunused-but-set-variable]
      622 |     int x = -1, w = 0;
          |                 ^
      compiling kernel/qplatformsessionmanager.cpp
      clang++: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
      ```

      </details>

  * Clang has been bumped to 18 as [bitcoin#30201](bitcoin#30201) drops `native_llvm` (formerly known as `native_clang`) and mandates the presence of Clang 18 or higher for cross-compilation ([source](https://github.com/bitcoin/bitcoin/blob/7cbfd7a7ce45ac68d6041f42f468862f5c193d8c/depends/README.md?plain=1#L54-L57)).

  ## Breaking Changes

  None expected

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [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:
  PastaPastaPasta:
    utACK ee04e1f
  UdjinM6:
    utACK ee04e1f

Tree-SHA512: 0b8be036419a53eda5be77c9abdf214d8f5baa088526f9249daba31e650c50f831f54c389845f828f8b7cf50458967f211a6d42d12b8dae8546b265d7f37a968
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants