Skip to content

Commit 36d93eb

Browse files
authored
Revert "[8.0.0] Propagate linkopts of header-only libraries to cc_shared_library" (#24522)
Reverts #24005 Fixes #24518 Fixes #24521
1 parent 0bef753 commit 36d93eb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+69
-97
lines changed

src/main/starlark/builtins_bzl/common/cc/cc_shared_library.bzl

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -448,15 +448,7 @@ def _filter_inputs(
448448
continue
449449
linker_inputs_seen[stringified_linker_input] = True
450450
owner = str(linker_input.owner)
451-
if semantics.is_bazel and not linker_input.libraries:
452-
# Linker inputs that only provide flags, no code, are considered
453-
# safe to link statically multiple times.
454-
# TODO(bazel-team): semantics.should_create_empty_archive() should be
455-
# cleaned up and return False in every case. cc_libraries shouldn't
456-
# produce empty archives. For now issue #19920 is only fixed in Bazel.
457-
_add_linker_input_to_dict(linker_input.owner, linker_input)
458-
linker_inputs_count += 1
459-
elif owner in targets_to_be_linked_dynamically_set:
451+
if owner in targets_to_be_linked_dynamically_set:
460452
unused_dynamic_linker_inputs[transitive_exports[owner].owner] = None
461453

462454
# Link the library in this iteration dynamically,
@@ -465,6 +457,11 @@ def _filter_inputs(
465457
_add_linker_input_to_dict(linker_input.owner, transitive_exports[owner])
466458
linker_inputs_count += 1
467459
elif owner in targets_to_be_linked_statically_map:
460+
if semantics.is_bazel and not linker_input.libraries:
461+
# TODO(bazel-team): semantics.should_create_empty_archive() should be
462+
# cleaned up and return False in every case. cc_libraries shouldn't
463+
# produce empty archives. For now issue #19920 is only fixed in Bazel.
464+
continue
468465
if owner in link_once_static_libs_map:
469466
# We are building a dictionary that will allow us to give
470467
# proper errors for libraries that have been linked multiple

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/semantics.bzl

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/BUILD.builtin_test renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ NO_BUILD_TAGS = [
2626
licenses(["notice"])
2727

2828
package(
29-
default_visibility = ["//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:__subpackages__"],
29+
default_visibility = ["//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:__subpackages__"],
3030
)
3131

3232
py_test(
@@ -119,7 +119,7 @@ cc_shared_library(
119119
}),
120120
dynamic_deps = [
121121
"bar_so",
122-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test3:diff_pkg_so",
122+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library3:diff_pkg_so",
123123
"private_lib_so",
124124
],
125125
exports_filter = [
@@ -176,7 +176,7 @@ cc_library(
176176
# Not exported.
177177
"qux",
178178
"prebuilt",
179-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test3:diff_pkg"
179+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library3:diff_pkg"
180180
],
181181
)
182182

@@ -275,7 +275,7 @@ cc_shared_library(
275275
}),
276276
exports_filter = [
277277
"bar3", # Exported transitive dependency
278-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test3:bar",
278+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library3:bar",
279279
],
280280
features = ["windows_export_all_symbols"],
281281
user_link_flags = select({
@@ -330,7 +330,7 @@ cc_library(
330330
srcs = ["bar3.cc"],
331331
hdrs = ["bar3.h"],
332332
deps = [
333-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test3:bar",
333+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library3:bar",
334334
],
335335
)
336336

@@ -371,17 +371,17 @@ additional_inputs_test(
371371
build_failure_test(
372372
name = "link_once_repeated_test_binary",
373373
messages = [
374-
"cc_shared_library/test:barX\",",
374+
"cc_shared_library/test_cc_shared_library:barX\",",
375375
],
376-
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/failing_targets:should_fail_binary",
376+
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/failing_targets:should_fail_binary",
377377
)
378378

379379
build_failure_test(
380380
name = "link_once_repeated_test_shared_lib",
381381
messages = [
382-
"cc_shared_library/test:barX\",",
382+
"cc_shared_library/test_cc_shared_library:barX\",",
383383
],
384-
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/failing_targets:should_fail_shared_lib",
384+
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/failing_targets:should_fail_shared_lib",
385385
)
386386

387387
paths_test(
@@ -473,9 +473,6 @@ genrule(
473473
cc_library(
474474
name = "hdr_only",
475475
hdrs = [":hdr_only_hdr"],
476-
linkopts = [
477-
"-Wl,-rpath,hdr_only",
478-
],
479476
)
480477

481478
cc_library(
@@ -489,22 +486,22 @@ cc_library(
489486
cc_shared_library(
490487
name = "external_export_so",
491488
exports_filter = ["@my_test_repo//:__pkg__"],
492-
tags = ["bazel_only"],
493489
deps = [
494490
":external_export",
495491
],
492+
tags = ["bazel_only"],
496493
)
497494

498495
build_failure_test(
499496
name = "two_dynamic_deps_same_export_in_so_test",
500497
message = "Two shared libraries in dependencies export the same symbols",
501-
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/failing_targets:two_dynamic_deps_same_export_in_so",
498+
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/failing_targets:two_dynamic_deps_same_export_in_so",
502499
)
503500

504501
build_failure_test(
505502
name = "two_dynamic_deps_same_export_in_binary_test",
506503
message = "Two shared libraries in dependencies link the same library statically",
507-
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/failing_targets:two_dynamic_deps_same_export_in_binary",
504+
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/failing_targets:two_dynamic_deps_same_export_in_binary",
508505
)
509506

510507
interface_library_output_group_test(
@@ -535,36 +532,36 @@ check_linking_action_lib_parameters_test(
535532
build_failure_test(
536533
name = "shared_library_without_deps",
537534
message = "'cc_shared_library' must have at least one dependency in 'deps' (or 'roots')",
538-
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/failing_targets:failing_with_no_deps_so",
535+
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/failing_targets:failing_with_no_deps_so",
539536
)
540537

541538
build_failure_test(
542539
name = "direct_dep_with_only_shared_lib_file",
543540
message = "Do not place libraries which only contain a precompiled dynamic library",
544-
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/failing_targets:failing_only_dynamic_lib",
541+
target = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/failing_targets:failing_only_dynamic_lib",
545542
)
546543

547544
exports_test(
548545
name = "exports_foo_test",
549546
target = ":foo_so",
550547
targets_that_should_be_claimed_to_be_exported = [
551-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:indirect_dep2",
552-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:baz",
553-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:foo",
554-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:cc_lib_with_no_srcs",
555-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:nocode_cc_lib",
556-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:should_not_be_linked_cc_lib",
557-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:a_suffix",
548+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:indirect_dep2",
549+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:baz",
550+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:foo",
551+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:cc_lib_with_no_srcs",
552+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:nocode_cc_lib",
553+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:should_not_be_linked_cc_lib",
554+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:a_suffix",
558555
],
559556
)
560557

561558
exports_test(
562559
name = "external_export_exports_test",
563-
bazel_only = True,
564560
target = "external_export_so",
561+
bazel_only = True,
565562
targets_that_should_be_claimed_to_be_exported = [
566563
"@@test_repo+//:bar",
567-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:external_export",
564+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:external_export",
568565
],
569566
)
570567

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/a_suffix.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/a_suffix.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/a_suffix.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/a_suffix.h"
1515

1616
int a_suffix() { return 42; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/bar.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/bar.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/bar.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/bar.h"
1515

1616
int bar() { return 42; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/bar2.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/bar2.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/bar2.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/bar2.h"
1515

1616
int bar2() { return 42; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/bar3.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/bar3.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/bar3.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/bar3.h"
1515

1616
int bar3() { return 42; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/barX.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/barX.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/barX.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/barX.h"
1515

1616
int barX() { return 42; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/baz.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/baz.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/baz.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/baz.h"
1515

1616
int baz() { return 42; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/direct_so_file_cc_lib.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/direct_so_file_cc_lib.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/direct_so_file_cc_lib.h"
15+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/direct_so_file_cc_lib.h"
1616
int direct_so_file_cc_lib() { return 0; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/direct_so_file_cc_lib2.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/direct_so_file_cc_lib2.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/direct_so_file_cc_lib2.h"
15+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/direct_so_file_cc_lib2.h"
1616
int direct_so_file_cc_lib2() { return 0; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/failing_targets/BUILD.builtin_test renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/failing_targets/BUILD.builtin_test

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@ TAGS = [
99

1010
cc_binary(
1111
name = "should_fail_binary",
12-
dynamic_deps = ["//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:bar_so"],
12+
dynamic_deps = ["//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:bar_so"],
1313
tags = TAGS,
1414
deps = [
15-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:barX",
15+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:barX",
1616
],
1717
)
1818

1919
cc_shared_library(
2020
name = "should_fail_shared_lib",
21-
dynamic_deps = ["//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:bar_so"],
21+
dynamic_deps = ["//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:bar_so"],
2222
deps = [
2323
":intermediate",
2424
],
@@ -28,7 +28,7 @@ cc_shared_library(
2828
cc_library(
2929
name = "intermediate",
3030
deps = [
31-
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test:barX",
31+
"//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library:barX",
3232
],
3333
)
3434

@@ -112,3 +112,4 @@ genrule(
112112
outs = ["libabc.so"],
113113
cmd = "touch \"$@\"",
114114
)
115+

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/foo.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/foo.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/bar.h"
15-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/baz.h"
16-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/direct_so_file_cc_lib.h"
17-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/direct_so_file_cc_lib2.h"
18-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/qux.h"
19-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test3/diff_pkg.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/bar.h"
15+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/baz.h"
16+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/direct_so_file_cc_lib.h"
17+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/direct_so_file_cc_lib2.h"
18+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/qux.h"
19+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library3/diff_pkg.h"
2020

2121
int foo() {
2222
diff_pkg();

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/main.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/main.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// limitations under the License.
1414
#include <iostream>
1515

16-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/foo.h"
16+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/foo.h"
1717

1818
int main() {
1919
std::cout << "hello " << foo() << std::endl;

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/not_depended_on.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/not_depended_on.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/bar.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/bar.h"
1515

1616
int foo() {
1717
bar();

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/qux.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/qux.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/qux.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/qux.h"
1515

1616
int qux() { return 42; }

src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/qux2.cc renamed to src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/qux2.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/qux2.h"
14+
#include "src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/qux2.h"
1515

1616
int qux2() { return 42; }

0 commit comments

Comments
 (0)