aboutsummaryrefslogtreecommitdiff
path: root/scripts/rustc_linker.py
diff options
context:
space:
mode:
authormosimchah <mosimchah@gmail.com>2025-12-02 09:27:38 -0500
committermosimchah <mosimchah@gmail.com>2025-12-02 09:27:38 -0500
commitc7bade461dc55726f62997d13a48582f7c4b4655 (patch)
treeea0588da76060a2038f54f67efd046ca77634b10 /scripts/rustc_linker.py
parent0f5414d19317805e8bbbe7c4db5f0fd78769bad5 (diff)
parent89d78cff8b00d3b20a90074635c3fe5a2ee49474 (diff)
Merge branch 'lineage-23.1' of https://github.com/LineageOS/android_build_soong into HEADw16.1
* 'lineage-23.1' of https://github.com/LineageOS/android_build_soong: (528 commits) Revert "install_symlink: Make symlink target configurable" Reapply "Clear as much of cc.Module as possible after GenerateBuildActions" Revert "rust: config: Fix missing CPU variant LD flags in Rust" Rename build-flag in outdir Revert^4 "cipd: Default CIPD proxy server to on, add opt-out" Convert check-vintf-all to phony with actions Create a partial implementation of check-vintf-all for soong-only Configure RBE rust pool based on build variant Revert^3 "Add sdk version check to arr" Add jdk.internal.invoke to the allowlist Make droid always depend on symbols zip Import Device and Odm skus Don't install gob_gen in Soong Remove bazel reference from run_integration_tests.sh Fix bootstrap_test.sh Don't panic in aconfig libraries when AllowMissingDependencies is set Avoid returning nil paths from PathForModuleSrc Revert "Flag controled clang version" Rework module target dependencies on required deps Revert^2 "Add sdk version check to arr" ... Change-Id: I6e9a63fa14fda917a42e426e5dcebbad7f67e1de
Diffstat (limited to 'scripts/rustc_linker.py')
-rwxr-xr-xscripts/rustc_linker.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/scripts/rustc_linker.py b/scripts/rustc_linker.py
index 3f60708e2..c9c4a1515 100755
--- a/scripts/rustc_linker.py
+++ b/scripts/rustc_linker.py
@@ -31,27 +31,40 @@ replacementVersionScript = None
argparser = argparse.ArgumentParser()
argparser.add_argument('--android-clang-bin', required=True)
args = argparser.parse_known_args()
-clang_args = [args[0].android_clang_bin] + args[1]
+old_clang_args = [args[0].android_clang_bin] + args[1]
+new_clang_args = list()
-for i, arg in enumerate(clang_args):
+# Add/remove args
+for i, arg in enumerate(old_clang_args):
+ # Record and remove the custom android-version-script arg
if arg.startswith('-Wl,--android-version-script='):
replacementVersionScript = arg.split("=")[1]
- del clang_args[i]
- break
+ continue
+ # Remove object files rustc emits for Windows target
+ # We provide these as an rlib.
+ if arg == "rsend.o":
+ continue
+ if arg == "rsbegin.o":
+ continue
+
+ # Keep the arg
+ new_clang_args.append(old_clang_args[i])
+
+# Modify args
if replacementVersionScript:
versionScriptFound = False
- for i, arg in enumerate(clang_args):
+ for i, arg in enumerate(new_clang_args):
if arg.startswith('-Wl,--version-script='):
- clang_args[i] ='-Wl,--version-script=' + replacementVersionScript
+ new_clang_args[i] ='-Wl,--version-script=' + replacementVersionScript
versionScriptFound = True
break
if not versionScriptFound:
# If rustc did not emit a version script, just append the arg
- clang_args.append('-Wl,--version-script=' + replacementVersionScript)
+ new_clang_args.append('-Wl,--version-script=' + replacementVersionScript)
try:
- subprocess.run(clang_args, encoding='utf-8', check=True)
+ subprocess.run(new_clang_args, encoding='utf-8', check=True)
except subprocess.CalledProcessError as e:
sys.exit(-1)