riscv64: build the linker.
The only meaningful change from alibaba's version is jr instead of jalr.
Also fix the comment that's in all the begin.S files while we're here.
Signed-off-by: Mao Han <han_mao@linux.alibaba.com>
Signed-off-by: Xia Lifang <lifang_xia@linux.alibaba.com>
Signed-off-by: Chen Guoyin <chenguoyin.cgy@linux.alibaba.com>
Signed-off-by: Wang Chen <wangchen20@iscas.ac.cn>
Signed-off-by: Lu Xufan <luxufan@iscas.ac.cn>
Test: ran mksh
Change-Id: I2645c78bd700b8a55bde363600d7f8b87de641a1
diff --git a/linker/Android.bp b/linker/Android.bp
index 57420a9..83077c6 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -52,6 +52,9 @@
arm64: {
srcs: ["arch/arm64/linker_wrapper_begin.S"],
},
+ riscv64: {
+ srcs: ["arch/riscv64/linker_wrapper_begin.S"],
+ },
x86_64: {
srcs: ["arch/x86_64/linker_wrapper_begin.S"],
},
@@ -208,6 +211,13 @@
}
filegroup {
+ name: "linker_sources_riscv64",
+ srcs: [
+ "arch/riscv64/begin.S",
+ ],
+}
+
+filegroup {
name: "linker_sources_x86",
srcs: [
"arch/x86/begin.S",
@@ -224,10 +234,11 @@
cc_defaults {
name: "linker_version_script_overlay",
arch: {
- arm: { version_script: "linker.arm.map" },
- arm64: { version_script: "linker.generic.map" },
- x86: { version_script: "linker.generic.map" },
- x86_64: { version_script: "linker.generic.map" },
+ arm: { version_script: "linker.arm.map" },
+ arm64: { version_script: "linker.generic.map" },
+ riscv64: { version_script: "linker.generic.map" },
+ x86: { version_script: "linker.generic.map" },
+ x86_64: { version_script: "linker.generic.map" },
},
}
@@ -259,6 +270,15 @@
keep_symbols: true,
},
},
+ riscv64: {
+ srcs: [":linker_sources_riscv64"],
+
+ // Leave the symbols in the shared library so that stack unwinders can produce
+ // meaningful name resolution.
+ strip: {
+ keep_symbols: true,
+ },
+ },
x86: {
srcs: [":linker_sources_x86"],
@@ -426,6 +446,7 @@
"-Wl,--exclude-libs=libgcc_stripped.a",
"-Wl,--exclude-libs=libclang_rt.builtins-arm-android.a",
"-Wl,--exclude-libs=libclang_rt.builtins-aarch64-android.a",
+ "-Wl,--exclude-libs=libclang_rt.builtins-riscv64-android.a",
"-Wl,--exclude-libs=libclang_rt.builtins-i686-android.a",
"-Wl,--exclude-libs=libclang_rt.builtins-x86_64-android.a",
],