Conversation
|
GCC 5 patch will need updating. CC @danielnachun |
|
The patch shouldn't be necessary in LLVM 13 since it's supposed to have been fixed upstream. |
LLDB still fails to build, so it seems this is not yet fixed. The fix referenced at the start of the bug report isn't complete. |
Ok I didn't notice the additional part. The additional patch to But the error doesn't appear to be complaining about that but rather |
|
Some of these look like they might need something other than a revision bump, but let's see. Julia will fail to build with Xcode 13. JuliaLang/julia@4dea1c4 needs backporting. |
|
|
0f06fc1 to
7f640ec
Compare
Ideas, anyone?
|
|
I think |
e9a0a32 to
0215433
Compare
6962090 to
6563163
Compare
|
LLVM 13 is out. Still haven't worked out how to build it on Linux. Going to try Homebrew GCC. |
Also, replace workaround with setting the appropriate `RPATH` instead of copying `libLLVM`.
Also, update the patches to use the merged ones from klee/klee#1389.
Also, skip the `dlopen` tests on Linux, as they're not suitable when Julia depends on a keg-only LLVM.
|
@chandlerc the error @carlocab posted above is new as of LLVM 13, and prevents us from building with GCC 5. Can you take a look? It is probably related to this commit llvm/llvm-project@6eb576d, though there were two others before it that were added after the LLVM 12 release. |
|
All builds are green. This should be ready to go very soon. |
|
Merging, since #80227 is waiting on this one. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@danielnachun note that I was using the patch here: Homebrew/formula-patches#398. This is just the remaining hunk from the patch we used for LLVM 12 that isn't upstream yet. Patching the source just to build with the host GCC is a pain. I think we can just give up on patching and build LLDB with the just-built Clang instead. Or package LLDB as a separate formula (which we can build with GCC or LLVM as appropriate). The latter would allow us to drop Python as a runtime dependency of this formula. |
|
I agree as it seems that LLVM (or at least LLDB) isn’t being tested with GCC 5 despite officially supporting it. Given how demanding LLVM is in general of the host compiler I think using brewed GCC may be a better choice. The biggest pain for Linux users with using having brewed GCC as a runtime for LLVM is that the GCC bottle is incorrectly made non-relocatable on Linux. However this will be fixed by Homebrew/brew#11899, which I will reopen and prioritize finishing. From a maintainer perspective, the main issue is C++ runtime dependencies of LLVM needing to be built with brewed GCC. I suspect a large chunk of that is through |
|
Or, another alternative: Build LLVM with a slightly older GCC (7?), make it a build-only dependency, and then add a |
It's probably true that this would help to reduce the number of users who have to installed brewed However I think the above solution still requires us to update all LLVM C++ dependents so they know to build with the newer GCC, as merely having some version of brewed GCC in the dependency tree does not mean it actually gets used to compile. Note that this is necessary even if the formula is built with These issues are making me wonder if in the long run on Linux it will make more sense for us to just start using brewed GCC for C++ on Linux. On macOS using the host toolchain to build C++ binaries isn't too bad because Apple updates it for us regularly. On Linux that's not the case, and it is the source of a lot of our difficulties with C++. The fact that some users who happen to have a new enough host version of These are just my thoughts at the moment and I'm happy to discuss this in more depth (though probably in a different place than this closed PR). |
This is because of the `fails_with :gcc`, whose behaviour changed with Homebrew/homebrew-test-bot#675. Note that this didn't come up in Homebrew#85898.
This removes a workaround from Homebrew#85898.
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 doingbrew install --build-from-source <formula>)? If this is a new formula, does it passbrew audit --new <formula>?