From e1942372a5c1ecf918c41021697e81e0c685551f Mon Sep 17 00:00:00 2001 From: JiaYan Lin Date: Fri, 2 Feb 2024 02:43:12 +0000 Subject: [PATCH 1/8] Fix mac-incompatible linker flags in native_deps --- rules/android_binary_internal/attrs.bzl | 3 +++ rules/android_binary_internal/rule.bzl | 7 +++++++ rules/native_deps.bzl | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/rules/android_binary_internal/attrs.bzl b/rules/android_binary_internal/attrs.bzl index 0246ed44b..9d23d56d1 100644 --- a/rules/android_binary_internal/attrs.bzl +++ b/rules/android_binary_internal/attrs.bzl @@ -128,6 +128,9 @@ ATTRS = _attrs.replace( default = "native", values = ["native", "legacy", "manual_main_dex"], ), + user_link_flags = attr.string( + default = "-Wl,-soname", + ), _java_toolchain = attr.label( default = Label("//tools/jdk:toolchain_android_only"), ), diff --git a/rules/android_binary_internal/rule.bzl b/rules/android_binary_internal/rule.bzl index cd18cbfa1..a237750e4 100644 --- a/rules/android_binary_internal/rule.bzl +++ b/rules/android_binary_internal/rule.bzl @@ -97,4 +97,11 @@ def android_binary_internal_macro(**attrs): Args: **attrs: Rule attributes """ + user_link_flags = select({ + "@bazel_tools//src/conditions:darwin_x86_64": "-Wl,-install_name", + "@bazel_tools//src/conditions:darwin_arm64": "-Wl,-install_name", + "//conditions:default": "-Wl,-soname", + }) + if 'user_link_flags' not in attrs: + attrs["user_link_flags"] = user_link_flags android_binary_internal(**sanitize_attrs(attrs)) diff --git a/rules/native_deps.bzl b/rules/native_deps.bzl index ab5885053..1b6618c23 100644 --- a/rules/native_deps.bzl +++ b/rules/native_deps.bzl @@ -84,7 +84,7 @@ def process(ctx, filename, merged_native_libs = {}): ) linker_input = cc_common.create_linker_input( owner = ctx.label, - user_link_flags = ["-Wl,-soname=lib" + actual_target_name], + user_link_flags = [ "{link_flags}=lib{target_name}".format(link_flags = ctx.attr.user_link_flags, target_name = actual_target_name) ] ) cc_info = cc_common.merge_cc_infos( cc_infos = _concat( From 2e1f6f28f18dd52de6c133766181d2f4332e1fed Mon Sep 17 00:00:00 2001 From: JiaYan Lin Date: Fri, 2 Feb 2024 16:53:55 +0000 Subject: [PATCH 2/8] fix format --- rules/android_binary_internal/rule.bzl | 6 +++--- rules/native_deps.bzl | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rules/android_binary_internal/rule.bzl b/rules/android_binary_internal/rule.bzl index a237750e4..c8622f681 100644 --- a/rules/android_binary_internal/rule.bzl +++ b/rules/android_binary_internal/rule.bzl @@ -98,9 +98,9 @@ def android_binary_internal_macro(**attrs): **attrs: Rule attributes """ user_link_flags = select({ - "@bazel_tools//src/conditions:darwin_x86_64": "-Wl,-install_name", - "@bazel_tools//src/conditions:darwin_arm64": "-Wl,-install_name", - "//conditions:default": "-Wl,-soname", + "@bazel_tools//src/conditions:darwin_x86_64": "-Wl,-install_name,lib{target_name}", + "@bazel_tools//src/conditions:darwin_arm64": "-Wl,-install_name,lib{target_name}", + "//conditions:default": "-Wl,-soname=lib{target_name}", }) if 'user_link_flags' not in attrs: attrs["user_link_flags"] = user_link_flags diff --git a/rules/native_deps.bzl b/rules/native_deps.bzl index 1b6618c23..805917baf 100644 --- a/rules/native_deps.bzl +++ b/rules/native_deps.bzl @@ -84,7 +84,7 @@ def process(ctx, filename, merged_native_libs = {}): ) linker_input = cc_common.create_linker_input( owner = ctx.label, - user_link_flags = [ "{link_flags}=lib{target_name}".format(link_flags = ctx.attr.user_link_flags, target_name = actual_target_name) ] + user_link_flags = [ ctx.attr.user_link_flags.format(target_name = actual_target_name) ] ) cc_info = cc_common.merge_cc_infos( cc_infos = _concat( From 33491742a0b84e4a6d6ace69e8406b31ad15bedf Mon Sep 17 00:00:00 2001 From: JiaYan Lin Date: Fri, 2 Feb 2024 17:03:34 +0000 Subject: [PATCH 3/8] Remove -p option from mktemp --- .../extract_desugar_pgcfg_flags_test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/extract_desugar_pgcfg_flags/extract_desugar_pgcfg_flags_test.sh b/src/tools/extract_desugar_pgcfg_flags/extract_desugar_pgcfg_flags_test.sh index c8cc82ea6..3691fa5fe 100755 --- a/src/tools/extract_desugar_pgcfg_flags/extract_desugar_pgcfg_flags_test.sh +++ b/src/tools/extract_desugar_pgcfg_flags/extract_desugar_pgcfg_flags_test.sh @@ -44,8 +44,8 @@ dummy_json_file="$(mktemp)" echo "{\"shrinker_config\": [\"-keepclassmembers a b c\", \"foobar\", \"-someflag 1 2 3\"], \"foo\": \"bar\"}" > "$dummy_json_file" # Dummy output dummy output file -test_output_file="$(mktemp -p /tmp test.XXXX)" -expected_output_file="$(mktemp -p /tmp golden.XXXX)" +test_output_file="$(mktemp /tmp/test.XXXX)" +expected_output_file="$(mktemp /tmp/golden.XXXX)" # Expected outcome is a\nb\nc echo -ne "-keepclassmembers a b c\nfoobar\n-someflag 1 2 3" > "$expected_output_file" From fcde44c7ac2636c1e5e008131bf1c3b8608ad93e Mon Sep 17 00:00:00 2001 From: JiaYan Lin Date: Fri, 2 Feb 2024 17:12:34 +0000 Subject: [PATCH 4/8] Update rules_python version - hope to fix none-bzlmod build on darwin --- MODULE.bazel | 2 +- prereqs.bzl | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index c3cb43f4b..c5109868e 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ use_repo( ) # python-related dependency setup -bazel_dep(name = "rules_python", version = "0.28.0", repo_name = "rules_python") +bazel_dep(name = "rules_python", version = "0.29.0", repo_name = "rules_python") python = use_extension("@rules_python//python/extensions:python.bzl", "python") python.toolchain( diff --git a/prereqs.bzl b/prereqs.bzl index 1b35e71b7..15e3b8bc1 100644 --- a/prereqs.bzl +++ b/prereqs.bzl @@ -126,12 +126,12 @@ def rules_android_prereqs(dev_mode = False): maybe( http_archive, name = "rules_python", - strip_prefix = "rules_python-0.23.1", - urls = [ - "https://github.com/bazelbuild/rules_python/releases/download/0.23.1/rules_python-0.23.1.tar.gz", - "https://mirror.bazel.build/github.com/bazelbuild/rules_python/releases/download/0.23.1/rules_python-0.23.1.tar.gz", + sha256 = "d71d2c67e0bce986e1c5a7731b4693226867c45bfe0b7c5e0067228a536fc580", + strip_prefix = "rules_python-0.29.0", + url = [ + "https://github.com/bazelbuild/rules_python/releases/download/0.29.0/rules_python-0.29.0.tar.gz", + "https://mirror.bazel.build/github.com/bazelbuild/rules_python/releases/download/0.29.0/rules_python-0.29.0.tar.gz", ], - sha256 = "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841", ) _apksig_archive() From 0facc0ebccb5f0c9d05ed21399f7a4dc76946628 Mon Sep 17 00:00:00 2001 From: JiaYan Lin Date: Fri, 2 Feb 2024 17:15:24 +0000 Subject: [PATCH 5/8] xx --- prereqs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prereqs.bzl b/prereqs.bzl index 15e3b8bc1..ac3767bcc 100644 --- a/prereqs.bzl +++ b/prereqs.bzl @@ -128,7 +128,7 @@ def rules_android_prereqs(dev_mode = False): name = "rules_python", sha256 = "d71d2c67e0bce986e1c5a7731b4693226867c45bfe0b7c5e0067228a536fc580", strip_prefix = "rules_python-0.29.0", - url = [ + urls = [ "https://github.com/bazelbuild/rules_python/releases/download/0.29.0/rules_python-0.29.0.tar.gz", "https://mirror.bazel.build/github.com/bazelbuild/rules_python/releases/download/0.29.0/rules_python-0.29.0.tar.gz", ], From e87d1e2d9c8af3aab838e662973354f891888159 Mon Sep 17 00:00:00 2001 From: JiaYan Lin Date: Fri, 2 Feb 2024 18:26:43 +0000 Subject: [PATCH 6/8] Rearrange rules_python deps setup --- WORKSPACE | 3 +++ defs.bzl | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 68bfc9ead..8e4e4d29f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -18,6 +18,9 @@ maybe( name = "androidndk", ) +load("@rules_python//python:repositories.bzl", "py_repositories") +py_repositories() + load("defs_dev.bzl", "rules_android_workspace") rules_android_workspace() diff --git a/defs.bzl b/defs.bzl index ac6ffcfba..c84bee840 100644 --- a/defs.bzl +++ b/defs.bzl @@ -23,7 +23,7 @@ load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_jav load("@rules_jvm_external//:defs.bzl", "maven_install") load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains") load("@rules_python//python:pip.bzl", "pip_parse") -load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains") +load("@rules_python//python:repositories.bzl", "python_register_toolchains") # Handle python pip requirements. load("//py_support:vendored_py_requirements.bzl", pip_install_deps = "install_deps") @@ -103,8 +103,6 @@ def rules_android_workspace(): rules_proto_dependencies() rules_proto_toolchains() - py_repositories() - python_register_toolchains( name = "python3_11", # Available versions are listed in @rules_python//python:versions.bzl. From 3f320c9a0d38063dfc019fe9552455eb1083537d Mon Sep 17 00:00:00 2001 From: JiaYan Lin Date: Wed, 7 Feb 2024 02:48:43 +0000 Subject: [PATCH 7/8] Pass platforms/android_platforms=//:armeabi-v7a --- .bazelci/presubmit.yml | 4 ++++ rules/android_binary_internal/rule.bzl | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index 9d3ca1709..a7ad9da08 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -7,9 +7,13 @@ tools_flags: &tools_flags ? "--incompatible_enable_android_toolchain_resolution=false" # Sandboxed SDK tools depend on libraries that require Java runtime 17 or higher. ? "--java_runtime_version=17" + ? "--platforms=//:armeabi-v7a" + ? "--android_platforms=//:armeabi-v7a" rules_flags: &rules_flags ? "--enable_bzlmod=false" ? "--incompatible_enable_android_toolchain_resolution=false" + ? "--platforms=//:armeabi-v7a" + ? "--android_platforms=//:armeabi-v7a" tools: &tools name: "Tools" diff --git a/rules/android_binary_internal/rule.bzl b/rules/android_binary_internal/rule.bzl index c8622f681..1bcfef9c3 100644 --- a/rules/android_binary_internal/rule.bzl +++ b/rules/android_binary_internal/rule.bzl @@ -102,6 +102,6 @@ def android_binary_internal_macro(**attrs): "@bazel_tools//src/conditions:darwin_arm64": "-Wl,-install_name,lib{target_name}", "//conditions:default": "-Wl,-soname=lib{target_name}", }) - if 'user_link_flags' not in attrs: - attrs["user_link_flags"] = user_link_flags + # if 'user_link_flags' not in attrs: + # attrs["user_link_flags"] = user_link_flags android_binary_internal(**sanitize_attrs(attrs)) From 3164e713831af7e031a4727387cf21907a97c649 Mon Sep 17 00:00:00 2001 From: JiaYan Lin Date: Wed, 7 Feb 2024 03:13:54 +0000 Subject: [PATCH 8/8] Don't pass platforms --- .bazelci/presubmit.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index a7ad9da08..ff1742e09 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -7,12 +7,10 @@ tools_flags: &tools_flags ? "--incompatible_enable_android_toolchain_resolution=false" # Sandboxed SDK tools depend on libraries that require Java runtime 17 or higher. ? "--java_runtime_version=17" - ? "--platforms=//:armeabi-v7a" ? "--android_platforms=//:armeabi-v7a" rules_flags: &rules_flags ? "--enable_bzlmod=false" ? "--incompatible_enable_android_toolchain_resolution=false" - ? "--platforms=//:armeabi-v7a" ? "--android_platforms=//:armeabi-v7a" tools: &tools