fix: cgo: include dynamic library when interface library is set (#4569)

On Linux, some packages provide a linker script as the interface library
(e.g. a bare `libfoo.so` containing `GROUP(...)`). The script references
the actual versioned dynamic library, which must also be present in the
sandbox for the linker to resolve it.
diff --git a/go/private/rules/cgo.bzl b/go/private/rules/cgo.bzl
index 1c48d02..eb458da 100644
--- a/go/private/rules/cgo.bzl
+++ b/go/private/rules/cgo.bzl
@@ -198,6 +198,12 @@
                 libs.append(library_to_link.pic_static_library)
             elif library_to_link.interface_library != None:
                 libs.append(library_to_link.interface_library)
+                if library_to_link.dynamic_library != None:
+                    # On Linux, the interface library may be a linker script (e.g.
+                    # "libfoo.so" containing GROUP(...)) that references the actual
+                    # versioned dynamic library. The dynamic library must also be in
+                    # the sandbox so the linker can resolve it.
+                    libs.append(library_to_link.dynamic_library)
             elif library_to_link.dynamic_library != None:
                 libs.append(library_to_link.dynamic_library)
     return libs, flags