commit | ea1703b30f9ac43a0c3262f5729c34658ed8d473 | [log] [tgz] |
---|---|---|
author | plf <plf@google.com> | Tue Mar 19 10:58:59 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Mar 19 11:00:55 2019 -0700 |
tree | cf07b373ba1cdc9ef462f9840f85d74cf388f650 | |
parent | 044a5f97c19487fcedb5e27027125a2e618beeb4 [diff] |
C++: Fix crash reported in #7721 objc_libraries used to always take the static libraries of C++ dependencies even if dynamic libraries were available. This is because support for dynamic linking of C++ dependencies hasn't been added to objective-C rules yet. With https://github.com/bazelbuild/bazel/commit/3e727b19ee5b44162f5548aa01599256f3602715#diff-033df3f3a834149658486b8a5754baefL438, we started propagating both static libraries and dynamic libraries in the new implementation of LibraryToLink. Since cc_test by default will always try to link dynamically, the behavior changed and if we had the dependency chain cc_test -> objc_library -> cc_library; the cc_test would start using the .so file from the cc_library, whereas before it used the .a file. Linking the .so file gives an error since as mentioned, support for this hasn't been added to Objective-C. The fix has been to nullify the dynamic library fields of LibraryToLink as long as a static library was present. This makes the behavior the same as before. RELNOTES:none PiperOrigin-RevId: 239226003
{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.