)]}'
{
  "commit": "ea1703b30f9ac43a0c3262f5729c34658ed8d473",
  "tree": "cf07b373ba1cdc9ef462f9840f85d74cf388f650",
  "parents": [
    "044a5f97c19487fcedb5e27027125a2e618beeb4"
  ],
  "author": {
    "name": "plf",
    "email": "plf@google.com",
    "time": "Tue Mar 19 10:58:59 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Mar 19 11:00:55 2019 -0700"
  },
  "message": "C++: Fix crash reported in #7721\n\nobjc_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\u0027t been added to objective-C rules yet.\n\nWith 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 -\u003e objc_library -\u003e 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\u0027t been added to Objective-C.\n\nThe 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.\n\nRELNOTES:none\nPiperOrigin-RevId: 239226003\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5811cd95074a20c4e792f0546464d98b0e5dcdd4",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java",
      "new_id": "94095fdde83a6626f5d99fc314391ca92138319c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java"
    },
    {
      "type": "modify",
      "old_id": "cb76b21a6e00c3b5e2bce86845313b2903f65eae",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java",
      "new_id": "ef86a68ff1655d0d8d62b8bcd066f70327c8bca3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java"
    },
    {
      "type": "modify",
      "old_id": "cafa6b28e409e67d07f581cef3c93fafcf86252a",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java",
      "new_id": "5bc13bade4449b45f388b9ceb369f6f0666ddbfa",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java"
    },
    {
      "type": "modify",
      "old_id": "4ef88fa6fd4b4d5189db4c64101f78a94683bae5",
      "old_mode": 33261,
      "old_path": "src/test/shell/bazel/apple/bazel_objc_test.sh",
      "new_id": "b2b64b1a73cc15d03fe7483b0ffd555b1a628cee",
      "new_mode": 33261,
      "new_path": "src/test/shell/bazel/apple/bazel_objc_test.sh"
    }
  ]
}
