-
-
Notifications
You must be signed in to change notification settings - Fork 12.4k
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
llvm lld flang 19.1.1 #192505
llvm lld flang 19.1.1 #192505
Conversation
44621c9
to
8cf2ba2
Compare
Based on https://github.com/orgs/Homebrew/discussions/5631, we probably should disable EH since we now ship Flang. homebrew-core/Formula/l/llvm.rb Line 111 in 77f6529
This is how other repositories that ship Other References:
EDIT: If we want to keep it on, may need to add at minimum some caveats or perhaps some workarounds as our build is non-standard. |
8cf2ba2
to
09cd91b
Compare
I'd just follow what Fedora are doing. LLVM's lead maintainer and one (out of two) of the LLVM release managers maintain the Fedora packages. But if we want to turn off EH and/or RTTI (though IIRC RTTI requires EH -- but maybe it was the other way around), I would suggest saving it for LLVM 20 because changing those settings will require recompiling everything that links to |
That's weird, since their spec files show https://src.fedoraproject.org/rpms/llvm/blob/3b5b15045a8c9449d53582df0842c21465e99e4f/f/build.spec.inc#_70 Probably worth investigating further. |
Looks like it may be arch-specific. x86_64 rpm does have it enabled:
Anyway, I think the upstream CMake check (llvm/llvm-project@f7e58c9) wasn't tested on Standalone mode which is why it currently works. There should probably be a caveat as CMake LLVMFlang can't handle our |
We could just create a wrapper script that always adds Setting CC @Bo98 for thoughts. |
It can affect ABI at least. Though I also agree we should try disable it & RTTI. LLVM 20 is definitely a good time to make changes. Somewhat relatedly: perhaps worth considering if libcxx probably should be split to a separate formula. We've had regular bug reports about it since the LLVM C++ headers got prioritised again. |
Testing creating a |
This addresses issues users have had at Homebrew/discussions#5631. See also discussion at #192505. We could probably rebuild LLVM with `LLVM_ENABLE_EH=OFF`, but that breaks the ABI so we should save it for LLVM 20 at the earliest.
Also: - remove the `zstd` and `zlib` dependencies since there's no actual linkage - reduce the scope of the `llvm` method to a variable in `install`
09cd91b
to
22c68a0
Compare
This addresses issues users have had at Homebrew/discussions#5631. See also discussion at #192505. We could probably rebuild LLVM with `LLVM_ENABLE_EH=OFF`, but that breaks the ABI so we should save it for LLVM 20 at the earliest.
Adding a system config file will allow us to stop baking in the `DEFAULT_SYSROOT` and allow users on Xcode-only installations to use the bottles. It will also make it easier to update this value when users upgrade the major version of their macOS. Before this change, this required a full reinstall. After, users will simply have to `brew postinstall llvm`. The config file change requires an upstream patch. We'll probably have to wait a little bit for it to merge, and then wait another few days to make sure it doesn't get reverted. Following discussion at #192505, let's also update the caveats to notify users of potential changes regarding `LLVM_ENABLE_EH` in LLVM 20.
Adding a system config file will allow us to stop baking in the `DEFAULT_SYSROOT` and allow users on Xcode-only installations to use the bottles. It will also make it easier to update this value when users upgrade the major version of their macOS. Before this change, this required a full reinstall. After, users will simply have to `brew postinstall llvm`. The config file change requires an upstream patch. We'll probably have to wait a little bit for it to merge, and then wait another few days to make sure it doesn't get reverted. Following discussion at #192505, let's also update the caveats to notify users of potential changes regarding `LLVM_ENABLE_EH` in LLVM 20.
|
Seen while testing dependents at #192505.
Seen while testing dependents at #192505.
This addresses issues users have had at Homebrew/discussions#5631. See also discussion at #192505. We could probably rebuild LLVM with `LLVM_ENABLE_EH=OFF`, but that breaks the ABI so we should save it for LLVM 20 at the earliest.
Seen while testing dependents at #192505.
This addresses issues users have had at Homebrew/discussions#5631. See also discussion at #192505. We could probably rebuild LLVM with `LLVM_ENABLE_EH=OFF`, but that breaks the ABI so we should save it for LLVM 20 at the earliest.
This addresses issues users have had at Homebrew/discussions#5631. See also discussion at #192505. We could probably rebuild LLVM with `LLVM_ENABLE_EH=OFF`, but that breaks the ABI so we should save it for LLVM 20 at the earliest.
Adding a system config file will allow us to stop baking in the `DEFAULT_SYSROOT` and allow users on Xcode-only installations to use the bottles. It will also make it easier to update this value when users upgrade the major version of their macOS. Before this change, this required a full reinstall. After, users will simply have to `brew postinstall llvm`. The config file change requires an upstream patch. We'll probably have to wait a little bit for it to merge, and then wait another few days to make sure it doesn't get reverted. Following discussion at #192505, let's also update the caveats to notify users of potential changes regarding `LLVM_ENABLE_EH` in LLVM 20.
Adding a system config file will allow us to stop baking in the `DEFAULT_SYSROOT` and allow users on Xcode-only installations to use the bottles. It will also make it easier to update this value when users upgrade the major version of their macOS. Before this change, this required a full reinstall. After, users will simply have to `brew postinstall llvm`. The config file change requires an upstream patch. We'll probably have to wait a little bit for it to merge, and then wait another few days to make sure it doesn't get reverted. Following discussion at #192505, let's also update the caveats to notify users of potential changes regarding `LLVM_ENABLE_EH` in LLVM 20.
Adding a system config file will allow us to stop baking in the `DEFAULT_SYSROOT` and allow users on Xcode-only installations to use the bottles. It will also make it easier to update this value when users upgrade the major version of their macOS. Before this change, this required a full reinstall. After, users will simply have to `brew postinstall llvm`. The config file change requires an upstream patch. We'll probably have to wait a little bit for it to merge, and then wait another few days to make sure it doesn't get reverted. Following discussion at #192505, let's also update the caveats to notify users of potential changes regarding `LLVM_ENABLE_EH` in LLVM 20.
Adding a system config file will allow us to stop baking in the `DEFAULT_SYSROOT` and allow users on Xcode-only installations to use the bottles. It will also make it easier to update this value when users upgrade the major version of their macOS. Before this change, this required a full reinstall. After, users will simply have to `brew postinstall llvm`. The config file change requires an upstream patch. We'll probably have to wait a little bit for it to merge, and then wait another few days to make sure it doesn't get reverted. Following discussion at #192505, let's also update the caveats to notify users of potential changes regarding `LLVM_ENABLE_EH` in LLVM 20.
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingHOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?