commit | f8e38d1a4b4d8cc6b4855c100971706ba77b7f30 | [log] [tgz] |
---|---|---|
author | Keith Smiley <keithbsmiley@gmail.com> | Wed Feb 13 13:33:36 2019 -0800 |
committer | Copybara-Service <copybara-piper@google.com> | Wed Feb 13 13:35:41 2019 -0800 |
tree | 8d5ed4343a90bd50b353936ef248fc047e253288 | |
parent | ce1a64e4a8452f1386254c9bbdb190ff88567471 [diff] |
Support bitcode for Apple platforms This changes the osx crosstool to support bitcode for all apple platforms. The behavior of bitcode is: - For simulators, never pass any bitcode related linker, or compiler flags - For devices: - For embedded bitcode markers - Pass `-fembed-bitcode-marker` to the compile and link commands - For embedded bitcode - Pass `-fembed-bitcode` to the compile and link commands - Pass `-bitcode_verify` `-bitcode_hide_symbols` `-bitcode_symbol_map` to the link command - Pass a output file path, wrapped in `BITCODE_TOUCH_SYMBOL_MAP` which is a clang wrapper workaround With any bitcode link commands, you cannot pass `-headerpad_max_install_names` or you get a warning. You can see the logic for that [here](https://opensource.apple.com/source/ld64/ld64-253.9/src/ld/Options.cpp.auto.html). To make sure that debug and release builds are as close as possible, I've disabled this flag for all builds including the simulator if bitcode is requested. Fixes https://github.com/bazelbuild/bazel/issues/4982 Closes #7356. PiperOrigin-RevId: 233818910
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel only rebuilds what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md
Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.