diff --git a/java/common/java_semantics.bzl b/java/common/java_semantics.bzl
index 58f957e..3a7459c 100644
--- a/java/common/java_semantics.bzl
+++ b/java/common/java_semantics.bzl
@@ -13,6 +13,7 @@
 # limitations under the License.
 """Bazel Java Semantics"""
 
+load("@rules_cc//cc/common:cc_common.bzl", "cc_common")
 load("@rules_cc//cc/common:cc_helper.bzl", "cc_helper")
 
 # copybara: default visibility
@@ -41,6 +42,10 @@
 def _minimize_cc_info(cc_info):
     return cc_info
 
+def _merge_cc_infos(*args, **kwargs):
+    # TODO: b/483025864 - use https://github.com/bazelbuild/rules_cc/commit/011d6d9e7fae71d43df2d4d83c577f2cef2aa52e
+    return cc_common.merge_cc_infos(*args, **kwargs)
+
 _DOCS = struct(
     ATTRS = {
         "resources": """
@@ -112,6 +117,7 @@
         for_attribute = lambda name: _DOCS.ATTRS.get(name, ""),
     ),
     minimize_cc_info = _minimize_cc_info,
+    merge_cc_infos = _merge_cc_infos,
     tokenize_javacopts = _tokenize_javacopts,
     PLATFORMS_ROOT = "@platforms//",
     INCOMPATIBLE_DISABLE_NON_EXECUTABLE_JAVA_BINARY = False,  # Flip when java_single_jar is feature complete
diff --git a/java/private/java_info.bzl b/java/private/java_info.bzl
index 65c6f2a..19c435a 100644
--- a/java/private/java_info.bzl
+++ b/java/private/java_info.bzl
@@ -16,7 +16,6 @@
 Definition of JavaInfo and JavaPluginInfo provider.
 """
 
-load("@rules_cc//cc/common:cc_common.bzl", "cc_common")
 load("@rules_cc//cc/common:cc_info.bzl", "CcInfo")
 load("//java/common:java_semantics.bzl", "semantics")
 load(":native.bzl", "get_internal_java_common")
@@ -175,7 +174,7 @@
     }
 
     if get_internal_java_common().google_legacy_api_enabled():
-        cc_info = semantics.minimize_cc_info(cc_common.merge_cc_infos(cc_infos = [p.cc_link_params_info for p in providers]))
+        cc_info = semantics.minimize_cc_info(semantics.merge_cc_infos(cc_infos = [p.cc_link_params_info for p in providers]))
         result.update(
             cc_link_params_info = cc_info,
             transitive_native_libraries =
@@ -677,7 +676,7 @@
     if get_internal_java_common().google_legacy_api_enabled():
         transitive_cc_infos = [dep.cc_link_params_info for dep in concatenated_deps.runtimedeps_exports_deps]
         transitive_cc_infos.extend(native_libraries)
-        cc_info = semantics.minimize_cc_info(cc_common.merge_cc_infos(cc_infos = transitive_cc_infos))
+        cc_info = semantics.minimize_cc_info(semantics.merge_cc_infos(cc_infos = transitive_cc_infos))
         result.update(
             cc_link_params_info = cc_info,
             transitive_native_libraries =
@@ -686,7 +685,7 @@
     else:
         transitive_native_libraries = []
         if native_libraries:
-            merged_cc_info = cc_common.merge_cc_infos(cc_infos = native_libraries)
+            merged_cc_info = semantics.merge_cc_infos(cc_infos = native_libraries)
             if hasattr(merged_cc_info, "_legacy_transitive_native_libraries"):
                 transitive_native_libraries = [merged_cc_info._legacy_transitive_native_libraries]
             else:
