diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
index d807f2e..330bcdc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
@@ -820,7 +820,10 @@
               getLinkType().linkerOrArchiver().equals(LinkerOrArchiver.LINKER),
               configuration.getBinDirectory(repositoryName).getExecPath(),
               output.getExecPathString(),
-              output.getRootRelativePath().getBaseName(),
+              SolibSymlinkAction.getDynamicLibrarySoname(
+                  output.getRootRelativePath(),
+                  /* preserveName= */ false,
+                  actionConstructionContext.getConfiguration().getMnemonic()),
               linkType.equals(LinkTargetType.DYNAMIC_LIBRARY),
               paramFile != null ? paramFile.getExecPathString() : null,
               thinltoParamFile != null ? thinltoParamFile.getExecPathString() : null,
diff --git a/src/test/shell/bazel/cpp_darwin_integration_test.sh b/src/test/shell/bazel/cpp_darwin_integration_test.sh
index 4676e6c..e26d2a9 100755
--- a/src/test/shell/bazel/cpp_darwin_integration_test.sh
+++ b/src/test/shell/bazel/cpp_darwin_integration_test.sh
@@ -124,59 +124,41 @@
 }
 
 function test_cc_test_with_explicit_install_name() {
-  mkdir -p cpp/install_name
-  cat > cpp/install_name/BUILD <<EOF
+  mkdir -p cpp
+  cat > cpp/BUILD <<EOF
 cc_library(
   name = "foo",
   srcs = ["foo.cc"],
-)
-cc_binary(
-  name = "libbar.so",
-  srcs = ["bar.cc"],
-  linkshared = 1,
-)
-cc_binary(
-  name = "libbaz.dylib",
-  srcs = ["baz.cc"],
-  linkshared = 1,
+  hdrs = ["foo.h"],
 )
 cc_test(
   name = "test",
-  srcs = ["test.cc", ":libbar.so", ":libbaz.dylib"],
+  srcs = ["test.cc"],
   deps = [":foo"],
 )
 EOF
-  cat > cpp/install_name/foo.cc <<EOF
-  int foo() { return 2; }
-EOF
-  cat > cpp/install_name/bar.cc <<EOF
-  int bar() { return 12; }
-EOF
-  cat > cpp/install_name/baz.cc <<EOF
-  int baz() { return 42; }
-EOF
-  cat > cpp/install_name/test.cc <<EOF
+  cat > cpp/foo.h <<EOF
   int foo();
-  int bar();
-  int baz();
+EOF
+  cat > cpp/foo.cc <<EOF
+  int foo() { return 0; }
+EOF
+  cat > cpp/test.cc <<EOF
+  #include "cpp/foo.h"
   int main() {
-    int result = foo() + bar() + baz();
-    if (result == 56) {
-      return 0;
-    } else {
-      return result;
-    }
+    return foo();
   }
 EOF
 
-  bazel test --incompatible_macos_set_install_name //cpp/install_name:test || \
-      fail "bazel test //cpp/install_name:test failed"
+  bazel test --incompatible_macos_set_install_name //cpp:test || \
+      fail "bazel test //cpp:test failed"
   # Ensure @rpath is correctly set in the binary.
-  ./bazel-bin/cpp/install_name/test || \
+  ./bazel-bin/cpp/test || \
       fail "//cpp:test workspace execution failed, expected return 0, got $?"
   cd bazel-bin
-  ./cpp/install_name/test || \
+  ./cpp/test || \
       fail "//cpp:test execution failed, expected 0, but $?"
 }
 
 run_suite "Tests for Bazel's C++ rules on Darwin"
+
