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

Bump LDC-LLVM to v18.1.8 #4712

Merged
merged 2 commits into from
Aug 10, 2024
Merged

Bump LDC-LLVM to v18.1.8 #4712

merged 2 commits into from
Aug 10, 2024

Conversation

kinke
Copy link
Member

@kinke kinke commented Jul 27, 2024

No description provided.

@kinke kinke force-pushed the bump_ldc_llvm branch 2 times, most recently from 45fce4f to e0dca75 Compare July 28, 2024 10:13
@kinke
Copy link
Member Author

kinke commented Jul 29, 2024

Sigh, that macOS arm64 thing... no improvements with Xcode 16 by the looks of it (beta 3 used for both LLVM and LDC).

The unsupported-stack-probing-method (when enabling LTO for the C++ parts) seems to originate from https://github.com/llvm/llvm-project/blob/3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp#L142, only supporting inline-asm apparently. Edit: Ah, introduced in LLVM 18: llvm/llvm-project#66524

According to https://stackoverflow.com/questions/78697653/how-do-i-get-a-clang-compiler-invocation-to-generate-debug-information, Apple clang might specify probe-stack=__chkstk_darwin.

So I guess what happens is that Apple have modified this in their fork, including patching that check for inline-asm. I've tried using -mno-stack-arg-probe -fno-stack-protector for the C++ parts then, in the hopes of turning off these stack probes for good, but no, the same error remains.

@kinke
Copy link
Member Author

kinke commented Jul 29, 2024

Btw, @ Apple users reading this: is there a way to figure out what LLVM version Apple-clang v16 is based on?

@thewilsonator
Copy link
Contributor

Wikipedia says 17.0.6 https://en.wikipedia.org/wiki/Xcode#Xcode_15.0_-_(since_visionOS_support)_2

@kinke kinke marked this pull request as ready for review August 10, 2024 13:22
@kinke
Copy link
Member Author

kinke commented Aug 10, 2024

Okay, what seems to be working on macOS arm64 is skipping the bootstrap LDC build, using a pinned LDC v1.39 host compiler (based on LLVM 17, as Xcode 16) instead for the PGO-instrumented and final builds. I guess there's a breaking change in LLVM 18 wrt. stack checks on Apple arm64, causing these sporadic 'pure virtual func called' crashes with the C++ parts built with LLVM 17.

@kinke kinke merged commit 843844d into ldc-developers:master Aug 10, 2024
20 checks passed
@kinke kinke deleted the bump_ldc_llvm branch August 10, 2024 16:12
@JohanEngelen
Copy link
Member

Okay, what seems to be working on macOS arm64 is skipping the bootstrap LDC build, using a pinned LDC v1.39 host compiler (based on LLVM 17, as Xcode 16) instead for the PGO-instrumented and final builds. I guess there's a breaking change in LLVM 18 wrt. stack checks on Apple arm64, causing these sporadic 'pure virtual func called' crashes with the C++ parts built with LLVM 17.

Thanks for the hard work of figuring out a solution!!

JohanEngelen pushed a commit to weka/ldc that referenced this pull request Aug 20, 2024
Get rid of cycles in DtoType()

Merge pull request ldc-developers#4712 from kinke/bump_ldc_llvm

Bump LDC-LLVM to v18.1.8

Revert "Merge pull request ldc-developers#4736 from kinke/fix4734"

This reverts commit 53dc56a73f0704bee6fc5db82bae5e0d0b98f82b.
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.

3 participants