diff --git a/lib/libc/musl/libc.S b/lib/libc/musl/libc.S index cb8b590a9e..36875b8a7b 100644 --- a/lib/libc/musl/libc.S +++ b/lib/libc/musl/libc.S @@ -7,6 +7,13 @@ #define PTR_SIZE_BYTES 4 #define PTR2_SIZE_BYTES 8 #endif + +#ifdef TIME32 +#define WEAKTIME64 .globl +#else +#define WEAKTIME64 .weak +#endif + .bss .weak ___environ .type ___environ, %object; @@ -168,18 +175,64 @@ _IO_putc: .weak _IO_putc_unlocked .type _IO_putc_unlocked, %function; _IO_putc_unlocked: -#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) +#ifdef ARCH_i386 .globl ___tls_get_addr .type ___tls_get_addr, %function; ___tls_get_addr: #endif -#ifdef PTR32 +#ifdef TIME32 .globl __adjtime64 .type __adjtime64, %function; __adjtime64: .globl __adjtimex_time64 .type __adjtimex_time64, %function; __adjtimex_time64: +#endif +#ifdef ARCH_arm +.globl __aeabi_atexit +.type __aeabi_atexit, %function; +__aeabi_atexit: +.globl __aeabi_memclr +.type __aeabi_memclr, %function; +__aeabi_memclr: +.globl __aeabi_memclr4 +.type __aeabi_memclr4, %function; +__aeabi_memclr4: +.globl __aeabi_memclr8 +.type __aeabi_memclr8, %function; +__aeabi_memclr8: +.globl __aeabi_memcpy +.type __aeabi_memcpy, %function; +__aeabi_memcpy: +.globl __aeabi_memcpy4 +.type __aeabi_memcpy4, %function; +__aeabi_memcpy4: +.globl __aeabi_memcpy8 +.type __aeabi_memcpy8, %function; +__aeabi_memcpy8: +.globl __aeabi_memmove +.type __aeabi_memmove, %function; +__aeabi_memmove: +.globl __aeabi_memmove4 +.type __aeabi_memmove4, %function; +__aeabi_memmove4: +.globl __aeabi_memmove8 +.type __aeabi_memmove8, %function; +__aeabi_memmove8: +.globl __aeabi_memset +.type __aeabi_memset, %function; +__aeabi_memset: +.globl __aeabi_memset4 +.type __aeabi_memset4, %function; +__aeabi_memset4: +.globl __aeabi_memset8 +.type __aeabi_memset8, %function; +__aeabi_memset8: +.globl __aeabi_read_tp +.type __aeabi_read_tp, %function; +__aeabi_read_tp: +#endif +#ifdef TIME32 .globl __aio_suspend_time64 .type __aio_suspend_time64, %function; __aio_suspend_time64: @@ -187,12 +240,12 @@ __aio_suspend_time64: .globl __assert_fail .type __assert_fail, %function; __assert_fail: -#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) +#ifdef FAMILY_mips .globl __cachectl .type __cachectl, %function; __cachectl: #endif -#ifdef PTR32 +#ifdef TIME32 .globl __clock_adjtime64 .type __clock_adjtime64, %function; __clock_adjtime64: @@ -236,7 +289,7 @@ __cxa_atexit: .globl __cxa_finalize .type __cxa_finalize, %function; __cxa_finalize: -#ifdef PTR32 +#ifdef TIME32 .globl __difftime64 .type __difftime64, %function; __difftime64: @@ -247,7 +300,12 @@ __dls2b: .globl __dls3 .type __dls3, %function; __dls3: -#ifdef PTR32 +#ifdef FAMILY_mips +.globl __dlstart +.type __dlstart, %function; +__dlstart: +#endif +#ifdef TIME32 .globl __dlsym_time64 .type __dlsym_time64, %function; __dlsym_time64: @@ -312,7 +370,7 @@ __fseterr: .globl __fsetlocking .type __fsetlocking, %function; __fsetlocking: -#ifdef PTR32 +#ifdef TIME32 .weak __fstat_time64 .type __fstat_time64, %function; __fstat_time64: @@ -347,7 +405,7 @@ __fxstatat: .weak __getdelim .type __getdelim, %function; __getdelim: -#ifdef PTR32 +#ifdef TIME32 .globl __getitimer_time64 .type __getitimer_time64, %function; __getitimer_time64: @@ -364,6 +422,11 @@ __gmtime64: .type __gmtime64_r, %function; __gmtime64_r: #endif +#ifdef ARCH_arm +.globl __gnu_Unwind_Find_exidx +.type __gnu_Unwind_Find_exidx, %function; +__gnu_Unwind_Find_exidx: +#endif .globl __h_errno_location .type __h_errno_location, %function; __h_errno_location: @@ -490,7 +553,7 @@ __libc_current_sigrtmin: .globl __libc_start_main .type __libc_start_main, %function; __libc_start_main: -#ifdef PTR32 +#ifdef TIME32 .globl __localtime64 .type __localtime64, %function; __localtime64: @@ -498,12 +561,12 @@ __localtime64: .type __localtime64_r, %function; __localtime64_r: #endif -#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_loongarch64) +#ifdef FAMILY_riscv .globl __longjmp .type __longjmp, %function; __longjmp: #endif -#ifdef PTR32 +#ifdef TIME32 .globl __lstat_time64 .type __lstat_time64, %function; __lstat_time64: @@ -514,7 +577,7 @@ __lutimes_time64: .globl __lxstat .type __lxstat, %function; __lxstat: -#ifdef PTR32 +#ifdef TIME32 .globl __mktime64 .type __mktime64, %function; __mktime64: @@ -547,7 +610,7 @@ __overflow: .weak __posix_getopt .type __posix_getopt, %function; __posix_getopt: -#ifdef PTR32 +#ifdef TIME32 .globl __ppoll_time64 .type __ppoll_time64, %function; __ppoll_time64: @@ -576,17 +639,7 @@ __recvmmsg_time64: .globl __res_state .type __res_state, %function; __res_state: -#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) -.globl __restore -.type __restore, %function; -__restore: -#endif -#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) -.globl __restore_rt -.type __restore_rt, %function; -__restore_rt: -#endif -#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_loongarch64) +#ifdef FAMILY_riscv .globl __riscv_flush_icache .type __riscv_flush_icache, %function; __riscv_flush_icache: @@ -594,7 +647,7 @@ __riscv_flush_icache: .globl __sched_cpucount .type __sched_cpucount, %function; __sched_cpucount: -#ifdef PTR32 +#ifdef TIME32 .globl __sched_rr_get_interval_time64 .type __sched_rr_get_interval_time64, %function; __sched_rr_get_interval_time64: @@ -614,7 +667,7 @@ __setitimer_time64: .globl __setjmp .type __setjmp, %function; __setjmp: -#ifdef PTR32 +#ifdef TIME32 .globl __settimeofday_time64 .type __settimeofday_time64, %function; __settimeofday_time64: @@ -631,7 +684,7 @@ __signbitl: .globl __sigsetjmp .type __sigsetjmp, %function; __sigsetjmp: -#ifdef PTR32 +#ifdef TIME32 .globl __sigtimedwait_time64 .type __sigtimedwait_time64, %function; __sigtimedwait_time64: @@ -639,7 +692,7 @@ __sigtimedwait_time64: .globl __stack_chk_fail .type __stack_chk_fail, %function; __stack_chk_fail: -#ifdef PTR32 +#ifdef TIME32 .globl __stat_time64 .type __stat_time64, %function; __stat_time64: @@ -692,7 +745,7 @@ __strxfrm_l: .weak __sysv_signal .type __sysv_signal, %function; __sysv_signal: -#ifdef PTR32 +#ifdef TIME32 .globl __thrd_sleep_time64 .type __thrd_sleep_time64, %function; __thrd_sleep_time64: @@ -718,9 +771,16 @@ __timerfd_settime64: .type __timespec_get_time64, %function; __timespec_get_time64: #endif +#if !defined(ARCH_s390x) .globl __tls_get_addr .type __tls_get_addr, %function; __tls_get_addr: +#endif +#ifdef ARCH_s390x +.globl __tls_get_offset +.type __tls_get_offset, %function; +__tls_get_offset: +#endif .globl __tolower_l .type __tolower_l, %function; __tolower_l: @@ -743,7 +803,7 @@ __uflow: .globl __uselocale .type __uselocale, %function; __uselocale: -#ifdef PTR32 +#ifdef TIME32 .globl __utime64 .type __utime64, %function; __utime64: @@ -796,7 +856,7 @@ _dl_debug_state: .globl _dlstart .type _dlstart, %function; _dlstart: -#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) +#ifdef FAMILY_mips .globl _dlstart_data .type _dlstart_data, %function; _dlstart_data: @@ -807,7 +867,7 @@ _exit: .weak _fini .type _fini, %function; _fini: -#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) +#ifdef FAMILY_mips .globl _flush_cache .type _flush_cache, %function; _flush_cache: @@ -908,7 +968,7 @@ aligned_alloc: .globl alphasort .type alphasort, %function; alphasort: -#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) +#ifdef FAMILY_x86 .globl arch_prctl .type arch_prctl, %function; arch_prctl: @@ -1033,12 +1093,10 @@ cabsf: .globl cabsl .type cabsl, %function; cabsl: -#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) +#ifdef FAMILY_mips .weak cachectl .type cachectl, %function; cachectl: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) .weak cacheflush .type cacheflush, %function; cacheflush: @@ -1232,10 +1290,10 @@ clock_getcpuclockid: .globl clock_getres .type clock_getres, %function; clock_getres: -WEAK64 clock_gettime +WEAKTIME64 clock_gettime .type clock_gettime, %function; clock_gettime: -WEAK64 clock_nanosleep +WEAKTIME64 clock_nanosleep .type clock_nanosleep, %function; clock_nanosleep: .globl clock_settime @@ -2018,10 +2076,10 @@ fsetpos: .globl fsetxattr .type fsetxattr, %function; fsetxattr: -WEAK64 fstat +WEAKTIME64 fstat .type fstat, %function; fstat: -WEAK64 fstatat +WEAKTIME64 fstatat .type fstatat, %function; fstatat: .weak fstatfs @@ -2063,7 +2121,7 @@ futimens: .globl futimes .type futimes, %function; futimes: -WEAK64 futimesat +WEAKTIME64 futimesat .type futimesat, %function; futimesat: .globl fwide @@ -2408,7 +2466,7 @@ globfree: .globl gmtime .type gmtime, %function; gmtime: -WEAK64 gmtime_r +WEAKTIME64 gmtime_r .type gmtime_r, %function; gmtime_r: .globl grantpt @@ -2549,12 +2607,12 @@ insque: .globl ioctl .type ioctl, %function; ioctl: -#if !defined(ARCH_riscv64) && !defined(ARCH_mips64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) +#if !defined(ARCH_aarch64) && !defined(ARCH_arm) && !defined(ARCH_loongarch64) && !defined(ARCH_mips64) && !defined(ARCH_mipsn32) && !defined(ARCH_riscv32) && !defined(ARCH_riscv64) && !defined(ARCH_s390x) .globl ioperm .type ioperm, %function; ioperm: #endif -#if !defined(ARCH_riscv64) && !defined(ARCH_mips64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64) +#if !defined(ARCH_aarch64) && !defined(ARCH_arm) && !defined(ARCH_loongarch64) && !defined(ARCH_mips64) && !defined(ARCH_mipsn32) && !defined(ARCH_riscv32) && !defined(ARCH_riscv64) && !defined(ARCH_s390x) .globl iopl .type iopl, %function; iopl: @@ -2853,7 +2911,7 @@ localeconv: .globl localtime .type localtime, %function; localtime: -WEAK64 localtime_r +WEAKTIME64 localtime_r .type localtime_r, %function; localtime_r: .globl lockf @@ -3552,7 +3610,7 @@ pthread_cond_init: .globl pthread_cond_signal .type pthread_cond_signal, %function; pthread_cond_signal: -WEAK64 pthread_cond_timedwait +WEAKTIME64 pthread_cond_timedwait .type pthread_cond_timedwait, %function; pthread_cond_timedwait: .globl pthread_cond_wait @@ -3642,7 +3700,7 @@ pthread_mutex_lock: .globl pthread_mutex_setprioceiling .type pthread_mutex_setprioceiling, %function; pthread_mutex_setprioceiling: -WEAK64 pthread_mutex_timedlock +WEAKTIME64 pthread_mutex_timedlock .type pthread_mutex_timedlock, %function; pthread_mutex_timedlock: .weak pthread_mutex_trylock @@ -3693,10 +3751,10 @@ pthread_rwlock_init: .weak pthread_rwlock_rdlock .type pthread_rwlock_rdlock, %function; pthread_rwlock_rdlock: -WEAK64 pthread_rwlock_timedrdlock +WEAKTIME64 pthread_rwlock_timedrdlock .type pthread_rwlock_timedrdlock, %function; pthread_rwlock_timedrdlock: -WEAK64 pthread_rwlock_timedwrlock +WEAKTIME64 pthread_rwlock_timedwrlock .type pthread_rwlock_timedwrlock, %function; pthread_rwlock_timedwrlock: .weak pthread_rwlock_tryrdlock @@ -3774,7 +3832,7 @@ pthread_spin_unlock: .weak pthread_testcancel .type pthread_testcancel, %function; pthread_testcancel: -WEAK64 pthread_timedjoin_np +WEAKTIME64 pthread_timedjoin_np .type pthread_timedjoin_np, %function; pthread_timedjoin_np: .weak pthread_tryjoin_np @@ -3999,7 +4057,7 @@ rintf: .globl rintl .type rintl, %function; rintl: -#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_loongarch64) +#ifdef FAMILY_riscv .weak riscv_flush_icache .type riscv_flush_icache, %function; riscv_flush_icache: