Use ifunc for ARM32 fortify functions
Test: compile and run bionic unit tests
Test: make PRODUCT-sdk_phone_arm64-sdk
Change-Id: I614f495ad6053d507446a6a896b9199825325188
diff --git a/libc/Android.bp b/libc/Android.bp
index 4c5b0b3..a8a2545 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -691,120 +691,32 @@
arch: {
arm: {
- cflags: ["-DNO___MEMCPY_CHK"],
+ cflags: [
+ "-DNO___MEMCPY_CHK",
+ "-DRENAME___STRCAT_CHK",
+ "-DRENAME___STRCPY_CHK",
+ ],
srcs: [
"arch-arm/generic/bionic/__memcpy_chk.S",
+
+ "arch-arm/cortex-a15/bionic/__strcat_chk.S",
+ "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
+
+ "arch-arm/cortex-a7/bionic/__strcat_chk.S",
+ "arch-arm/cortex-a7/bionic/__strcpy_chk.S",
+
+ "arch-arm/cortex-a9/bionic/__strcat_chk.S",
+ "arch-arm/cortex-a9/bionic/__strcpy_chk.S",
+
+ "arch-arm/krait/bionic/__strcat_chk.S",
+ "arch-arm/krait/bionic/__strcpy_chk.S",
+
+ "arch-arm/cortex-a53/bionic/__strcat_chk.S",
+ "arch-arm/cortex-a53/bionic/__strcpy_chk.S",
+
+ "arch-arm/denver/bionic/__strcat_chk.S",
+ "arch-arm/denver/bionic/__strcpy_chk.S",
],
- neon: {
- cflags: [
- "-DNO___STRCAT_CHK",
- "-DNO___STRCPY_CHK",
- ],
- srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- cortex_a7: {
- srcs: [
- "arch-arm/cortex-a7/bionic/__strcat_chk.S",
- "arch-arm/cortex-a7/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- cortex_a9: {
- srcs: [
- "arch-arm/cortex-a9/bionic/__strcat_chk.S",
- "arch-arm/cortex-a9/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- krait: {
- srcs: [
- "arch-arm/krait/bionic/__strcat_chk.S",
- "arch-arm/krait/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- cortex_a53: {
- srcs: [
- "arch-arm/cortex-a53/bionic/__strcat_chk.S",
- "arch-arm/cortex-a53/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- cortex_a55: {
- srcs: [
- "arch-arm/denver/bionic/__strcat_chk.S",
- "arch-arm/denver/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- cortex_a73: {
- srcs: [
- "arch-arm/denver/bionic/__strcat_chk.S",
- "arch-arm/denver/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- cortex_a75: {
- srcs: [
- "arch-arm/denver/bionic/__strcat_chk.S",
- "arch-arm/denver/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- cortex_a76: {
- srcs: [
- "arch-arm/denver/bionic/__strcat_chk.S",
- "arch-arm/denver/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- denver: {
- srcs: [
- "arch-arm/denver/bionic/__strcat_chk.S",
- "arch-arm/denver/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
- kryo: {
- srcs: [
- "arch-arm/krait/bionic/__strcat_chk.S",
- "arch-arm/krait/bionic/__strcpy_chk.S",
- ],
- exclude_srcs: [
- "arch-arm/cortex-a15/bionic/__strcat_chk.S",
- "arch-arm/cortex-a15/bionic/__strcpy_chk.S",
- ],
- },
},
arm64: {
cflags: ["-DNO___MEMCPY_CHK"],