commit | 3eb889508c8c41e5e7a04913044e8d82878cdf13 | [log] [tgz] |
---|---|---|
author | plf <plf@google.com> | Tue Mar 19 10:58:59 2019 -0700 |
committer | John Cater <jcater@google.com> | Tue Mar 19 14:23:24 2019 -0400 |
tree | a99c1416227bdca9b3ae16303dd981ea9fee4d10 | |
parent | 7066966179127150babfbe75da2e89e06c0def4a [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.