-
-
Notifications
You must be signed in to change notification settings - Fork 11.3k
Handling non-standard universal builds under superenv #17352
Conversation
The other thing that needs to be addressed is how this should be specified in the formula DSL. We need a way to differentiate between things where |
This bug is currently effecting the universal build of llvm... should we add |
Yeah. |
In the CMake/MySQL case you could just do ENV.universal_binary and pass the CMake flag too. |
I agree with the solution that |
Here's a first piece of work (#21664). |
I need to get this sorted so that we can build openssl universal. wip: |
@Homebrew/owners - anyone want to bikeshed the name |
Seems OK; does the |
No, just picked it at random. |
For the purposes of this discussion, the "standard" universal build is the current behavior of
ENV.universal_binary
: passing-arch i386 -arch x86_64
to the compiler and linker.Currently this works under both superenv and stdenv, but superenv doesn't handle things that diverge from this convention, e.g. mysql:
this formula does not call
ENV.universal_binary
, so any arch flags that the build system passes to the compiler will be filtered out. The procedure for handling this has thus far been to punt and addenv :std if build.universal?
to the formula.So we need to to add a switch to superenv that doesn't explicitly add universal arch flags, but doesn't filter them out, either.
One possibility would be to keep a struct representing the universal "mode" (e.g.
allow_universal_flags
oradd_universal_flags
) on the formula's BuildEnvironment object, and pass it into superenv during universal builds.