Skip to content

Commit 3f47128

Browse files
authored
Migrate to the modern linker input API. (bazel-contrib#2683)
Migrates cgo code away from deprecated Bazel cc Starlark apis.
1 parent 765f676 commit 3f47128

File tree

3 files changed

+17
-17
lines changed

3 files changed

+17
-17
lines changed

.bazelci/presubmit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
platforms:
33
ubuntu1604:
4-
bazel: 2.2.0 # test minimum supported version of bazel on ubuntu1604 only
4+
bazel: 3.0.0 # test minimum supported version of bazel on ubuntu1604 only
55
build_targets:
66
- "..."
77
test_targets:

go/private/common.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def has_versioned_shared_lib_extension(path):
208208

209209
return True
210210

211-
MINIMUM_BAZEL_VERSION = "2.2.0"
211+
MINIMUM_BAZEL_VERSION = "3.0.0"
212212

213213
def as_list(v):
214214
"""Returns a list, tuple, or depset as a list."""

go/private/rules/cgo.bzl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
load(
1616
"//go/private:common.bzl",
17-
"as_iterable",
1817
"has_simple_shared_lib_extension",
1918
"has_versioned_shared_lib_extension",
2019
"hdr_exts",
@@ -109,7 +108,7 @@ def cgo_configure(go, srcs, cdeps, cppopts, copts, cxxopts, clinkopts):
109108
if CcInfo in d:
110109
cc_transitive_headers = d[CcInfo].compilation_context.headers
111110
inputs_transitive.append(cc_transitive_headers)
112-
cc_libs = _cc_libs(d)
111+
cc_libs, cc_link_flags = _cc_libs_and_flags(d)
113112
inputs_direct.extend(cc_libs)
114113
deps_direct.extend(cc_libs)
115114
cc_defines = d[CcInfo].compilation_context.defines.to_list()
@@ -146,7 +145,6 @@ def cgo_configure(go, srcs, cdeps, cppopts, copts, cxxopts, clinkopts):
146145
inputs_direct.append(lib)
147146
else:
148147
lib_opts.append(lib.path)
149-
cc_link_flags = d[CcInfo].linking_context.user_link_flags
150148
clinkopts.extend(cc_link_flags)
151149

152150
elif hasattr(d, "objc"):
@@ -185,21 +183,23 @@ def cgo_configure(go, srcs, cdeps, cppopts, copts, cxxopts, clinkopts):
185183
clinkopts = clinkopts,
186184
)
187185

188-
def _cc_libs(target):
186+
def _cc_libs_and_flags(target):
189187
# Copied from get_libs_for_static_executable in migration instructions
190188
# from bazelbuild/bazel#7036.
191-
libraries_to_link = as_iterable(target[CcInfo].linking_context.libraries_to_link)
192189
libs = []
193-
for library_to_link in libraries_to_link:
194-
if library_to_link.static_library != None:
195-
libs.append(library_to_link.static_library)
196-
elif library_to_link.pic_static_library != None:
197-
libs.append(library_to_link.pic_static_library)
198-
elif library_to_link.interface_library != None:
199-
libs.append(library_to_link.interface_library)
200-
elif library_to_link.dynamic_library != None:
201-
libs.append(library_to_link.dynamic_library)
202-
return libs
190+
flags = []
191+
for li in target[CcInfo].linking_context.linker_inputs.to_list():
192+
flags.extend(li.user_link_flags)
193+
for library_to_link in li.libraries:
194+
if library_to_link.static_library != None:
195+
libs.append(library_to_link.static_library)
196+
elif library_to_link.pic_static_library != None:
197+
libs.append(library_to_link.pic_static_library)
198+
elif library_to_link.interface_library != None:
199+
libs.append(library_to_link.interface_library)
200+
elif library_to_link.dynamic_library != None:
201+
libs.append(library_to_link.dynamic_library)
202+
return libs, flags
203203

204204
_DEFAULT_PLATFORM_COPTS = select({
205205
"@io_bazel_rules_go//go/platform:darwin": [],

0 commit comments

Comments
 (0)