diff --git a/musl_src.gni b/musl_src.gni index dffe00fd630a9917d416ba177e4b16e4272950c1..61988bcc11e47bb758a657b5b391672f7e1d2277 100755 --- a/musl_src.gni +++ b/musl_src.gni @@ -1825,6 +1825,7 @@ musl_inc_root_files = [ musl_src_porting_file = [ "arch/arm/bits/fenv.h", "arch/generic/bits/shm.h", + "arch/generic/crtbrand.s", "include/ctype.h", "include/pthread.h", "include/sys/capability.h", @@ -1849,6 +1850,8 @@ musl_src_porting_file = [ "src/thread/arm/syscall_cp.s", "src/ldso/dlclose.c", "ldso/dynlink.c", + "crt/arm/crti.s", + "crt/aarch64/crti.s", ] musl_inc_hook_files = [ diff --git a/porting/linux/user/arch/generic/crtbrand.s b/porting/linux/user/arch/generic/crtbrand.s new file mode 100644 index 0000000000000000000000000000000000000000..06a5337882d7a817299c7e35e093a132a344a783 --- /dev/null +++ b/porting/linux/user/arch/generic/crtbrand.s @@ -0,0 +1,10 @@ + .section .note.ohos.ident,"a",%note + .balign 4 + .type abitag, %object +abitag: + .long 2f-1f // int32_t namesz + .long 3f-2f // int32_t descsz +1:.ascii "OHOS\0" // char name[] +2:.long 1 // int32_t ohos_api +3: + .size abitag, .-abitag diff --git a/porting/linux/user/crt/aarch64/crti.s b/porting/linux/user/crt/aarch64/crti.s new file mode 100644 index 0000000000000000000000000000000000000000..4a9039d381a811ce1a0afe64cfcee3914c043d78 --- /dev/null +++ b/porting/linux/user/crt/aarch64/crti.s @@ -0,0 +1,15 @@ +.include "crtbrand.s" + +.section .init +.global _init +.type _init,%function +_init: + stp x29,x30,[sp,-16]! + mov x29,sp + +.section .fini +.global _fini +.type _fini,%function +_fini: + stp x29,x30,[sp,-16]! + mov x29,sp diff --git a/porting/linux/user/crt/arm/crti.s b/porting/linux/user/crt/arm/crti.s new file mode 100644 index 0000000000000000000000000000000000000000..72acf1869d6ca4f188237e10aa10b16b2d58cd13 --- /dev/null +++ b/porting/linux/user/crt/arm/crti.s @@ -0,0 +1,15 @@ +.include "crtbrand.s" + +.syntax unified + +.section .init +.global _init +.type _init,%function +_init: + push {r0,lr} + +.section .fini +.global _fini +.type _fini,%function +_fini: + push {r0,lr}