diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-12-09 14:12:51 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-09 14:12:51 -0800 |
| commit | 01cb0bdb8317484cab0f8ee3896c981c851d3bb1 (patch) | |
| tree | f638df428189364463da042fa0019552ec9f7a0a | |
| parent | 803178353976fe4ef343aef25dfa6d8e418ef88f (diff) | |
| parent | f69f55c807efa336e85862efdfe2abe03e15bd0d (diff) | |
| download | zig-01cb0bdb8317484cab0f8ee3896c981c851d3bb1.tar.gz zig-01cb0bdb8317484cab0f8ee3896c981c851d3bb1.zip | |
Merge pull request #10304 from ziglang/musl-stubgrade
Improve musl libc.so stubs
| -rw-r--r-- | lib/libc/musl/libc.S (renamed from lib/libc/musl/libc.s) | 8475 | ||||
| -rw-r--r-- | lib/std/elf.zig | 7 | ||||
| -rw-r--r-- | src/musl.zig | 14 | ||||
| -rw-r--r-- | tools/gen_stubs.zig | 802 |
4 files changed, 5123 insertions, 4175 deletions
diff --git a/lib/libc/musl/libc.s b/lib/libc/musl/libc.S index d00dea9f9f..14970ca0ea 100644 --- a/lib/libc/musl/libc.s +++ b/lib/libc/musl/libc.S @@ -1,759 +1,74 @@ -.bss -.weak ___environ -.type ___environ, %object; -___environ: -.globl __daylight -.type __daylight, %object; -__daylight: -.globl __environ -.type __environ, %object; -__environ: -.globl __optpos -.type __optpos, %object; -__optpos: -.globl __optreset -.type __optreset, %object; -__optreset: -.globl __progname -.type __progname, %object; -__progname: -.globl __progname_full -.type __progname_full, %object; -__progname_full: -.globl __signgam -.type __signgam, %object; -__signgam: -.globl __stack_chk_guard -.type __stack_chk_guard, %object; -__stack_chk_guard: -.globl __timezone -.type __timezone, %object; -__timezone: -.globl __tzname -.type __tzname, %object; -__tzname: -.weak _environ -.type _environ, %object; -_environ: -.weak daylight -.type daylight, %object; -daylight: -.weak environ -.type environ, %object; -environ: -.globl getdate_err -.type getdate_err, %object; -getdate_err: -.globl h_errno -.type h_errno, %object; -h_errno: -.globl optarg -.type optarg, %object; -optarg: -.globl optopt -.type optopt, %object; -optopt: -.weak optreset -.type optreset, %object; -optreset: -.weak program_invocation_name -.type program_invocation_name, %object; -program_invocation_name: -.weak program_invocation_short_name -.type program_invocation_short_name, %object; -program_invocation_short_name: -.weak signgam -.type signgam, %object; -signgam: -.weak timezone -.type timezone, %object; -timezone: -.weak tzname -.type tzname, %object; -tzname: -.data -.globl _dl_debug_addr -.type _dl_debug_addr, %object; -_dl_debug_addr: -.globl opterr -.type opterr, %object; -opterr: -.globl optind -.type optind, %object; -optind: -.data.rel.ro -.globl stderr -.type stderr, %object; -stderr: -.globl stdin -.type stdin, %object; -stdin: -.globl stdout -.type stdout, %object; -stdout: +#ifdef PTR64 +#define WEAK64 .weak +#define PTR_SIZE_BYTES 8 +#define PTR2_SIZE_BYTES 16 +#else +#define WEAK64 .globl +#define PTR_SIZE_BYTES 4 +#define PTR2_SIZE_BYTES 8 +#endif .rodata -.globl _ns_flagdata -.type _ns_flagdata, %object; -_ns_flagdata: .globl in6addr_any .type in6addr_any, %object; +.size in6addr_any, 16 in6addr_any: .globl in6addr_loopback .type in6addr_loopback, %object; +.size in6addr_loopback, 16 in6addr_loopback: +.globl _ns_flagdata +.type _ns_flagdata, %object; +.size _ns_flagdata, 128 +_ns_flagdata: .text -.globl _Exit -.type _Exit, %function; -_Exit: -.globl _Fork -.type _Fork, %function; -_Fork: -.weak _IO_feof_unlocked -.type _IO_feof_unlocked, %function; -_IO_feof_unlocked: -.weak _IO_ferror_unlocked -.type _IO_ferror_unlocked, %function; -_IO_ferror_unlocked: -.weak _IO_getc -.type _IO_getc, %function; -_IO_getc: -.weak _IO_getc_unlocked -.type _IO_getc_unlocked, %function; -_IO_getc_unlocked: -.weak _IO_putc -.type _IO_putc, %function; -_IO_putc: -.weak _IO_putc_unlocked -.type _IO_putc_unlocked, %function; -_IO_putc_unlocked: -.globl __assert_fail -.type __assert_fail, %function; -__assert_fail: -.globl __ctype_b_loc -.type __ctype_b_loc, %function; -__ctype_b_loc: -.globl __ctype_get_mb_cur_max -.type __ctype_get_mb_cur_max, %function; -__ctype_get_mb_cur_max: -.globl __ctype_tolower_loc -.type __ctype_tolower_loc, %function; -__ctype_tolower_loc: -.globl __ctype_toupper_loc -.type __ctype_toupper_loc, %function; -__ctype_toupper_loc: -.globl __cxa_atexit -.type __cxa_atexit, %function; -__cxa_atexit: -.globl __cxa_finalize -.type __cxa_finalize, %function; -__cxa_finalize: -.globl __dls2b -.type __dls2b, %function; -__dls2b: -.globl __dls3 -.type __dls3, %function; -__dls3: -.globl __duplocale -.type __duplocale, %function; -__duplocale: -.globl __errno_location -.type __errno_location, %function; -__errno_location: -.globl __fbufsize -.type __fbufsize, %function; -__fbufsize: -.globl __fgetwc_unlocked -.type __fgetwc_unlocked, %function; -__fgetwc_unlocked: -.globl __flbf -.type __flbf, %function; -__flbf: -.globl __flt_rounds -.type __flt_rounds, %function; -__flt_rounds: -.globl __fpclassify -.type __fpclassify, %function; -__fpclassify: -.globl __fpclassifyf -.type __fpclassifyf, %function; -__fpclassifyf: -.globl __fpclassifyl -.type __fpclassifyl, %function; -__fpclassifyl: -.globl __fpending -.type __fpending, %function; -__fpending: -.globl __fpurge -.type __fpurge, %function; -__fpurge: -.globl __fputwc_unlocked -.type __fputwc_unlocked, %function; -__fputwc_unlocked: -.globl __freadable -.type __freadable, %function; -__freadable: -.globl __freadahead -.type __freadahead, %function; -__freadahead: -.globl __freading -.type __freading, %function; -__freading: -.globl __freadptr -.type __freadptr, %function; -__freadptr: -.globl __freadptrinc -.type __freadptrinc, %function; -__freadptrinc: -.weak __freelocale -.type __freelocale, %function; -__freelocale: -.globl __fseterr -.type __fseterr, %function; -__fseterr: -.globl __fsetlocking -.type __fsetlocking, %function; -__fsetlocking: -.globl __fwritable -.type __fwritable, %function; -__fwritable: -.globl __fwriting -.type __fwriting, %function; -__fwriting: -.globl __fxstat -.type __fxstat, %function; -__fxstat: -.weak __fxstat64 -.type __fxstat64, %function; -__fxstat64: -.globl __fxstatat -.type __fxstatat, %function; -__fxstatat: -.weak __fxstatat64 -.type __fxstatat64, %function; -__fxstatat64: -.weak __getdelim -.type __getdelim, %function; -__getdelim: -.globl __h_errno_location -.type __h_errno_location, %function; -__h_errno_location: -.globl __isalnum_l -.type __isalnum_l, %function; -__isalnum_l: -.globl __isalpha_l -.type __isalpha_l, %function; -__isalpha_l: -.globl __isblank_l -.type __isblank_l, %function; -__isblank_l: -.globl __iscntrl_l -.type __iscntrl_l, %function; -__iscntrl_l: -.globl __isdigit_l -.type __isdigit_l, %function; -__isdigit_l: -.globl __isgraph_l -.type __isgraph_l, %function; -__isgraph_l: -.globl __islower_l -.type __islower_l, %function; -__islower_l: -.weak __isoc99_fscanf -.type __isoc99_fscanf, %function; -__isoc99_fscanf: -.weak __isoc99_fwscanf -.type __isoc99_fwscanf, %function; -__isoc99_fwscanf: -.weak __isoc99_scanf -.type __isoc99_scanf, %function; -__isoc99_scanf: -.weak __isoc99_sscanf -.type __isoc99_sscanf, %function; -__isoc99_sscanf: -.weak __isoc99_swscanf -.type __isoc99_swscanf, %function; -__isoc99_swscanf: -.weak __isoc99_vfscanf -.type __isoc99_vfscanf, %function; -__isoc99_vfscanf: -.weak __isoc99_vfwscanf -.type __isoc99_vfwscanf, %function; -__isoc99_vfwscanf: -.weak __isoc99_vscanf -.type __isoc99_vscanf, %function; -__isoc99_vscanf: -.weak __isoc99_vsscanf -.type __isoc99_vsscanf, %function; -__isoc99_vsscanf: -.weak __isoc99_vswscanf -.type __isoc99_vswscanf, %function; -__isoc99_vswscanf: -.weak __isoc99_vwscanf -.type __isoc99_vwscanf, %function; -__isoc99_vwscanf: -.weak __isoc99_wscanf -.type __isoc99_wscanf, %function; -__isoc99_wscanf: -.globl __isprint_l -.type __isprint_l, %function; -__isprint_l: -.globl __ispunct_l -.type __ispunct_l, %function; -__ispunct_l: -.globl __isspace_l -.type __isspace_l, %function; -__isspace_l: -.globl __isupper_l -.type __isupper_l, %function; -__isupper_l: -.globl __iswalnum_l -.type __iswalnum_l, %function; -__iswalnum_l: -.globl __iswalpha_l -.type __iswalpha_l, %function; -__iswalpha_l: -.globl __iswblank_l -.type __iswblank_l, %function; -__iswblank_l: -.globl __iswcntrl_l -.type __iswcntrl_l, %function; -__iswcntrl_l: -.globl __iswctype_l -.type __iswctype_l, %function; -__iswctype_l: -.globl __iswdigit_l -.type __iswdigit_l, %function; -__iswdigit_l: -.globl __iswgraph_l -.type __iswgraph_l, %function; -__iswgraph_l: -.globl __iswlower_l -.type __iswlower_l, %function; -__iswlower_l: -.globl __iswprint_l -.type __iswprint_l, %function; -__iswprint_l: -.globl __iswpunct_l -.type __iswpunct_l, %function; -__iswpunct_l: -.globl __iswspace_l -.type __iswspace_l, %function; -__iswspace_l: -.globl __iswupper_l -.type __iswupper_l, %function; -__iswupper_l: -.globl __iswxdigit_l -.type __iswxdigit_l, %function; -__iswxdigit_l: -.globl __isxdigit_l -.type __isxdigit_l, %function; -__isxdigit_l: -.globl __lgammal_r -.type __lgammal_r, %function; -__lgammal_r: -.globl __libc_current_sigrtmax -.type __libc_current_sigrtmax, %function; -__libc_current_sigrtmax: -.globl __libc_current_sigrtmin -.type __libc_current_sigrtmin, %function; -__libc_current_sigrtmin: -.globl __libc_start_main -.type __libc_start_main, %function; -__libc_start_main: -.globl __lxstat -.type __lxstat, %function; -__lxstat: -.weak __lxstat64 -.type __lxstat64, %function; -__lxstat64: -.globl __newlocale -.type __newlocale, %function; -__newlocale: -.globl __nl_langinfo -.type __nl_langinfo, %function; -__nl_langinfo: -.globl __nl_langinfo_l -.type __nl_langinfo_l, %function; -__nl_langinfo_l: -.globl __overflow -.type __overflow, %function; -.protected __overflow -__overflow: -.weak __posix_getopt -.type __posix_getopt, %function; -__posix_getopt: -.globl __res_state -.type __res_state, %function; -__res_state: -.globl __sched_cpucount -.type __sched_cpucount, %function; -__sched_cpucount: -.globl __setjmp -.type __setjmp, %function; -__setjmp: -.globl __signbit -.type __signbit, %function; -__signbit: -.globl __signbitf -.type __signbitf, %function; -__signbitf: -.globl __signbitl -.type __signbitl, %function; -__signbitl: -.globl __sigsetjmp -.type __sigsetjmp, %function; -__sigsetjmp: -.globl __stack_chk_fail -.type __stack_chk_fail, %function; -__stack_chk_fail: -.globl __strcasecmp_l -.type __strcasecmp_l, %function; -__strcasecmp_l: -.globl __strcoll_l -.type __strcoll_l, %function; -__strcoll_l: -.globl __strerror_l -.type __strerror_l, %function; -__strerror_l: -.globl __strncasecmp_l -.type __strncasecmp_l, %function; -__strncasecmp_l: -.weak __strtod_l -.type __strtod_l, %function; -__strtod_l: -.weak __strtof_l -.type __strtof_l, %function; -__strtof_l: -.weak __strtoimax_internal -.type __strtoimax_internal, %function; -__strtoimax_internal: -.weak __strtol_internal -.type __strtol_internal, %function; -__strtol_internal: -.weak __strtold_l -.type __strtold_l, %function; -__strtold_l: -.weak __strtoll_internal -.type __strtoll_internal, %function; -__strtoll_internal: -.weak __strtoul_internal -.type __strtoul_internal, %function; -__strtoul_internal: -.weak __strtoull_internal -.type __strtoull_internal, %function; -__strtoull_internal: -.weak __strtoumax_internal -.type __strtoumax_internal, %function; -__strtoumax_internal: -.globl __strxfrm_l -.type __strxfrm_l, %function; -__strxfrm_l: -.weak __sysv_signal -.type __sysv_signal, %function; -__sysv_signal: -.globl __tls_get_addr -.type __tls_get_addr, %function; -__tls_get_addr: -.globl __tolower_l -.type __tolower_l, %function; -__tolower_l: -.globl __toupper_l -.type __toupper_l, %function; -__toupper_l: -.globl __towctrans_l -.type __towctrans_l, %function; -__towctrans_l: -.globl __towlower_l -.type __towlower_l, %function; -__towlower_l: -.globl __towupper_l -.type __towupper_l, %function; -__towupper_l: -.globl __uflow -.type __uflow, %function; -.protected __uflow -__uflow: -.globl __uselocale -.type __uselocale, %function; -__uselocale: -.globl __wcscoll_l -.type __wcscoll_l, %function; -__wcscoll_l: -.globl __wcsftime_l -.type __wcsftime_l, %function; -__wcsftime_l: -.globl __wcsxfrm_l -.type __wcsxfrm_l, %function; -__wcsxfrm_l: -.globl __wctrans_l -.type __wctrans_l, %function; -__wctrans_l: -.globl __wctype_l -.type __wctype_l, %function; -__wctype_l: -.globl __xmknod -.type __xmknod, %function; -__xmknod: -.globl __xmknodat -.type __xmknodat, %function; -__xmknodat: -.weak __xpg_basename -.type __xpg_basename, %function; -__xpg_basename: -.weak __xpg_strerror_r -.type __xpg_strerror_r, %function; -__xpg_strerror_r: -.globl __xstat -.type __xstat, %function; -__xstat: -.weak __xstat64 -.type __xstat64, %function; -__xstat64: -.weak _dl_debug_state -.type _dl_debug_state, %function; -_dl_debug_state: -.globl _dlstart -_dlstart: -.globl _exit -.type _exit, %function; -_exit: -.weak _fini -.type _fini, %function; -_fini: -.globl _flushlbf -.type _flushlbf, %function; -_flushlbf: -.weak _init -.type _init, %function; -_init: -.globl _longjmp -.type _longjmp, %function; -_longjmp: -.globl _pthread_cleanup_pop -.type _pthread_cleanup_pop, %function; -_pthread_cleanup_pop: -.globl _pthread_cleanup_push -.type _pthread_cleanup_push, %function; -_pthread_cleanup_push: -.globl _setjmp -.type _setjmp, %function; -_setjmp: -.globl a64l -.type a64l, %function; -a64l: -.globl abort -.type abort, %function; -abort: -.globl abs -.type abs, %function; -abs: -.globl accept -.type accept, %function; -accept: -.globl accept4 -.type accept4, %function; -accept4: -.globl access -.type access, %function; -access: -.globl acct -.type acct, %function; -acct: -.globl acos -.type acos, %function; -acos: -.globl acosf -.type acosf, %function; -acosf: -.globl acosh -.type acosh, %function; -acosh: -.globl acoshf -.type acoshf, %function; -acoshf: -.globl acoshl -.type acoshl, %function; -acoshl: -.globl acosl -.type acosl, %function; -acosl: -.globl addmntent -.type addmntent, %function; -addmntent: -.globl adjtime -.type adjtime, %function; -adjtime: -.globl adjtimex -.type adjtimex, %function; -adjtimex: -.globl aio_cancel -.type aio_cancel, %function; -aio_cancel: -.weak aio_cancel64 -.type aio_cancel64, %function; -aio_cancel64: -.globl aio_error -.type aio_error, %function; -aio_error: -.weak aio_error64 -.type aio_error64, %function; -aio_error64: +.weak aio_read64 +.type aio_read64, %function; +aio_read64: +.globl aio_read +.type aio_read, %function; +aio_read: +.globl aio_write +.type aio_write, %function; +aio_write: +.weak aio_write64 +.type aio_write64, %function; +aio_write64: .globl aio_fsync .type aio_fsync, %function; aio_fsync: .weak aio_fsync64 .type aio_fsync64, %function; aio_fsync64: -.globl aio_read -.type aio_read, %function; -aio_read: -.weak aio_read64 -.type aio_read64, %function; -aio_read64: -.globl aio_return -.type aio_return, %function; -aio_return: .weak aio_return64 .type aio_return64, %function; aio_return64: +.globl aio_return +.type aio_return, %function; +aio_return: +.globl aio_error +.type aio_error, %function; +aio_error: +.weak aio_error64 +.type aio_error64, %function; +aio_error64: +.globl aio_cancel +.type aio_cancel, %function; +aio_cancel: +.weak aio_cancel64 +.type aio_cancel64, %function; +aio_cancel64: .globl aio_suspend .type aio_suspend, %function; aio_suspend: .weak aio_suspend64 .type aio_suspend64, %function; aio_suspend64: -.globl aio_write -.type aio_write, %function; -aio_write: -.weak aio_write64 -.type aio_write64, %function; -aio_write64: -.globl alarm -.type alarm, %function; -alarm: -.globl aligned_alloc -.type aligned_alloc, %function; -aligned_alloc: -.globl alphasort -.type alphasort, %function; -alphasort: -.weak alphasort64 -.type alphasort64, %function; -alphasort64: -.globl arch_prctl -.type arch_prctl, %function; -arch_prctl: -.globl asctime -.type asctime, %function; -asctime: -.weak asctime_r -.type asctime_r, %function; -asctime_r: -.globl asin -.type asin, %function; -asin: -.globl asinf -.type asinf, %function; -asinf: -.globl asinh -.type asinh, %function; -asinh: -.globl asinhf -.type asinhf, %function; -asinhf: -.globl asinhl -.type asinhl, %function; -asinhl: -.globl asinl -.type asinl, %function; -asinl: -.globl asprintf -.type asprintf, %function; -asprintf: -.globl at_quick_exit -.type at_quick_exit, %function; -at_quick_exit: -.globl atan -.type atan, %function; -atan: -.globl atan2 -.type atan2, %function; -atan2: -.globl atan2f -.type atan2f, %function; -atan2f: -.globl atan2l -.type atan2l, %function; -atan2l: -.globl atanf -.type atanf, %function; -atanf: -.globl atanh -.type atanh, %function; -atanh: -.globl atanhf -.type atanhf, %function; -atanhf: -.globl atanhl -.type atanhl, %function; -atanhl: -.globl atanl -.type atanl, %function; -atanl: -.globl atexit -.type atexit, %function; -atexit: -.globl atof -.type atof, %function; -atof: -.globl atoi -.type atoi, %function; -atoi: -.globl atol -.type atol, %function; -atol: -.globl atoll -.type atoll, %function; -atoll: -.globl basename -.type basename, %function; -basename: -.globl bcmp -.type bcmp, %function; -bcmp: -.globl bcopy -.type bcopy, %function; -bcopy: -.globl bind -.type bind, %function; -bind: -.globl bind_textdomain_codeset -.type bind_textdomain_codeset, %function; -bind_textdomain_codeset: -.globl bindtextdomain -.type bindtextdomain, %function; -bindtextdomain: -.globl brk -.type brk, %function; -brk: -.weak bsd_signal -.type bsd_signal, %function; -bsd_signal: -.globl bsearch -.type bsearch, %function; -bsearch: -.globl btowc -.type btowc, %function; -btowc: -.globl bzero -.type bzero, %function; -bzero: -.globl c16rtomb -.type c16rtomb, %function; -c16rtomb: -.globl c32rtomb -.type c32rtomb, %function; -c32rtomb: +.globl lio_listio +.type lio_listio, %function; +lio_listio: +.weak lio_listio64 +.type lio_listio64, %function; +lio_listio64: .globl cabs .type cabs, %function; cabs: @@ -781,18 +96,6 @@ cacoshl: .globl cacosl .type cacosl, %function; cacosl: -.globl call_once -.type call_once, %function; -call_once: -.globl calloc -.type calloc, %function; -calloc: -.globl capget -.type capget, %function; -capget: -.globl capset -.type capset, %function; -capset: .globl carg .type carg, %function; carg: @@ -838,24 +141,6 @@ catanhl: .globl catanl .type catanl, %function; catanl: -.globl catclose -.type catclose, %function; -catclose: -.globl catgets -.type catgets, %function; -catgets: -.globl catopen -.type catopen, %function; -catopen: -.globl cbrt -.type cbrt, %function; -cbrt: -.globl cbrtf -.type cbrtf, %function; -cbrtf: -.globl cbrtl -.type cbrtl, %function; -cbrtl: .globl ccos .type ccos, %function; ccos: @@ -874,15 +159,6 @@ ccoshl: .globl ccosl .type ccosl, %function; ccosl: -.globl ceil -.type ceil, %function; -ceil: -.globl ceilf -.type ceilf, %function; -ceilf: -.globl ceill -.type ceill, %function; -ceill: .globl cexp .type cexp, %function; cexp: @@ -892,36 +168,6 @@ cexpf: .globl cexpl .type cexpl, %function; cexpl: -.globl cfgetispeed -.type cfgetispeed, %function; -cfgetispeed: -.globl cfgetospeed -.type cfgetospeed, %function; -cfgetospeed: -.globl cfmakeraw -.type cfmakeraw, %function; -cfmakeraw: -.globl cfsetispeed -.type cfsetispeed, %function; -cfsetispeed: -.globl cfsetospeed -.type cfsetospeed, %function; -cfsetospeed: -.weak cfsetspeed -.type cfsetspeed, %function; -cfsetspeed: -.globl chdir -.type chdir, %function; -chdir: -.globl chmod -.type chmod, %function; -chmod: -.globl chown -.type chown, %function; -chown: -.globl chroot -.type chroot, %function; -chroot: .globl cimag .type cimag, %function; cimag: @@ -931,36 +177,6 @@ cimagf: .globl cimagl .type cimagl, %function; cimagl: -.globl clearenv -.type clearenv, %function; -clearenv: -.globl clearerr -.type clearerr, %function; -clearerr: -.weak clearerr_unlocked -.type clearerr_unlocked, %function; -clearerr_unlocked: -.globl clock -.type clock, %function; -clock: -.globl clock_adjtime -.type clock_adjtime, %function; -clock_adjtime: -.globl clock_getcpuclockid -.type clock_getcpuclockid, %function; -clock_getcpuclockid: -.globl clock_getres -.type clock_getres, %function; -clock_getres: -.weak clock_gettime -.type clock_gettime, %function; -clock_gettime: -.weak clock_nanosleep -.type clock_nanosleep, %function; -clock_nanosleep: -.globl clock_settime -.type clock_settime, %function; -clock_settime: .globl clog .type clog, %function; clog: @@ -970,39 +186,6 @@ clogf: .globl clogl .type clogl, %function; clogl: -.globl clone -.type clone, %function; -clone: -.globl close -.type close, %function; -close: -.globl closedir -.type closedir, %function; -closedir: -.globl closelog -.type closelog, %function; -closelog: -.globl cnd_broadcast -.type cnd_broadcast, %function; -cnd_broadcast: -.globl cnd_destroy -.type cnd_destroy, %function; -cnd_destroy: -.globl cnd_init -.type cnd_init, %function; -cnd_init: -.globl cnd_signal -.type cnd_signal, %function; -cnd_signal: -.globl cnd_timedwait -.type cnd_timedwait, %function; -cnd_timedwait: -.globl cnd_wait -.type cnd_wait, %function; -cnd_wait: -.globl confstr -.type confstr, %function; -confstr: .globl conj .type conj, %function; conj: @@ -1012,39 +195,6 @@ conjf: .globl conjl .type conjl, %function; conjl: -.globl connect -.type connect, %function; -connect: -.globl copy_file_range -.type copy_file_range, %function; -copy_file_range: -.globl copysign -.type copysign, %function; -copysign: -.globl copysignf -.type copysignf, %function; -copysignf: -.globl copysignl -.type copysignl, %function; -copysignl: -.globl cos -.type cos, %function; -cos: -.globl cosf -.type cosf, %function; -cosf: -.globl cosh -.type cosh, %function; -cosh: -.globl coshf -.type coshf, %function; -coshf: -.globl coshl -.type coshl, %function; -coshl: -.globl cosl -.type cosl, %function; -cosl: .globl cpow .type cpow, %function; cpow: @@ -1072,18 +222,6 @@ crealf: .globl creall .type creall, %function; creall: -.globl creat -.type creat, %function; -creat: -.weak creat64 -.type creat64, %function; -creat64: -.globl crypt -.type crypt, %function; -crypt: -.weak crypt_r -.type crypt_r, %function; -crypt_r: .globl csin .type csin, %function; csin: @@ -1129,1209 +267,60 @@ ctanhl: .globl ctanl .type ctanl, %function; ctanl: -.globl ctermid -.type ctermid, %function; -ctermid: -.globl ctime -.type ctime, %function; -ctime: -.globl ctime_r -.type ctime_r, %function; -ctime_r: -.globl cuserid -.type cuserid, %function; -cuserid: -.globl daemon -.type daemon, %function; -daemon: -.globl dcgettext -.type dcgettext, %function; -dcgettext: -.globl dcngettext -.type dcngettext, %function; -dcngettext: -.globl delete_module -.type delete_module, %function; -delete_module: -.globl dgettext -.type dgettext, %function; -dgettext: -.globl difftime -.type difftime, %function; -difftime: -.globl dirfd -.type dirfd, %function; -dirfd: -.globl dirname -.type dirname, %function; -dirname: -.globl div -.type div, %function; -div: -.globl dl_iterate_phdr -.type dl_iterate_phdr, %function; -dl_iterate_phdr: -.globl dladdr -.type dladdr, %function; -dladdr: -.globl dlclose -.type dlclose, %function; -dlclose: -.globl dlerror -.type dlerror, %function; -dlerror: -.globl dlinfo -.type dlinfo, %function; -dlinfo: -.globl dlopen -.type dlopen, %function; -dlopen: -.globl dlsym -.type dlsym, %function; -dlsym: -.globl dn_comp -.type dn_comp, %function; -dn_comp: -.weak dn_expand -.type dn_expand, %function; -dn_expand: -.globl dn_skipname -.type dn_skipname, %function; -dn_skipname: -.globl dngettext -.type dngettext, %function; -dngettext: -.globl dprintf -.type dprintf, %function; -dprintf: -.globl drand48 -.type drand48, %function; -drand48: -.weak drem -.type drem, %function; -drem: -.weak dremf -.type dremf, %function; -dremf: -.globl dup -.type dup, %function; -dup: -.globl dup2 -.type dup2, %function; -dup2: -.weak dup3 -.type dup3, %function; -dup3: -.weak duplocale -.type duplocale, %function; -duplocale: -.weak eaccess -.type eaccess, %function; -eaccess: -.globl ecvt -.type ecvt, %function; -ecvt: -.globl encrypt -.type encrypt, %function; -encrypt: -.weak endgrent -.type endgrent, %function; -endgrent: -.globl endhostent -.type endhostent, %function; -endhostent: -.globl endmntent -.type endmntent, %function; -endmntent: -.weak endnetent -.type endnetent, %function; -endnetent: -.globl endprotoent -.type endprotoent, %function; -endprotoent: -.weak endpwent -.type endpwent, %function; -endpwent: -.globl endservent -.type endservent, %function; -endservent: -.globl endspent -.type endspent, %function; -endspent: -.globl endusershell -.type endusershell, %function; -endusershell: -.weak endutent -.type endutent, %function; -endutent: -.globl endutxent -.type endutxent, %function; -endutxent: -.globl epoll_create -.type epoll_create, %function; -epoll_create: -.globl epoll_create1 -.type epoll_create1, %function; -epoll_create1: -.globl epoll_ctl -.type epoll_ctl, %function; -epoll_ctl: -.globl epoll_pwait -.type epoll_pwait, %function; -epoll_pwait: -.globl epoll_wait -.type epoll_wait, %function; -epoll_wait: -.globl erand48 -.type erand48, %function; -erand48: -.globl erf -.type erf, %function; -erf: -.globl erfc -.type erfc, %function; -erfc: -.globl erfcf -.type erfcf, %function; -erfcf: -.globl erfcl -.type erfcl, %function; -erfcl: -.globl erff -.type erff, %function; -erff: -.globl erfl -.type erfl, %function; -erfl: -.globl err -.type err, %function; -err: -.globl errx -.type errx, %function; -errx: -.globl ether_aton -.type ether_aton, %function; -ether_aton: -.globl ether_aton_r -.type ether_aton_r, %function; -ether_aton_r: -.globl ether_hostton -.type ether_hostton, %function; -ether_hostton: -.globl ether_line -.type ether_line, %function; -ether_line: -.globl ether_ntoa -.type ether_ntoa, %function; -ether_ntoa: -.globl ether_ntoa_r -.type ether_ntoa_r, %function; -ether_ntoa_r: -.globl ether_ntohost -.type ether_ntohost, %function; -ether_ntohost: -.globl euidaccess -.type euidaccess, %function; -euidaccess: -.globl eventfd -.type eventfd, %function; -eventfd: -.globl eventfd_read -.type eventfd_read, %function; -eventfd_read: -.globl eventfd_write -.type eventfd_write, %function; -eventfd_write: -.globl execl -.type execl, %function; -execl: -.globl execle -.type execle, %function; -execle: -.globl execlp -.type execlp, %function; -execlp: -.globl execv -.type execv, %function; -execv: -.globl execve -.type execve, %function; -execve: -.globl execvp -.type execvp, %function; -execvp: -.weak execvpe -.type execvpe, %function; -execvpe: -.globl exit -.type exit, %function; -exit: -.globl exp -.type exp, %function; -exp: -.globl exp10 -.type exp10, %function; -exp10: -.globl exp10f -.type exp10f, %function; -exp10f: -.globl exp10l -.type exp10l, %function; -exp10l: -.globl exp2 -.type exp2, %function; -exp2: -.globl exp2f -.type exp2f, %function; -exp2f: -.globl exp2l -.type exp2l, %function; -exp2l: -.globl expf -.type expf, %function; -expf: -.globl expl -.type expl, %function; -expl: -.globl explicit_bzero -.type explicit_bzero, %function; -explicit_bzero: -.globl expm1 -.type expm1, %function; -expm1: -.globl expm1f -.type expm1f, %function; -expm1f: -.globl expm1l -.type expm1l, %function; -expm1l: -.globl fabs -.type fabs, %function; -fabs: -.globl fabsf -.type fabsf, %function; -fabsf: -.globl fabsl -.type fabsl, %function; -fabsl: -.globl faccessat -.type faccessat, %function; -faccessat: -.globl fallocate -.type fallocate, %function; -fallocate: -.weak fallocate64 -.type fallocate64, %function; -fallocate64: -.globl fanotify_init -.type fanotify_init, %function; -fanotify_init: -.globl fanotify_mark -.type fanotify_mark, %function; -fanotify_mark: -.globl fchdir -.type fchdir, %function; -fchdir: -.globl fchmod -.type fchmod, %function; -fchmod: -.globl fchmodat -.type fchmodat, %function; -fchmodat: -.globl fchown -.type fchown, %function; -fchown: -.globl fchownat -.type fchownat, %function; -fchownat: -.globl fclose -.type fclose, %function; -fclose: -.globl fcntl -.type fcntl, %function; -fcntl: -.globl fcvt -.type fcvt, %function; -fcvt: -.globl fdatasync -.type fdatasync, %function; -fdatasync: -.globl fdim -.type fdim, %function; -fdim: -.globl fdimf -.type fdimf, %function; -fdimf: -.globl fdiml -.type fdiml, %function; -fdiml: -.weak fdopen -.type fdopen, %function; -fdopen: -.globl fdopendir -.type fdopendir, %function; -fdopendir: -.globl feclearexcept -.type feclearexcept, %function; -feclearexcept: -.globl fegetenv -.type fegetenv, %function; -fegetenv: -.globl fegetexceptflag -.type fegetexceptflag, %function; -fegetexceptflag: -.globl fegetround -.type fegetround, %function; -fegetround: -.globl feholdexcept -.type feholdexcept, %function; -feholdexcept: -.globl feof -.type feof, %function; -feof: -.weak feof_unlocked -.type feof_unlocked, %function; -feof_unlocked: -.globl feraiseexcept -.type feraiseexcept, %function; -feraiseexcept: -.globl ferror -.type ferror, %function; -ferror: -.weak ferror_unlocked -.type ferror_unlocked, %function; -ferror_unlocked: -.globl fesetenv -.type fesetenv, %function; -fesetenv: -.globl fesetexceptflag -.type fesetexceptflag, %function; -fesetexceptflag: -.globl fesetround -.type fesetround, %function; -fesetround: -.globl fetestexcept -.type fetestexcept, %function; -fetestexcept: -.globl feupdateenv -.type feupdateenv, %function; -feupdateenv: -.globl fexecve -.type fexecve, %function; -fexecve: -.globl fflush -.type fflush, %function; -fflush: -.weak fflush_unlocked -.type fflush_unlocked, %function; -fflush_unlocked: -.globl ffs -.type ffs, %function; -ffs: -.globl ffsl -.type ffsl, %function; -ffsl: -.globl ffsll -.type ffsll, %function; -ffsll: -.globl fgetc -.type fgetc, %function; -fgetc: -.weak fgetc_unlocked -.type fgetc_unlocked, %function; -fgetc_unlocked: -.globl fgetgrent -.type fgetgrent, %function; -fgetgrent: -.globl fgetln -.type fgetln, %function; -fgetln: -.globl fgetpos -.type fgetpos, %function; -fgetpos: -.weak fgetpos64 -.type fgetpos64, %function; -fgetpos64: -.globl fgetpwent -.type fgetpwent, %function; -fgetpwent: -.globl fgets -.type fgets, %function; -fgets: -.weak fgets_unlocked -.type fgets_unlocked, %function; -fgets_unlocked: -.globl fgetspent -.type fgetspent, %function; -fgetspent: -.globl fgetwc -.type fgetwc, %function; -fgetwc: -.weak fgetwc_unlocked -.type fgetwc_unlocked, %function; -fgetwc_unlocked: -.globl fgetws -.type fgetws, %function; -fgetws: -.weak fgetws_unlocked -.type fgetws_unlocked, %function; -fgetws_unlocked: -.globl fgetxattr -.type fgetxattr, %function; -fgetxattr: -.globl fileno -.type fileno, %function; -fileno: -.weak fileno_unlocked -.type fileno_unlocked, %function; -fileno_unlocked: -.globl finite -.type finite, %function; -finite: -.globl finitef -.type finitef, %function; -finitef: -.globl flistxattr -.type flistxattr, %function; -flistxattr: -.globl flock -.type flock, %function; -flock: -.globl flockfile -.type flockfile, %function; -flockfile: -.globl floor -.type floor, %function; -floor: -.globl floorf -.type floorf, %function; -floorf: -.globl floorl -.type floorl, %function; -floorl: -.globl fma -.type fma, %function; -fma: -.globl fmaf -.type fmaf, %function; -fmaf: -.globl fmal -.type fmal, %function; -fmal: -.globl fmax -.type fmax, %function; -fmax: -.globl fmaxf -.type fmaxf, %function; -fmaxf: -.globl fmaxl -.type fmaxl, %function; -fmaxl: -.globl fmemopen -.type fmemopen, %function; -fmemopen: -.globl fmin -.type fmin, %function; -fmin: -.globl fminf -.type fminf, %function; -fminf: -.globl fminl -.type fminl, %function; -fminl: -.globl fmod -.type fmod, %function; -fmod: -.globl fmodf -.type fmodf, %function; -fmodf: -.globl fmodl -.type fmodl, %function; -fmodl: -.globl fmtmsg -.type fmtmsg, %function; -fmtmsg: -.globl fnmatch -.type fnmatch, %function; -fnmatch: -.globl fopen -.type fopen, %function; -fopen: -.weak fopen64 -.type fopen64, %function; -fopen64: -.globl fopencookie -.type fopencookie, %function; -fopencookie: -.globl fork -.type fork, %function; -fork: -.globl forkpty -.type forkpty, %function; -forkpty: +.globl confstr +.type confstr, %function; +confstr: .globl fpathconf .type fpathconf, %function; fpathconf: -.globl fprintf -.type fprintf, %function; -fprintf: -.weak fpurge -.type fpurge, %function; -fpurge: -.globl fputc -.type fputc, %function; -fputc: -.weak fputc_unlocked -.type fputc_unlocked, %function; -fputc_unlocked: -.globl fputs -.type fputs, %function; -fputs: -.weak fputs_unlocked -.type fputs_unlocked, %function; -fputs_unlocked: -.globl fputwc -.type fputwc, %function; -fputwc: -.weak fputwc_unlocked -.type fputwc_unlocked, %function; -fputwc_unlocked: -.globl fputws -.type fputws, %function; -fputws: -.weak fputws_unlocked -.type fputws_unlocked, %function; -fputws_unlocked: -.globl fread -.type fread, %function; -fread: -.weak fread_unlocked -.type fread_unlocked, %function; -fread_unlocked: -.globl free -.type free, %function; -free: -.globl freeaddrinfo -.type freeaddrinfo, %function; -freeaddrinfo: -.globl freeifaddrs -.type freeifaddrs, %function; -freeifaddrs: -.globl freelocale -.type freelocale, %function; -freelocale: -.globl fremovexattr -.type fremovexattr, %function; -fremovexattr: -.globl freopen -.type freopen, %function; -freopen: -.weak freopen64 -.type freopen64, %function; -freopen64: -.globl frexp -.type frexp, %function; -frexp: -.globl frexpf -.type frexpf, %function; -frexpf: -.globl frexpl -.type frexpl, %function; -frexpl: -.globl fscanf -.type fscanf, %function; -fscanf: -.globl fseek -.type fseek, %function; -fseek: -.weak fseeko -.type fseeko, %function; -fseeko: -.weak fseeko64 -.type fseeko64, %function; -fseeko64: -.globl fsetpos -.type fsetpos, %function; -fsetpos: -.weak fsetpos64 -.type fsetpos64, %function; -fsetpos64: -.globl fsetxattr -.type fsetxattr, %function; -fsetxattr: -.globl fstat -.type fstat, %function; -fstat: -.weak fstat64 -.type fstat64, %function; -fstat64: -.globl fstatat -.type fstatat, %function; -fstatat: -.weak fstatat64 -.type fstatat64, %function; -fstatat64: -.weak fstatfs -.type fstatfs, %function; -fstatfs: -.weak fstatfs64 -.type fstatfs64, %function; -fstatfs64: -.globl fstatvfs -.type fstatvfs, %function; -fstatvfs: -.weak fstatvfs64 -.type fstatvfs64, %function; -fstatvfs64: -.globl fsync -.type fsync, %function; -fsync: -.globl ftell -.type ftell, %function; -ftell: -.weak ftello -.type ftello, %function; -ftello: -.weak ftello64 -.type ftello64, %function; -ftello64: -.globl ftime -.type ftime, %function; -ftime: -.globl ftok -.type ftok, %function; -ftok: -.globl ftruncate -.type ftruncate, %function; -ftruncate: -.weak ftruncate64 -.type ftruncate64, %function; -ftruncate64: -.globl ftrylockfile -.type ftrylockfile, %function; -ftrylockfile: -.globl ftw -.type ftw, %function; -ftw: -.weak ftw64 -.type ftw64, %function; -ftw64: -.globl funlockfile -.type funlockfile, %function; -funlockfile: -.globl futimens -.type futimens, %function; -futimens: -.globl futimes -.type futimes, %function; -futimes: -.weak futimesat -.type futimesat, %function; -futimesat: -.globl fwide -.type fwide, %function; -fwide: -.globl fwprintf -.type fwprintf, %function; -fwprintf: -.globl fwrite -.type fwrite, %function; -fwrite: -.weak fwrite_unlocked -.type fwrite_unlocked, %function; -fwrite_unlocked: -.globl fwscanf -.type fwscanf, %function; -fwscanf: -.globl gai_strerror -.type gai_strerror, %function; -gai_strerror: -.globl gcvt -.type gcvt, %function; -gcvt: -.globl get_avphys_pages -.type get_avphys_pages, %function; -get_avphys_pages: -.globl get_current_dir_name -.type get_current_dir_name, %function; -get_current_dir_name: -.globl get_nprocs -.type get_nprocs, %function; -get_nprocs: .globl get_nprocs_conf .type get_nprocs_conf, %function; get_nprocs_conf: +.globl get_nprocs +.type get_nprocs, %function; +get_nprocs: .globl get_phys_pages .type get_phys_pages, %function; get_phys_pages: -.globl getaddrinfo -.type getaddrinfo, %function; -getaddrinfo: -.weak getauxval -.type getauxval, %function; -getauxval: -.globl getc -.type getc, %function; -getc: -.globl getc_unlocked -.type getc_unlocked, %function; -getc_unlocked: -.globl getchar -.type getchar, %function; -getchar: -.globl getchar_unlocked -.type getchar_unlocked, %function; -getchar_unlocked: -.globl getcwd -.type getcwd, %function; -getcwd: -.globl getdate -.type getdate, %function; -getdate: -.globl getdelim -.type getdelim, %function; -getdelim: -.globl getdents -.type getdents, %function; -getdents: -.weak getdents64 -.type getdents64, %function; -getdents64: -.globl getdomainname -.type getdomainname, %function; -getdomainname: -.globl getdtablesize -.type getdtablesize, %function; -getdtablesize: -.globl getegid -.type getegid, %function; -getegid: -.globl getentropy -.type getentropy, %function; -getentropy: -.globl getenv -.type getenv, %function; -getenv: -.globl geteuid -.type geteuid, %function; -geteuid: -.globl getgid -.type getgid, %function; -getgid: -.globl getgrent -.type getgrent, %function; -getgrent: -.globl getgrgid -.type getgrgid, %function; -getgrgid: -.globl getgrgid_r -.type getgrgid_r, %function; -getgrgid_r: -.globl getgrnam -.type getgrnam, %function; -getgrnam: -.globl getgrnam_r -.type getgrnam_r, %function; -getgrnam_r: -.globl getgrouplist -.type getgrouplist, %function; -getgrouplist: -.globl getgroups -.type getgroups, %function; -getgroups: -.globl gethostbyaddr -.type gethostbyaddr, %function; -gethostbyaddr: -.globl gethostbyaddr_r -.type gethostbyaddr_r, %function; -gethostbyaddr_r: -.globl gethostbyname -.type gethostbyname, %function; -gethostbyname: -.globl gethostbyname2 -.type gethostbyname2, %function; -gethostbyname2: -.globl gethostbyname2_r -.type gethostbyname2_r, %function; -gethostbyname2_r: -.globl gethostbyname_r -.type gethostbyname_r, %function; -gethostbyname_r: -.globl gethostent -.type gethostent, %function; -gethostent: -.globl gethostid -.type gethostid, %function; -gethostid: -.globl gethostname -.type gethostname, %function; -gethostname: -.globl getifaddrs -.type getifaddrs, %function; -getifaddrs: -.globl getitimer -.type getitimer, %function; -getitimer: -.globl getline -.type getline, %function; -getline: -.globl getloadavg -.type getloadavg, %function; -getloadavg: -.globl getlogin -.type getlogin, %function; -getlogin: -.globl getlogin_r -.type getlogin_r, %function; -getlogin_r: -.globl getmntent -.type getmntent, %function; -getmntent: -.globl getmntent_r -.type getmntent_r, %function; -getmntent_r: -.globl getnameinfo -.type getnameinfo, %function; -getnameinfo: -.globl getnetbyaddr -.type getnetbyaddr, %function; -getnetbyaddr: -.globl getnetbyname -.type getnetbyname, %function; -getnetbyname: -.globl getnetent -.type getnetent, %function; -getnetent: -.globl getopt -.type getopt, %function; -getopt: -.globl getopt_long -.type getopt_long, %function; -getopt_long: -.globl getopt_long_only -.type getopt_long_only, %function; -getopt_long_only: -.globl getpagesize -.type getpagesize, %function; -getpagesize: -.globl getpass -.type getpass, %function; -getpass: -.globl getpeername -.type getpeername, %function; -getpeername: -.globl getpgid -.type getpgid, %function; -getpgid: -.globl getpgrp -.type getpgrp, %function; -getpgrp: -.globl getpid -.type getpid, %function; -getpid: -.globl getppid -.type getppid, %function; -getppid: -.globl getpriority -.type getpriority, %function; -getpriority: -.globl getprotobyname -.type getprotobyname, %function; -getprotobyname: -.globl getprotobynumber -.type getprotobynumber, %function; -getprotobynumber: -.globl getprotoent -.type getprotoent, %function; -getprotoent: -.globl getpwent -.type getpwent, %function; -getpwent: -.globl getpwnam -.type getpwnam, %function; -getpwnam: -.globl getpwnam_r -.type getpwnam_r, %function; -getpwnam_r: -.globl getpwuid -.type getpwuid, %function; -getpwuid: -.globl getpwuid_r -.type getpwuid_r, %function; -getpwuid_r: -.globl getrandom -.type getrandom, %function; -getrandom: -.globl getresgid -.type getresgid, %function; -getresgid: -.globl getresuid -.type getresuid, %function; -getresuid: -.globl getrlimit -.type getrlimit, %function; -getrlimit: -.weak getrlimit64 -.type getrlimit64, %function; -getrlimit64: -.globl getrusage -.type getrusage, %function; -getrusage: -.globl gets -.type gets, %function; -gets: -.globl getservbyname -.type getservbyname, %function; -getservbyname: -.globl getservbyname_r -.type getservbyname_r, %function; -getservbyname_r: -.globl getservbyport -.type getservbyport, %function; -getservbyport: -.globl getservbyport_r -.type getservbyport_r, %function; -getservbyport_r: -.globl getservent -.type getservent, %function; -getservent: -.globl getsid -.type getsid, %function; -getsid: -.globl getsockname -.type getsockname, %function; -getsockname: -.globl getsockopt -.type getsockopt, %function; -getsockopt: -.globl getspent -.type getspent, %function; -getspent: -.globl getspnam -.type getspnam, %function; -getspnam: -.globl getspnam_r -.type getspnam_r, %function; -getspnam_r: -.globl getsubopt -.type getsubopt, %function; -getsubopt: -.globl gettext -.type gettext, %function; -gettext: -.globl gettid -.type gettid, %function; -gettid: -.globl gettimeofday -.type gettimeofday, %function; -gettimeofday: -.globl getuid -.type getuid, %function; -getuid: -.globl getusershell -.type getusershell, %function; -getusershell: -.weak getutent -.type getutent, %function; -getutent: -.weak getutid -.type getutid, %function; -getutid: -.weak getutline -.type getutline, %function; -getutline: -.globl getutxent -.type getutxent, %function; -getutxent: -.globl getutxid -.type getutxid, %function; -getutxid: -.globl getutxline -.type getutxline, %function; -getutxline: -.globl getw -.type getw, %function; -getw: -.globl getwc -.type getwc, %function; -getwc: -.weak getwc_unlocked -.type getwc_unlocked, %function; -getwc_unlocked: -.globl getwchar -.type getwchar, %function; -getwchar: -.weak getwchar_unlocked -.type getwchar_unlocked, %function; -getwchar_unlocked: -.globl getxattr -.type getxattr, %function; -getxattr: -.globl glob -.type glob, %function; -glob: -.weak glob64 -.type glob64, %function; -glob64: -.globl globfree -.type globfree, %function; -globfree: -.weak globfree64 -.type globfree64, %function; -globfree64: -.globl gmtime -.type gmtime, %function; -gmtime: -.weak gmtime_r -.type gmtime_r, %function; -gmtime_r: -.globl grantpt -.type grantpt, %function; -grantpt: -.globl hasmntopt -.type hasmntopt, %function; -hasmntopt: -.globl hcreate -.type hcreate, %function; -hcreate: -.weak hcreate_r -.type hcreate_r, %function; -hcreate_r: -.globl hdestroy -.type hdestroy, %function; -hdestroy: -.weak hdestroy_r -.type hdestroy_r, %function; -hdestroy_r: -.globl herror -.type herror, %function; -herror: -.globl hsearch -.type hsearch, %function; -hsearch: -.weak hsearch_r -.type hsearch_r, %function; -hsearch_r: -.globl hstrerror -.type hstrerror, %function; -hstrerror: -.globl htonl -.type htonl, %function; -htonl: -.globl htons -.type htons, %function; -htons: -.globl hypot -.type hypot, %function; -hypot: -.globl hypotf -.type hypotf, %function; -hypotf: -.globl hypotl -.type hypotl, %function; -hypotl: -.globl iconv -.type iconv, %function; -iconv: -.globl iconv_close -.type iconv_close, %function; -iconv_close: -.globl iconv_open -.type iconv_open, %function; -iconv_open: -.globl if_freenameindex -.type if_freenameindex, %function; -if_freenameindex: -.globl if_indextoname -.type if_indextoname, %function; -if_indextoname: -.globl if_nameindex -.type if_nameindex, %function; -if_nameindex: -.globl if_nametoindex -.type if_nametoindex, %function; -if_nametoindex: -.globl ilogb -.type ilogb, %function; -ilogb: -.globl ilogbf -.type ilogbf, %function; -ilogbf: -.globl ilogbl -.type ilogbl, %function; -ilogbl: -.globl imaxabs -.type imaxabs, %function; -imaxabs: -.globl imaxdiv -.type imaxdiv, %function; -imaxdiv: -.globl index -.type index, %function; -index: -.globl inet_addr -.type inet_addr, %function; -inet_addr: -.weak inet_aton -.type inet_aton, %function; -inet_aton: -.globl inet_lnaof -.type inet_lnaof, %function; -inet_lnaof: -.globl inet_makeaddr -.type inet_makeaddr, %function; -inet_makeaddr: -.globl inet_netof -.type inet_netof, %function; -inet_netof: -.globl inet_network -.type inet_network, %function; -inet_network: -.globl inet_ntoa -.type inet_ntoa, %function; -inet_ntoa: -.globl inet_ntop -.type inet_ntop, %function; -inet_ntop: -.globl inet_pton -.type inet_pton, %function; -inet_pton: -.globl init_module -.type init_module, %function; -init_module: -.globl initgroups -.type initgroups, %function; -initgroups: -.globl initstate -.type initstate, %function; -initstate: -.globl inotify_add_watch -.type inotify_add_watch, %function; -inotify_add_watch: -.globl inotify_init -.type inotify_init, %function; -inotify_init: -.globl inotify_init1 -.type inotify_init1, %function; -inotify_init1: -.globl inotify_rm_watch -.type inotify_rm_watch, %function; -inotify_rm_watch: -.globl insque -.type insque, %function; -insque: -.globl ioctl -.type ioctl, %function; -ioctl: -.globl ioperm -.type ioperm, %function; -ioperm: -.globl iopl -.type iopl, %function; -iopl: +.globl get_avphys_pages +.type get_avphys_pages, %function; +get_avphys_pages: +.globl pathconf +.type pathconf, %function; +pathconf: +.globl sysconf +.type sysconf, %function; +sysconf: +.globl crypt +.type crypt, %function; +crypt: +.weak crypt_r +.type crypt_r, %function; +crypt_r: +.globl setkey +.type setkey, %function; +setkey: +.globl encrypt +.type encrypt, %function; +encrypt: +.globl __ctype_b_loc +.type __ctype_b_loc, %function; +__ctype_b_loc: +.globl __ctype_get_mb_cur_max +.type __ctype_get_mb_cur_max, %function; +__ctype_get_mb_cur_max: +.globl __ctype_tolower_loc +.type __ctype_tolower_loc, %function; +__ctype_tolower_loc: +.globl __ctype_toupper_loc +.type __ctype_toupper_loc, %function; +__ctype_toupper_loc: .globl isalnum .type isalnum, %function; isalnum: +.globl __isalnum_l +.type __isalnum_l, %function; +__isalnum_l: .weak isalnum_l .type isalnum_l, %function; isalnum_l: @@ -2341,18 +330,18 @@ isalpha: .weak isalpha_l .type isalpha_l, %function; isalpha_l: +.globl __isalpha_l +.type __isalpha_l, %function; +__isalpha_l: .globl isascii .type isascii, %function; isascii: -.globl isastream -.type isastream, %function; -isastream: -.globl isatty -.type isatty, %function; -isatty: .globl isblank .type isblank, %function; isblank: +.globl __isblank_l +.type __isblank_l, %function; +__isblank_l: .weak isblank_l .type isblank_l, %function; isblank_l: @@ -2362,15 +351,24 @@ iscntrl: .weak iscntrl_l .type iscntrl_l, %function; iscntrl_l: +.globl __iscntrl_l +.type __iscntrl_l, %function; +__iscntrl_l: .globl isdigit .type isdigit, %function; isdigit: .weak isdigit_l .type isdigit_l, %function; isdigit_l: +.globl __isdigit_l +.type __isdigit_l, %function; +__isdigit_l: .globl isgraph .type isgraph, %function; isgraph: +.globl __isgraph_l +.type __isgraph_l, %function; +__isgraph_l: .weak isgraph_l .type isgraph_l, %function; isgraph_l: @@ -2380,72 +378,114 @@ islower: .weak islower_l .type islower_l, %function; islower_l: +.globl __islower_l +.type __islower_l, %function; +__islower_l: .globl isprint .type isprint, %function; isprint: .weak isprint_l .type isprint_l, %function; isprint_l: +.globl __isprint_l +.type __isprint_l, %function; +__isprint_l: .globl ispunct .type ispunct, %function; ispunct: .weak ispunct_l .type ispunct_l, %function; ispunct_l: -.globl issetugid -.type issetugid, %function; -issetugid: +.globl __ispunct_l +.type __ispunct_l, %function; +__ispunct_l: .globl isspace .type isspace, %function; isspace: .weak isspace_l .type isspace_l, %function; isspace_l: +.globl __isspace_l +.type __isspace_l, %function; +__isspace_l: .globl isupper .type isupper, %function; isupper: .weak isupper_l .type isupper_l, %function; isupper_l: +.globl __isupper_l +.type __isupper_l, %function; +__isupper_l: .globl iswalnum .type iswalnum, %function; iswalnum: +.globl __iswalnum_l +.type __iswalnum_l, %function; +__iswalnum_l: .weak iswalnum_l .type iswalnum_l, %function; iswalnum_l: .globl iswalpha .type iswalpha, %function; iswalpha: +.globl __iswalpha_l +.type __iswalpha_l, %function; +__iswalpha_l: .weak iswalpha_l .type iswalpha_l, %function; iswalpha_l: .globl iswblank .type iswblank, %function; iswblank: +.globl __iswblank_l +.type __iswblank_l, %function; +__iswblank_l: .weak iswblank_l .type iswblank_l, %function; iswblank_l: .globl iswcntrl .type iswcntrl, %function; iswcntrl: +.globl __iswcntrl_l +.type __iswcntrl_l, %function; +__iswcntrl_l: .weak iswcntrl_l .type iswcntrl_l, %function; iswcntrl_l: .globl iswctype .type iswctype, %function; iswctype: +.globl wctype +.type wctype, %function; +wctype: +.globl __iswctype_l +.type __iswctype_l, %function; +__iswctype_l: .weak iswctype_l .type iswctype_l, %function; iswctype_l: +.globl __wctype_l +.type __wctype_l, %function; +__wctype_l: +.weak wctype_l +.type wctype_l, %function; +wctype_l: .globl iswdigit .type iswdigit, %function; iswdigit: +.globl __iswdigit_l +.type __iswdigit_l, %function; +__iswdigit_l: .weak iswdigit_l .type iswdigit_l, %function; iswdigit_l: .globl iswgraph .type iswgraph, %function; iswgraph: +.globl __iswgraph_l +.type __iswgraph_l, %function; +__iswgraph_l: .weak iswgraph_l .type iswgraph_l, %function; iswgraph_l: @@ -2455,90 +495,1228 @@ iswlower: .weak iswlower_l .type iswlower_l, %function; iswlower_l: +.globl __iswlower_l +.type __iswlower_l, %function; +__iswlower_l: .globl iswprint .type iswprint, %function; iswprint: +.globl __iswprint_l +.type __iswprint_l, %function; +__iswprint_l: .weak iswprint_l .type iswprint_l, %function; iswprint_l: .globl iswpunct .type iswpunct, %function; iswpunct: +.globl __iswpunct_l +.type __iswpunct_l, %function; +__iswpunct_l: .weak iswpunct_l .type iswpunct_l, %function; iswpunct_l: .globl iswspace .type iswspace, %function; iswspace: +.globl __iswspace_l +.type __iswspace_l, %function; +__iswspace_l: .weak iswspace_l .type iswspace_l, %function; iswspace_l: .globl iswupper .type iswupper, %function; iswupper: +.globl __iswupper_l +.type __iswupper_l, %function; +__iswupper_l: .weak iswupper_l .type iswupper_l, %function; iswupper_l: .globl iswxdigit .type iswxdigit, %function; iswxdigit: +.globl __iswxdigit_l +.type __iswxdigit_l, %function; +__iswxdigit_l: .weak iswxdigit_l .type iswxdigit_l, %function; iswxdigit_l: .globl isxdigit .type isxdigit, %function; isxdigit: +.globl __isxdigit_l +.type __isxdigit_l, %function; +__isxdigit_l: .weak isxdigit_l .type isxdigit_l, %function; isxdigit_l: +.globl toascii +.type toascii, %function; +toascii: +.globl tolower +.type tolower, %function; +tolower: +.globl __tolower_l +.type __tolower_l, %function; +__tolower_l: +.weak tolower_l +.type tolower_l, %function; +tolower_l: +.globl toupper +.type toupper, %function; +toupper: +.weak toupper_l +.type toupper_l, %function; +toupper_l: +.globl __toupper_l +.type __toupper_l, %function; +__toupper_l: +.globl towlower +.type towlower, %function; +towlower: +.globl towupper +.type towupper, %function; +towupper: +.globl __towupper_l +.type __towupper_l, %function; +__towupper_l: +.weak towupper_l +.type towupper_l, %function; +towupper_l: +.globl __towlower_l +.type __towlower_l, %function; +__towlower_l: +.weak towlower_l +.type towlower_l, %function; +towlower_l: +.globl wcswidth +.type wcswidth, %function; +wcswidth: +.globl wctrans +.type wctrans, %function; +wctrans: +.globl towctrans +.type towctrans, %function; +towctrans: +.globl __wctrans_l +.type __wctrans_l, %function; +__wctrans_l: +.weak wctrans_l +.type wctrans_l, %function; +wctrans_l: +.weak towctrans_l +.type towctrans_l, %function; +towctrans_l: +.globl __towctrans_l +.type __towctrans_l, %function; +__towctrans_l: +.globl wcwidth +.type wcwidth, %function; +wcwidth: +.globl alphasort +.type alphasort, %function; +alphasort: +.weak alphasort64 +.type alphasort64, %function; +alphasort64: +.globl closedir +.type closedir, %function; +closedir: +.globl dirfd +.type dirfd, %function; +dirfd: +.globl fdopendir +.type fdopendir, %function; +fdopendir: +.globl opendir +.type opendir, %function; +opendir: +.globl readdir +.type readdir, %function; +readdir: +.weak readdir64 +.type readdir64, %function; +readdir64: +.weak readdir64_r +.type readdir64_r, %function; +readdir64_r: +.globl readdir_r +.type readdir_r, %function; +readdir_r: +.globl rewinddir +.type rewinddir, %function; +rewinddir: +.weak scandir64 +.type scandir64, %function; +scandir64: +.globl scandir +.type scandir, %function; +scandir: +.globl seekdir +.type seekdir, %function; +seekdir: +.globl telldir +.type telldir, %function; +telldir: +.globl versionsort +.type versionsort, %function; +versionsort: +.weak versionsort64 +.type versionsort64, %function; +versionsort64: +.weak _init +.type _init, %function; +_init: +.globl __libc_start_main +.type __libc_start_main, %function; +__libc_start_main: +.globl __stack_chk_fail +.type __stack_chk_fail, %function; +__stack_chk_fail: +.globl clearenv +.type clearenv, %function; +clearenv: +.globl getenv +.type getenv, %function; +getenv: +.globl putenv +.type putenv, %function; +putenv: +.globl secure_getenv +.type secure_getenv, %function; +secure_getenv: +.globl setenv +.type setenv, %function; +setenv: +.globl unsetenv +.type unsetenv, %function; +unsetenv: +.globl __errno_location +.type __errno_location, %function; +__errno_location: +.weak strerror_l +.type strerror_l, %function; +strerror_l: +.globl __strerror_l +.type __strerror_l, %function; +__strerror_l: +.globl strerror +.type strerror, %function; +strerror: +.globl _Exit +.type _Exit, %function; +_Exit: +.globl abort +.type abort, %function; +abort: +.globl __assert_fail +.type __assert_fail, %function; +__assert_fail: +.globl at_quick_exit +.type at_quick_exit, %function; +at_quick_exit: +.globl __cxa_finalize +.type __cxa_finalize, %function; +__cxa_finalize: +.globl __cxa_atexit +.type __cxa_atexit, %function; +__cxa_atexit: +.globl atexit +.type atexit, %function; +atexit: +.weak _fini +.type _fini, %function; +_fini: +.globl exit +.type exit, %function; +exit: +.globl quick_exit +.type quick_exit, %function; +quick_exit: +.globl creat +.type creat, %function; +creat: +.weak creat64 +.type creat64, %function; +creat64: +.globl fcntl +.type fcntl, %function; +fcntl: +.weak open64 +.type open64, %function; +open64: +.globl open +.type open, %function; +open: +.weak openat64 +.type openat64, %function; +openat64: +.globl openat +.type openat, %function; +openat: +.weak posix_fadvise64 +.type posix_fadvise64, %function; +posix_fadvise64: +.globl posix_fadvise +.type posix_fadvise, %function; +posix_fadvise: +.weak posix_fallocate64 +.type posix_fallocate64, %function; +posix_fallocate64: +.globl posix_fallocate +.type posix_fallocate, %function; +posix_fallocate: +.globl __flt_rounds +.type __flt_rounds, %function; +__flt_rounds: +.globl fegetexceptflag +.type fegetexceptflag, %function; +fegetexceptflag: +.globl feholdexcept +.type feholdexcept, %function; +feholdexcept: +.globl fesetexceptflag +.type fesetexceptflag, %function; +fesetexceptflag: +.globl fesetround +.type fesetround, %function; +fesetround: +.globl feupdateenv +.type feupdateenv, %function; +feupdateenv: +.globl feclearexcept +.type feclearexcept, %function; +feclearexcept: +.globl feraiseexcept +.type feraiseexcept, %function; +feraiseexcept: +.globl fetestexcept +.type fetestexcept, %function; +fetestexcept: +.globl fegetround +.type fegetround, %function; +fegetround: +.globl fegetenv +.type fegetenv, %function; +fegetenv: +.globl fesetenv +.type fesetenv, %function; +fesetenv: +.globl ftok +.type ftok, %function; +ftok: +.globl msgctl +.type msgctl, %function; +msgctl: +.globl msgget +.type msgget, %function; +msgget: +.globl msgrcv +.type msgrcv, %function; +msgrcv: +.globl msgsnd +.type msgsnd, %function; +msgsnd: +.globl semctl +.type semctl, %function; +semctl: +.globl semget +.type semget, %function; +semget: +.globl semop +.type semop, %function; +semop: +.globl semtimedop +.type semtimedop, %function; +semtimedop: +.globl shmat +.type shmat, %function; +shmat: +.globl shmctl +.type shmctl, %function; +shmctl: +.globl shmdt +.type shmdt, %function; +shmdt: +.globl shmget +.type shmget, %function; +shmget: +.globl dlclose +.type dlclose, %function; +dlclose: +.globl dlerror +.type dlerror, %function; +dlerror: +.globl dlinfo +.type dlinfo, %function; +dlinfo: +.globl dlsym +.type dlsym, %function; +dlsym: +.globl cuserid +.type cuserid, %function; +cuserid: +.globl daemon +.type daemon, %function; +daemon: +.globl vwarn +.type vwarn, %function; +vwarn: +.globl vwarnx +.type vwarnx, %function; +vwarnx: +.globl verr +.type verr, %function; +verr: +.globl verrx +.type verrx, %function; +verrx: +.globl warn +.type warn, %function; +warn: +.globl warnx +.type warnx, %function; +warnx: +.globl err +.type err, %function; +err: +.globl errx +.type errx, %function; +errx: +.globl euidaccess +.type euidaccess, %function; +euidaccess: +.weak eaccess +.type eaccess, %function; +eaccess: +.weak ftw64 +.type ftw64, %function; +ftw64: +.globl ftw +.type ftw, %function; +ftw: +.globl futimes +.type futimes, %function; +futimes: +.globl getdtablesize +.type getdtablesize, %function; +getdtablesize: +.globl getloadavg +.type getloadavg, %function; +getloadavg: +.globl getpagesize +.type getpagesize, %function; +getpagesize: +.globl getpass +.type getpass, %function; +getpass: +.globl endusershell +.type endusershell, %function; +endusershell: +.globl setusershell +.type setusershell, %function; +setusershell: +.globl getusershell +.type getusershell, %function; +getusershell: +.globl isastream +.type isastream, %function; +isastream: +.globl lutimes +.type lutimes, %function; +lutimes: +.globl ulimit +.type ulimit, %function; +ulimit: +.weak endutent +.type endutent, %function; +endutent: +.globl endutxent +.type endutxent, %function; +endutxent: +.weak setutent +.type setutent, %function; +setutent: +.globl setutxent +.type setutxent, %function; +setutxent: +.globl getutxent +.type getutxent, %function; +getutxent: +.weak getutent +.type getutent, %function; +getutent: +.weak getutid +.type getutid, %function; +getutid: +.globl getutxid +.type getutxid, %function; +getutxid: +.weak getutline +.type getutline, %function; +getutline: +.globl getutxline +.type getutxline, %function; +getutxline: +.weak pututline +.type pututline, %function; +pututline: +.globl pututxline +.type pututxline, %function; +pututxline: +.weak updwtmp +.type updwtmp, %function; +updwtmp: +.globl updwtmpx +.type updwtmpx, %function; +updwtmpx: +.weak utmpxname +.type utmpxname, %function; +utmpxname: +.weak utmpname +.type utmpname, %function; +utmpname: +.globl valloc +.type valloc, %function; +valloc: +.globl adjtime +.type adjtime, %function; +adjtime: +.globl adjtimex +.type adjtimex, %function; +adjtimex: +.globl brk +.type brk, %function; +brk: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.weak riscv_flush_icache +.type riscv_flush_icache, %function; +riscv_flush_icache: +#endif +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl __riscv_flush_icache +.type __riscv_flush_icache, %function; +__riscv_flush_icache: +#endif +.globl capset +.type capset, %function; +capset: +.globl capget +.type capget, %function; +capget: +.globl chroot +.type chroot, %function; +chroot: +.globl clock_adjtime +.type clock_adjtime, %function; +clock_adjtime: +.globl clone +.type clone, %function; +clone: +.globl copy_file_range +.type copy_file_range, %function; +copy_file_range: +.globl epoll_create +.type epoll_create, %function; +epoll_create: +.globl epoll_create1 +.type epoll_create1, %function; +epoll_create1: +.globl epoll_ctl +.type epoll_ctl, %function; +epoll_ctl: +.globl epoll_pwait +.type epoll_pwait, %function; +epoll_pwait: +.globl epoll_wait +.type epoll_wait, %function; +epoll_wait: +.globl eventfd +.type eventfd, %function; +eventfd: +.globl eventfd_read +.type eventfd_read, %function; +eventfd_read: +.globl eventfd_write +.type eventfd_write, %function; +eventfd_write: +.weak fallocate64 +.type fallocate64, %function; +fallocate64: +.globl fallocate +.type fallocate, %function; +fallocate: +.globl fanotify_init +.type fanotify_init, %function; +fanotify_init: +.globl fanotify_mark +.type fanotify_mark, %function; +fanotify_mark: +.globl flock +.type flock, %function; +flock: +.globl getdents +.type getdents, %function; +getdents: +.weak getdents64 +.type getdents64, %function; +getdents64: +.globl getrandom +.type getrandom, %function; +getrandom: +.globl gettid +.type gettid, %function; +gettid: +.globl inotify_init +.type inotify_init, %function; +inotify_init: +.globl inotify_init1 +.type inotify_init1, %function; +inotify_init1: +.globl inotify_add_watch +.type inotify_add_watch, %function; +inotify_add_watch: +.globl inotify_rm_watch +.type inotify_rm_watch, %function; +inotify_rm_watch: +.globl klogctl +.type klogctl, %function; +klogctl: +.weak membarrier +.type membarrier, %function; +membarrier: +.globl memfd_create +.type memfd_create, %function; +memfd_create: +.globl mlock2 +.type mlock2, %function; +mlock2: +.globl init_module +.type init_module, %function; +init_module: +.globl delete_module +.type delete_module, %function; +delete_module: +.globl mount +.type mount, %function; +mount: +.globl umount +.type umount, %function; +umount: +.globl umount2 +.type umount2, %function; +umount2: +.globl name_to_handle_at +.type name_to_handle_at, %function; +name_to_handle_at: +.globl open_by_handle_at +.type open_by_handle_at, %function; +open_by_handle_at: +.globl personality +.type personality, %function; +personality: +.globl pivot_root +.type pivot_root, %function; +pivot_root: +.globl ppoll +.type ppoll, %function; +ppoll: +.globl prctl +.type prctl, %function; +prctl: +.weak prlimit64 +.type prlimit64, %function; +prlimit64: +.globl prlimit +.type prlimit, %function; +prlimit: +.globl process_vm_writev +.type process_vm_writev, %function; +process_vm_writev: +.globl process_vm_readv +.type process_vm_readv, %function; +process_vm_readv: +.globl ptrace +.type ptrace, %function; +ptrace: +.globl quotactl +.type quotactl, %function; +quotactl: +.globl readahead +.type readahead, %function; +readahead: +.globl reboot +.type reboot, %function; +reboot: +.globl remap_file_pages +.type remap_file_pages, %function; +remap_file_pages: +.globl sbrk +.type sbrk, %function; +sbrk: +.globl sendfile +.type sendfile, %function; +sendfile: +.weak sendfile64 +.type sendfile64, %function; +sendfile64: +.globl setfsgid +.type setfsgid, %function; +setfsgid: +.globl setfsuid +.type setfsuid, %function; +setfsuid: +.globl setgroups +.type setgroups, %function; +setgroups: +.globl sethostname +.type sethostname, %function; +sethostname: +.globl setns +.type setns, %function; +setns: +.globl settimeofday +.type settimeofday, %function; +settimeofday: +.globl signalfd +.type signalfd, %function; +signalfd: +.globl splice +.type splice, %function; +splice: +.globl stime +.type stime, %function; +stime: +.globl swapon +.type swapon, %function; +swapon: +.globl swapoff +.type swapoff, %function; +swapoff: +.globl sync_file_range +.type sync_file_range, %function; +sync_file_range: +.globl syncfs +.type syncfs, %function; +syncfs: +.weak sysinfo +.type sysinfo, %function; +sysinfo: +.globl tee +.type tee, %function; +tee: +.globl timerfd_create +.type timerfd_create, %function; +timerfd_create: +.globl timerfd_settime +.type timerfd_settime, %function; +timerfd_settime: +.globl timerfd_gettime +.type timerfd_gettime, %function; +timerfd_gettime: +.globl unshare +.type unshare, %function; +unshare: +.globl utimes +.type utimes, %function; +utimes: +.globl vhangup +.type vhangup, %function; +vhangup: +.globl vmsplice +.type vmsplice, %function; +vmsplice: +.globl wait3 +.type wait3, %function; +wait3: +.globl wait4 +.type wait4, %function; +wait4: +.globl getxattr +.type getxattr, %function; +getxattr: +.globl lgetxattr +.type lgetxattr, %function; +lgetxattr: +.globl fgetxattr +.type fgetxattr, %function; +fgetxattr: +.globl listxattr +.type listxattr, %function; +listxattr: +.globl llistxattr +.type llistxattr, %function; +llistxattr: +.globl flistxattr +.type flistxattr, %function; +flistxattr: +.globl setxattr +.type setxattr, %function; +setxattr: +.globl lsetxattr +.type lsetxattr, %function; +lsetxattr: +.globl fsetxattr +.type fsetxattr, %function; +fsetxattr: +.globl removexattr +.type removexattr, %function; +removexattr: +.globl lremovexattr +.type lremovexattr, %function; +lremovexattr: +.globl fremovexattr +.type fremovexattr, %function; +fremovexattr: +.globl bind_textdomain_codeset +.type bind_textdomain_codeset, %function; +bind_textdomain_codeset: +.globl catclose +.type catclose, %function; +catclose: +.globl catgets +.type catgets, %function; +catgets: +.globl catopen +.type catopen, %function; +catopen: +.globl bindtextdomain +.type bindtextdomain, %function; +bindtextdomain: +.globl dcngettext +.type dcngettext, %function; +dcngettext: +.globl dcgettext +.type dcgettext, %function; +dcgettext: +.globl dngettext +.type dngettext, %function; +dngettext: +.globl dgettext +.type dgettext, %function; +dgettext: +.weak duplocale +.type duplocale, %function; +duplocale: +.globl __duplocale +.type __duplocale, %function; +__duplocale: +.weak __freelocale +.type __freelocale, %function; +__freelocale: +.globl freelocale +.type freelocale, %function; +freelocale: +.globl iconv_open +.type iconv_open, %function; +iconv_open: +.globl iconv +.type iconv, %function; +iconv: +.globl iconv_close +.type iconv_close, %function; +iconv_close: +.weak nl_langinfo_l +.type nl_langinfo_l, %function; +nl_langinfo_l: +.globl __nl_langinfo_l +.type __nl_langinfo_l, %function; +__nl_langinfo_l: +.globl __nl_langinfo +.type __nl_langinfo, %function; +__nl_langinfo: +.weak nl_langinfo +.type nl_langinfo, %function; +nl_langinfo: +.globl localeconv +.type localeconv, %function; +localeconv: +.weak newlocale +.type newlocale, %function; +newlocale: +.globl __newlocale +.type __newlocale, %function; +__newlocale: +.globl setlocale +.type setlocale, %function; +setlocale: +.globl __strcoll_l +.type __strcoll_l, %function; +__strcoll_l: +.weak strcoll_l +.type strcoll_l, %function; +strcoll_l: +.globl strcoll +.type strcoll, %function; +strcoll: +.globl strfmon_l +.type strfmon_l, %function; +strfmon_l: +.globl strfmon +.type strfmon, %function; +strfmon: +.globl __strxfrm_l +.type __strxfrm_l, %function; +__strxfrm_l: +.weak strxfrm_l +.type strxfrm_l, %function; +strxfrm_l: +.globl strxfrm +.type strxfrm, %function; +strxfrm: +.globl textdomain +.type textdomain, %function; +textdomain: +.globl gettext +.type gettext, %function; +gettext: +.globl ngettext +.type ngettext, %function; +ngettext: +.globl __uselocale +.type __uselocale, %function; +__uselocale: +.weak uselocale +.type uselocale, %function; +uselocale: +.globl __wcscoll_l +.type __wcscoll_l, %function; +__wcscoll_l: +.weak wcscoll_l +.type wcscoll_l, %function; +wcscoll_l: +.globl wcscoll +.type wcscoll, %function; +wcscoll: +.globl __wcsxfrm_l +.type __wcsxfrm_l, %function; +__wcsxfrm_l: +.weak wcsxfrm_l +.type wcsxfrm_l, %function; +wcsxfrm_l: +.globl wcsxfrm +.type wcsxfrm, %function; +wcsxfrm: +.globl calloc +.type calloc, %function; +calloc: +.globl free +.type free, %function; +free: +.weak malloc +.type malloc, %function; +malloc: +.globl aligned_alloc +.type aligned_alloc, %function; +aligned_alloc: +.globl malloc_usable_size +.type malloc_usable_size, %function; +malloc_usable_size: +.globl memalign +.type memalign, %function; +memalign: +.globl posix_memalign +.type posix_memalign, %function; +posix_memalign: +.globl realloc +.type realloc, %function; +realloc: +.globl reallocarray +.type reallocarray, %function; +reallocarray: +.globl __fpclassify +.type __fpclassify, %function; +__fpclassify: +.globl __fpclassifyf +.type __fpclassifyf, %function; +__fpclassifyf: +.globl __fpclassifyl +.type __fpclassifyl, %function; +__fpclassifyl: +.globl __signbit +.type __signbit, %function; +__signbit: +.globl __signbitf +.type __signbitf, %function; +__signbitf: +.globl __signbitl +.type __signbitl, %function; +__signbitl: +.globl acos +.type acos, %function; +acos: +.globl acosf +.type acosf, %function; +acosf: +.globl acosh +.type acosh, %function; +acosh: +.globl acoshf +.type acoshf, %function; +acoshf: +.globl acoshl +.type acoshl, %function; +acoshl: +.globl acosl +.type acosl, %function; +acosl: +.globl asin +.type asin, %function; +asin: +.globl asinf +.type asinf, %function; +asinf: +.globl asinh +.type asinh, %function; +asinh: +.globl asinhf +.type asinhf, %function; +asinhf: +.globl asinhl +.type asinhl, %function; +asinhl: +.globl asinl +.type asinl, %function; +asinl: +.globl atan +.type atan, %function; +atan: +.globl atan2 +.type atan2, %function; +atan2: +.globl atan2f +.type atan2f, %function; +atan2f: +.globl atan2l +.type atan2l, %function; +atan2l: +.globl atanf +.type atanf, %function; +atanf: +.globl atanh +.type atanh, %function; +atanh: +.globl atanhf +.type atanhf, %function; +atanhf: +.globl atanhl +.type atanhl, %function; +atanhl: +.globl atanl +.type atanl, %function; +atanl: +.globl cbrt +.type cbrt, %function; +cbrt: +.globl cbrtf +.type cbrtf, %function; +cbrtf: +.globl cbrtl +.type cbrtl, %function; +cbrtl: +.globl ceil +.type ceil, %function; +ceil: +.globl ceilf +.type ceilf, %function; +ceilf: +.globl ceill +.type ceill, %function; +ceill: +.globl copysignl +.type copysignl, %function; +copysignl: +.globl cos +.type cos, %function; +cos: +.globl cosf +.type cosf, %function; +cosf: +.globl cosh +.type cosh, %function; +cosh: +.globl coshf +.type coshf, %function; +coshf: +.globl coshl +.type coshl, %function; +coshl: +.globl cosl +.type cosl, %function; +cosl: +.globl erf +.type erf, %function; +erf: +.globl erfc +.type erfc, %function; +erfc: +.globl erff +.type erff, %function; +erff: +.globl erfcf +.type erfcf, %function; +erfcf: +.globl erfl +.type erfl, %function; +erfl: +.globl erfcl +.type erfcl, %function; +erfcl: +.globl exp +.type exp, %function; +exp: +.weak pow10 +.type pow10, %function; +pow10: +.globl exp10 +.type exp10, %function; +exp10: +.weak pow10f +.type pow10f, %function; +pow10f: +.globl exp10f +.type exp10f, %function; +exp10f: +.weak pow10l +.type pow10l, %function; +pow10l: +.globl exp10l +.type exp10l, %function; +exp10l: +.globl exp2 +.type exp2, %function; +exp2: +.globl exp2f +.type exp2f, %function; +exp2f: +.globl exp2l +.type exp2l, %function; +exp2l: +.globl expf +.type expf, %function; +expf: +.globl expl +.type expl, %function; +expl: +.globl expm1 +.type expm1, %function; +expm1: +.globl expm1f +.type expm1f, %function; +expm1f: +.globl expm1l +.type expm1l, %function; +expm1l: +.globl fabsl +.type fabsl, %function; +fabsl: +.globl fdim +.type fdim, %function; +fdim: +.globl fdimf +.type fdimf, %function; +fdimf: +.globl fdiml +.type fdiml, %function; +fdiml: +.globl finite +.type finite, %function; +finite: +.globl finitef +.type finitef, %function; +finitef: +.globl floor +.type floor, %function; +floor: +.globl floorf +.type floorf, %function; +floorf: +.globl floorl +.type floorl, %function; +floorl: +.globl fmal +.type fmal, %function; +fmal: +.globl fmaxl +.type fmaxl, %function; +fmaxl: +.globl fminl +.type fminl, %function; +fminl: +.globl fmod +.type fmod, %function; +fmod: +.globl fmodf +.type fmodf, %function; +fmodf: +.globl fmodl +.type fmodl, %function; +fmodl: +.globl frexp +.type frexp, %function; +frexp: +.globl frexpf +.type frexpf, %function; +frexpf: +.globl frexpl +.type frexpl, %function; +frexpl: +.globl hypot +.type hypot, %function; +hypot: +.globl hypotf +.type hypotf, %function; +hypotf: +.globl hypotl +.type hypotl, %function; +hypotl: +.globl ilogb +.type ilogb, %function; +ilogb: +.globl ilogbf +.type ilogbf, %function; +ilogbf: +.globl ilogbl +.type ilogbl, %function; +ilogbl: .globl j0 .type j0, %function; j0: +.globl y0 +.type y0, %function; +y0: .globl j0f .type j0f, %function; j0f: +.globl y0f +.type y0f, %function; +y0f: .globl j1 .type j1, %function; j1: +.globl y1 +.type y1, %function; +y1: .globl j1f .type j1f, %function; j1f: +.globl y1f +.type y1f, %function; +y1f: .globl jn .type jn, %function; jn: +.globl yn +.type yn, %function; +yn: .globl jnf .type jnf, %function; jnf: -.globl jrand48 -.type jrand48, %function; -jrand48: -.globl kill -.type kill, %function; -kill: -.globl killpg -.type killpg, %function; -killpg: -.globl klogctl -.type klogctl, %function; -klogctl: -.globl l64a -.type l64a, %function; -l64a: -.globl labs -.type labs, %function; -labs: -.globl lchmod -.type lchmod, %function; -lchmod: -.globl lchown -.type lchown, %function; -lchown: -.globl lckpwdf -.type lckpwdf, %function; -lckpwdf: -.globl lcong48 -.type lcong48, %function; -lcong48: +.globl ynf +.type ynf, %function; +ynf: .globl ldexp .type ldexp, %function; ldexp: @@ -2548,12 +1726,6 @@ ldexpf: .globl ldexpl .type ldexpl, %function; ldexpl: -.globl ldiv -.type ldiv, %function; -ldiv: -.globl lfind -.type lfind, %function; -lfind: .globl lgamma .type lgamma, %function; lgamma: @@ -2566,42 +1738,15 @@ lgammaf: .weak lgammaf_r .type lgammaf_r, %function; lgammaf_r: -.globl lgammal -.type lgammal, %function; -lgammal: .weak lgammal_r .type lgammal_r, %function; lgammal_r: -.globl lgetxattr -.type lgetxattr, %function; -lgetxattr: -.globl link -.type link, %function; -link: -.globl linkat -.type linkat, %function; -linkat: -.globl lio_listio -.type lio_listio, %function; -lio_listio: -.weak lio_listio64 -.type lio_listio64, %function; -lio_listio64: -.globl listen -.type listen, %function; -listen: -.globl listxattr -.type listxattr, %function; -listxattr: -.globl llabs -.type llabs, %function; -llabs: -.globl lldiv -.type lldiv, %function; -lldiv: -.globl llistxattr -.type llistxattr, %function; -llistxattr: +.globl __lgammal_r +.type __lgammal_r, %function; +__lgammal_r: +.globl lgammal +.type lgammal, %function; +lgammal: .globl llrint .type llrint, %function; llrint: @@ -2620,21 +1765,6 @@ llroundf: .globl llroundl .type llroundl, %function; llroundl: -.globl localeconv -.type localeconv, %function; -localeconv: -.globl localtime -.type localtime, %function; -localtime: -.weak localtime_r -.type localtime_r, %function; -localtime_r: -.globl lockf -.type lockf, %function; -lockf: -.weak lockf64 -.type lockf64, %function; -lockf64: .globl log .type log, %function; log: @@ -2677,21 +1807,9 @@ logbl: .globl logf .type logf, %function; logf: -.globl login_tty -.type login_tty, %function; -login_tty: .globl logl .type logl, %function; logl: -.globl longjmp -.type longjmp, %function; -longjmp: -.globl lrand48 -.type lrand48, %function; -lrand48: -.globl lremovexattr -.type lremovexattr, %function; -lremovexattr: .globl lrint .type lrint, %function; lrint: @@ -2710,162 +1828,423 @@ lroundf: .globl lroundl .type lroundl, %function; lroundl: -.globl lsearch -.type lsearch, %function; -lsearch: -.weak lseek -.type lseek, %function; -lseek: -.weak lseek64 -.type lseek64, %function; -lseek64: -.globl lsetxattr -.type lsetxattr, %function; -lsetxattr: -.globl lstat -.type lstat, %function; -lstat: -.weak lstat64 -.type lstat64, %function; -lstat64: -.globl lutimes -.type lutimes, %function; -lutimes: +.globl modf +.type modf, %function; +modf: +.globl modff +.type modff, %function; +modff: +.globl modfl +.type modfl, %function; +modfl: +.globl nan +.type nan, %function; +nan: +.globl nanf +.type nanf, %function; +nanf: +.globl nanl +.type nanl, %function; +nanl: +.globl nearbyint +.type nearbyint, %function; +nearbyint: +.globl nearbyintf +.type nearbyintf, %function; +nearbyintf: +.globl nearbyintl +.type nearbyintl, %function; +nearbyintl: +.globl nextafter +.type nextafter, %function; +nextafter: +.globl nextafterf +.type nextafterf, %function; +nextafterf: +.globl nextafterl +.type nextafterl, %function; +nextafterl: +.globl nexttoward +.type nexttoward, %function; +nexttoward: +.globl nexttowardf +.type nexttowardf, %function; +nexttowardf: +.globl nexttowardl +.type nexttowardl, %function; +nexttowardl: +.globl pow +.type pow, %function; +pow: +.globl powf +.type powf, %function; +powf: +.globl powl +.type powl, %function; +powl: +.globl remainder +.type remainder, %function; +remainder: +.weak drem +.type drem, %function; +drem: +.weak dremf +.type dremf, %function; +dremf: +.globl remainderf +.type remainderf, %function; +remainderf: +.globl remainderl +.type remainderl, %function; +remainderl: +.globl remquo +.type remquo, %function; +remquo: +.globl remquof +.type remquof, %function; +remquof: +.globl remquol +.type remquol, %function; +remquol: +.globl rint +.type rint, %function; +rint: +.globl rintf +.type rintf, %function; +rintf: +.globl rintl +.type rintl, %function; +rintl: +.globl copysign +.type copysign, %function; +copysign: +.globl copysignf +.type copysignf, %function; +copysignf: +.globl fabs +.type fabs, %function; +fabs: +.globl fabsf +.type fabsf, %function; +fabsf: +.globl fma +.type fma, %function; +fma: +.globl fmaf +.type fmaf, %function; +fmaf: +.globl fmax +.type fmax, %function; +fmax: +.globl fmaxf +.type fmaxf, %function; +fmaxf: +.globl fmin +.type fmin, %function; +fmin: +.globl fminf +.type fminf, %function; +fminf: +.globl sqrt +.type sqrt, %function; +sqrt: +.globl sqrtf +.type sqrtf, %function; +sqrtf: +.globl round +.type round, %function; +round: +.globl roundf +.type roundf, %function; +roundf: +.globl roundl +.type roundl, %function; +roundl: +.globl scalb +.type scalb, %function; +scalb: +.globl scalbf +.type scalbf, %function; +scalbf: +.globl scalbln +.type scalbln, %function; +scalbln: +.globl scalblnf +.type scalblnf, %function; +scalblnf: +.globl scalblnl +.type scalblnl, %function; +scalblnl: +.globl scalbn +.type scalbn, %function; +scalbn: +.globl scalbnf +.type scalbnf, %function; +scalbnf: +.globl scalbnl +.type scalbnl, %function; +scalbnl: +.globl significand +.type significand, %function; +significand: +.globl significandf +.type significandf, %function; +significandf: +.globl sin +.type sin, %function; +sin: +.globl sincos +.type sincos, %function; +sincos: +.globl sincosf +.type sincosf, %function; +sincosf: +.globl sincosl +.type sincosl, %function; +sincosl: +.globl sinf +.type sinf, %function; +sinf: +.globl sinh +.type sinh, %function; +sinh: +.globl sinhf +.type sinhf, %function; +sinhf: +.globl sinhl +.type sinhl, %function; +sinhl: +.globl sinl +.type sinl, %function; +sinl: +.globl sqrtl +.type sqrtl, %function; +sqrtl: +.globl tan +.type tan, %function; +tan: +.globl tanf +.type tanf, %function; +tanf: +.globl tanh +.type tanh, %function; +tanh: +.globl tanhf +.type tanhf, %function; +tanhf: +.globl tanhl +.type tanhl, %function; +tanhl: +.globl tanl +.type tanl, %function; +tanl: +.globl tgamma +.type tgamma, %function; +tgamma: +.globl tgammaf +.type tgammaf, %function; +tgammaf: +.globl tgammal +.type tgammal, %function; +tgammal: +.globl trunc +.type trunc, %function; +trunc: +.globl truncf +.type truncf, %function; +truncf: +.globl truncl +.type truncl, %function; +truncl: +.globl a64l +.type a64l, %function; +a64l: +.globl l64a +.type l64a, %function; +l64a: +.weak __xpg_basename +.type __xpg_basename, %function; +__xpg_basename: +.globl basename +.type basename, %function; +basename: +.globl dirname +.type dirname, %function; +dirname: +.globl ffs +.type ffs, %function; +ffs: +.globl ffsl +.type ffsl, %function; +ffsl: +.globl ffsll +.type ffsll, %function; +ffsll: +.globl fmtmsg +.type fmtmsg, %function; +fmtmsg: +.globl forkpty +.type forkpty, %function; +forkpty: +.globl get_current_dir_name +.type get_current_dir_name, %function; +get_current_dir_name: +.weak getauxval +.type getauxval, %function; +getauxval: +.globl getdomainname +.type getdomainname, %function; +getdomainname: +.globl getentropy +.type getentropy, %function; +getentropy: +.globl gethostid +.type gethostid, %function; +gethostid: +.weak __posix_getopt +.type __posix_getopt, %function; +__posix_getopt: +.globl getopt +.type getopt, %function; +getopt: +.globl getopt_long +.type getopt_long, %function; +getopt_long: +.globl getopt_long_only +.type getopt_long_only, %function; +getopt_long_only: +.globl getpriority +.type getpriority, %function; +getpriority: +.globl getresgid +.type getresgid, %function; +getresgid: +.globl getresuid +.type getresuid, %function; +getresuid: +.weak getrlimit64 +.type getrlimit64, %function; +getrlimit64: +.globl getrlimit +.type getrlimit, %function; +getrlimit: +.globl getrusage +.type getrusage, %function; +getrusage: +.globl getsubopt +.type getsubopt, %function; +getsubopt: +.globl initgroups +.type initgroups, %function; +initgroups: +.globl ioctl +.type ioctl, %function; +ioctl: +.globl issetugid +.type issetugid, %function; +issetugid: +.weak lockf64 +.type lockf64, %function; +lockf64: +.globl lockf +.type lockf, %function; +lockf: +.globl login_tty +.type login_tty, %function; +login_tty: +.globl setmntent +.type setmntent, %function; +setmntent: +.globl endmntent +.type endmntent, %function; +endmntent: +.globl getmntent_r +.type getmntent_r, %function; +getmntent_r: +.globl getmntent +.type getmntent, %function; +getmntent: +.globl addmntent +.type addmntent, %function; +addmntent: +.globl hasmntopt +.type hasmntopt, %function; +hasmntopt: +.weak nftw64 +.type nftw64, %function; +nftw64: +.globl nftw +.type nftw, %function; +nftw: +.globl openpty +.type openpty, %function; +openpty: +.globl ptsname +.type ptsname, %function; +ptsname: +.globl posix_openpt +.type posix_openpt, %function; +posix_openpt: +.globl grantpt +.type grantpt, %function; +grantpt: +.globl unlockpt +.type unlockpt, %function; +unlockpt: +.weak ptsname_r +.type ptsname_r, %function; +ptsname_r: +.globl realpath +.type realpath, %function; +realpath: +.globl setdomainname +.type setdomainname, %function; +setdomainname: +.globl setpriority +.type setpriority, %function; +setpriority: +.globl setrlimit +.type setrlimit, %function; +setrlimit: +.weak setrlimit64 +.type setrlimit64, %function; +setrlimit64: +.globl syscall +.type syscall, %function; +syscall: +.globl setlogmask +.type setlogmask, %function; +setlogmask: +.globl closelog +.type closelog, %function; +closelog: +.globl openlog +.type openlog, %function; +openlog: +.globl syslog +.type syslog, %function; +syslog: +.weak vsyslog +.type vsyslog, %function; +vsyslog: +.globl uname +.type uname, %function; +uname: +.globl wordexp +.type wordexp, %function; +wordexp: +.globl wordfree +.type wordfree, %function; +wordfree: .weak madvise .type madvise, %function; madvise: -.weak malloc -.type malloc, %function; -malloc: -.globl malloc_usable_size -.type malloc_usable_size, %function; -malloc_usable_size: -.globl mblen -.type mblen, %function; -mblen: -.globl mbrlen -.type mbrlen, %function; -mbrlen: -.globl mbrtoc16 -.type mbrtoc16, %function; -mbrtoc16: -.globl mbrtoc32 -.type mbrtoc32, %function; -mbrtoc32: -.globl mbrtowc -.type mbrtowc, %function; -mbrtowc: -.globl mbsinit -.type mbsinit, %function; -mbsinit: -.globl mbsnrtowcs -.type mbsnrtowcs, %function; -mbsnrtowcs: -.globl mbsrtowcs -.type mbsrtowcs, %function; -mbsrtowcs: -.globl mbstowcs -.type mbstowcs, %function; -mbstowcs: -.globl mbtowc -.type mbtowc, %function; -mbtowc: -.globl memalign -.type memalign, %function; -memalign: -.weak membarrier -.type membarrier, %function; -membarrier: -.globl memccpy -.type memccpy, %function; -memccpy: -.globl memchr -.type memchr, %function; -memchr: -.globl memcmp -.type memcmp, %function; -memcmp: -.globl memcpy -.type memcpy, %function; -memcpy: -.globl memfd_create -.type memfd_create, %function; -memfd_create: -.globl memmem -.type memmem, %function; -memmem: -.globl memmove -.type memmove, %function; -memmove: -.globl mempcpy -.type mempcpy, %function; -mempcpy: -.weak memrchr -.type memrchr, %function; -memrchr: -.globl memset -.type memset, %function; -memset: .globl mincore .type mincore, %function; mincore: -.globl mkdir -.type mkdir, %function; -mkdir: -.globl mkdirat -.type mkdirat, %function; -mkdirat: -.globl mkdtemp -.type mkdtemp, %function; -mkdtemp: -.globl mkfifo -.type mkfifo, %function; -mkfifo: -.globl mkfifoat -.type mkfifoat, %function; -mkfifoat: -.globl mknod -.type mknod, %function; -mknod: -.globl mknodat -.type mknodat, %function; -mknodat: -.globl mkostemp -.type mkostemp, %function; -mkostemp: -.weak mkostemp64 -.type mkostemp64, %function; -mkostemp64: -.weak mkostemps -.type mkostemps, %function; -mkostemps: -.weak mkostemps64 -.type mkostemps64, %function; -mkostemps64: -.globl mkstemp -.type mkstemp, %function; -mkstemp: -.weak mkstemp64 -.type mkstemp64, %function; -mkstemp64: -.globl mkstemps -.type mkstemps, %function; -mkstemps: -.weak mkstemps64 -.type mkstemps64, %function; -mkstemps64: -.globl mktemp -.type mktemp, %function; -mktemp: -.globl mktime -.type mktime, %function; -mktime: .globl mlock .type mlock, %function; mlock: -.globl mlock2 -.type mlock2, %function; -mlock2: .globl mlockall .type mlockall, %function; mlockall: @@ -2875,21 +2254,33 @@ mmap: .weak mmap64 .type mmap64, %function; mmap64: -.globl modf -.type modf, %function; -modf: -.globl modff -.type modff, %function; -modff: -.globl modfl -.type modfl, %function; -modfl: -.globl mount -.type mount, %function; -mount: .weak mprotect .type mprotect, %function; mprotect: +.weak mremap +.type mremap, %function; +mremap: +.globl msync +.type msync, %function; +msync: +.globl munlock +.type munlock, %function; +munlock: +.globl munlockall +.type munlockall, %function; +munlockall: +.weak munmap +.type munmap, %function; +munmap: +.globl posix_madvise +.type posix_madvise, %function; +posix_madvise: +.globl shm_open +.type shm_open, %function; +shm_open: +.globl shm_unlink +.type shm_unlink, %function; +shm_unlink: .globl mq_close .type mq_close, %function; mq_close: @@ -2920,234 +2311,519 @@ mq_timedsend: .globl mq_unlink .type mq_unlink, %function; mq_unlink: -.globl mrand48 -.type mrand48, %function; -mrand48: -.weak mremap -.type mremap, %function; -mremap: -.globl msgctl -.type msgctl, %function; -msgctl: -.globl msgget -.type msgget, %function; -msgget: -.globl msgrcv -.type msgrcv, %function; -msgrcv: -.globl msgsnd -.type msgsnd, %function; -msgsnd: -.globl msync -.type msync, %function; -msync: -.globl mtx_destroy -.type mtx_destroy, %function; -mtx_destroy: -.globl mtx_init -.type mtx_init, %function; -mtx_init: -.globl mtx_lock -.type mtx_lock, %function; -mtx_lock: -.globl mtx_timedlock -.type mtx_timedlock, %function; -mtx_timedlock: -.globl mtx_trylock -.type mtx_trylock, %function; -mtx_trylock: -.globl mtx_unlock -.type mtx_unlock, %function; -mtx_unlock: -.globl munlock -.type munlock, %function; -munlock: -.globl munlockall -.type munlockall, %function; -munlockall: -.weak munmap -.type munmap, %function; -munmap: -.globl name_to_handle_at -.type name_to_handle_at, %function; -name_to_handle_at: -.globl nan -.type nan, %function; -nan: -.globl nanf -.type nanf, %function; -nanf: -.globl nanl -.type nanl, %function; -nanl: -.globl nanosleep -.type nanosleep, %function; -nanosleep: -.globl nearbyint -.type nearbyint, %function; -nearbyint: -.globl nearbyintf -.type nearbyintf, %function; -nearbyintf: -.globl nearbyintl -.type nearbyintl, %function; -nearbyintl: -.weak newlocale -.type newlocale, %function; -newlocale: -.globl nextafter -.type nextafter, %function; -nextafter: -.globl nextafterf -.type nextafterf, %function; -nextafterf: -.globl nextafterl -.type nextafterl, %function; -nextafterl: -.globl nexttoward -.type nexttoward, %function; -nexttoward: -.globl nexttowardf -.type nexttowardf, %function; -nexttowardf: -.globl nexttowardl -.type nexttowardl, %function; -nexttowardl: -.globl nftw -.type nftw, %function; -nftw: -.weak nftw64 -.type nftw64, %function; -nftw64: -.globl ngettext -.type ngettext, %function; -ngettext: -.globl nice -.type nice, %function; -nice: -.weak nl_langinfo -.type nl_langinfo, %function; -nl_langinfo: -.weak nl_langinfo_l -.type nl_langinfo_l, %function; -nl_langinfo_l: -.globl nrand48 -.type nrand48, %function; -nrand48: +.globl btowc +.type btowc, %function; +btowc: +.globl c16rtomb +.type c16rtomb, %function; +c16rtomb: +.globl c32rtomb +.type c32rtomb, %function; +c32rtomb: +.globl mblen +.type mblen, %function; +mblen: +.globl mbrlen +.type mbrlen, %function; +mbrlen: +.globl mbrtoc16 +.type mbrtoc16, %function; +mbrtoc16: +.globl mbrtoc32 +.type mbrtoc32, %function; +mbrtoc32: +.globl mbrtowc +.type mbrtowc, %function; +mbrtowc: +.globl mbsinit +.type mbsinit, %function; +mbsinit: +.globl mbsnrtowcs +.type mbsnrtowcs, %function; +mbsnrtowcs: +.globl mbsrtowcs +.type mbsrtowcs, %function; +mbsrtowcs: +.globl mbstowcs +.type mbstowcs, %function; +mbstowcs: +.globl mbtowc +.type mbtowc, %function; +mbtowc: +.globl wcrtomb +.type wcrtomb, %function; +wcrtomb: +.globl wcsnrtombs +.type wcsnrtombs, %function; +wcsnrtombs: +.globl wcsrtombs +.type wcsrtombs, %function; +wcsrtombs: +.globl wcstombs +.type wcstombs, %function; +wcstombs: +.globl wctob +.type wctob, %function; +wctob: +.globl wctomb +.type wctomb, %function; +wctomb: +.globl accept +.type accept, %function; +accept: +.globl accept4 +.type accept4, %function; +accept4: +.globl bind +.type bind, %function; +bind: +.globl connect +.type connect, %function; +connect: +.globl dn_comp +.type dn_comp, %function; +dn_comp: +.weak dn_expand +.type dn_expand, %function; +dn_expand: +.globl dn_skipname +.type dn_skipname, %function; +dn_skipname: +.weak setnetent +.type setnetent, %function; +setnetent: +.globl sethostent +.type sethostent, %function; +sethostent: +.globl gethostent +.type gethostent, %function; +gethostent: +.globl getnetent +.type getnetent, %function; +getnetent: +.globl endhostent +.type endhostent, %function; +endhostent: +.weak endnetent +.type endnetent, %function; +endnetent: +.globl ether_aton_r +.type ether_aton_r, %function; +ether_aton_r: +.globl ether_aton +.type ether_aton, %function; +ether_aton: +.globl ether_ntoa_r +.type ether_ntoa_r, %function; +ether_ntoa_r: +.globl ether_ntoa +.type ether_ntoa, %function; +ether_ntoa: +.globl ether_line +.type ether_line, %function; +ether_line: +.globl ether_ntohost +.type ether_ntohost, %function; +ether_ntohost: +.globl ether_hostton +.type ether_hostton, %function; +ether_hostton: +.globl freeaddrinfo +.type freeaddrinfo, %function; +freeaddrinfo: +.globl gai_strerror +.type gai_strerror, %function; +gai_strerror: +.globl getaddrinfo +.type getaddrinfo, %function; +getaddrinfo: +.globl gethostbyaddr +.type gethostbyaddr, %function; +gethostbyaddr: +.globl gethostbyaddr_r +.type gethostbyaddr_r, %function; +gethostbyaddr_r: +.globl gethostbyname +.type gethostbyname, %function; +gethostbyname: +.globl gethostbyname2 +.type gethostbyname2, %function; +gethostbyname2: +.globl gethostbyname2_r +.type gethostbyname2_r, %function; +gethostbyname2_r: +.globl gethostbyname_r +.type gethostbyname_r, %function; +gethostbyname_r: +.globl freeifaddrs +.type freeifaddrs, %function; +freeifaddrs: +.globl getifaddrs +.type getifaddrs, %function; +getifaddrs: +.globl getnameinfo +.type getnameinfo, %function; +getnameinfo: +.globl getpeername +.type getpeername, %function; +getpeername: +.globl getservbyname +.type getservbyname, %function; +getservbyname: +.globl getservbyname_r +.type getservbyname_r, %function; +getservbyname_r: +.globl getservbyport +.type getservbyport, %function; +getservbyport: +.globl getservbyport_r +.type getservbyport_r, %function; +getservbyport_r: +.globl getsockname +.type getsockname, %function; +getsockname: +.globl getsockopt +.type getsockopt, %function; +getsockopt: +.globl __h_errno_location +.type __h_errno_location, %function; +__h_errno_location: +.globl herror +.type herror, %function; +herror: +.globl hstrerror +.type hstrerror, %function; +hstrerror: +.globl htonl +.type htonl, %function; +htonl: +.globl htons +.type htons, %function; +htons: +.globl if_freenameindex +.type if_freenameindex, %function; +if_freenameindex: +.globl if_indextoname +.type if_indextoname, %function; +if_indextoname: +.globl if_nameindex +.type if_nameindex, %function; +if_nameindex: +.globl if_nametoindex +.type if_nametoindex, %function; +if_nametoindex: +.globl inet_addr +.type inet_addr, %function; +inet_addr: +.weak inet_aton +.type inet_aton, %function; +inet_aton: +.globl inet_network +.type inet_network, %function; +inet_network: +.globl inet_makeaddr +.type inet_makeaddr, %function; +inet_makeaddr: +.globl inet_lnaof +.type inet_lnaof, %function; +inet_lnaof: +.globl inet_netof +.type inet_netof, %function; +inet_netof: +.globl inet_ntoa +.type inet_ntoa, %function; +inet_ntoa: +.globl inet_ntop +.type inet_ntop, %function; +inet_ntop: +.globl inet_pton +.type inet_pton, %function; +inet_pton: +.globl listen +.type listen, %function; +listen: +.globl getnetbyaddr +.type getnetbyaddr, %function; +getnetbyaddr: +.globl getnetbyname +.type getnetbyname, %function; +getnetbyname: .globl ns_get16 .type ns_get16, %function; ns_get16: .globl ns_get32 .type ns_get32, %function; ns_get32: -.globl ns_initparse -.type ns_initparse, %function; -ns_initparse: -.globl ns_name_uncompress -.type ns_name_uncompress, %function; -ns_name_uncompress: -.globl ns_parserr -.type ns_parserr, %function; -ns_parserr: .globl ns_put16 .type ns_put16, %function; ns_put16: .globl ns_put32 .type ns_put32, %function; ns_put32: +.globl ns_initparse +.type ns_initparse, %function; +ns_initparse: .globl ns_skiprr .type ns_skiprr, %function; ns_skiprr: +.globl ns_parserr +.type ns_parserr, %function; +ns_parserr: +.globl ns_name_uncompress +.type ns_name_uncompress, %function; +ns_name_uncompress: .globl ntohl .type ntohl, %function; ntohl: .globl ntohs .type ntohs, %function; ntohs: -.globl open -.type open, %function; -open: -.weak open64 -.type open64, %function; -open64: -.globl open_by_handle_at -.type open_by_handle_at, %function; -open_by_handle_at: -.globl open_memstream -.type open_memstream, %function; -open_memstream: -.globl open_wmemstream -.type open_wmemstream, %function; -open_wmemstream: -.globl openat -.type openat, %function; -openat: -.weak openat64 -.type openat64, %function; -openat64: -.globl opendir -.type opendir, %function; -opendir: -.globl openlog -.type openlog, %function; -openlog: -.globl openpty -.type openpty, %function; -openpty: -.globl pathconf -.type pathconf, %function; -pathconf: -.globl pause -.type pause, %function; -pause: -.globl pclose -.type pclose, %function; -pclose: -.globl perror -.type perror, %function; -perror: -.globl personality -.type personality, %function; -personality: -.globl pipe -.type pipe, %function; -pipe: -.globl pipe2 -.type pipe2, %function; -pipe2: -.globl pivot_root -.type pivot_root, %function; -pivot_root: -.globl poll -.type poll, %function; -poll: -.globl popen -.type popen, %function; -popen: -.globl posix_close -.type posix_close, %function; -posix_close: -.globl posix_fadvise -.type posix_fadvise, %function; -posix_fadvise: -.weak posix_fadvise64 -.type posix_fadvise64, %function; -posix_fadvise64: -.globl posix_fallocate -.type posix_fallocate, %function; -posix_fallocate: -.weak posix_fallocate64 -.type posix_fallocate64, %function; -posix_fallocate64: -.globl posix_madvise -.type posix_madvise, %function; -posix_madvise: -.globl posix_memalign -.type posix_memalign, %function; -posix_memalign: -.globl posix_openpt -.type posix_openpt, %function; -posix_openpt: +.globl endprotoent +.type endprotoent, %function; +endprotoent: +.globl setprotoent +.type setprotoent, %function; +setprotoent: +.globl getprotoent +.type getprotoent, %function; +getprotoent: +.globl getprotobyname +.type getprotobyname, %function; +getprotobyname: +.globl getprotobynumber +.type getprotobynumber, %function; +getprotobynumber: +.globl recv +.type recv, %function; +recv: +.globl recvfrom +.type recvfrom, %function; +recvfrom: +.globl recvmmsg +.type recvmmsg, %function; +recvmmsg: +.globl recvmsg +.type recvmsg, %function; +recvmsg: +.globl res_init +.type res_init, %function; +res_init: +.weak res_mkquery +.type res_mkquery, %function; +res_mkquery: +.globl res_query +.type res_query, %function; +res_query: +.weak res_search +.type res_search, %function; +res_search: +.globl res_querydomain +.type res_querydomain, %function; +res_querydomain: +.weak res_send +.type res_send, %function; +res_send: +.globl __res_state +.type __res_state, %function; +__res_state: +.globl send +.type send, %function; +send: +.globl sendmmsg +.type sendmmsg, %function; +sendmmsg: +.globl sendmsg +.type sendmsg, %function; +sendmsg: +.globl sendto +.type sendto, %function; +sendto: +.globl endservent +.type endservent, %function; +endservent: +.globl setservent +.type setservent, %function; +setservent: +.globl getservent +.type getservent, %function; +getservent: +.globl setsockopt +.type setsockopt, %function; +setsockopt: +.globl shutdown +.type shutdown, %function; +shutdown: +.globl sockatmark +.type sockatmark, %function; +sockatmark: +.globl socket +.type socket, %function; +socket: +.globl socketpair +.type socketpair, %function; +socketpair: +.globl fgetgrent +.type fgetgrent, %function; +fgetgrent: +.globl fgetpwent +.type fgetpwent, %function; +fgetpwent: +.globl fgetspent +.type fgetspent, %function; +fgetspent: +.globl getgrnam_r +.type getgrnam_r, %function; +getgrnam_r: +.globl getgrgid_r +.type getgrgid_r, %function; +getgrgid_r: +.weak endgrent +.type endgrent, %function; +endgrent: +.globl setgrent +.type setgrent, %function; +setgrent: +.globl getgrent +.type getgrent, %function; +getgrent: +.globl getgrgid +.type getgrgid, %function; +getgrgid: +.globl getgrnam +.type getgrnam, %function; +getgrnam: +.globl getgrouplist +.type getgrouplist, %function; +getgrouplist: +.globl getpwnam_r +.type getpwnam_r, %function; +getpwnam_r: +.globl getpwuid_r +.type getpwuid_r, %function; +getpwuid_r: +.weak endpwent +.type endpwent, %function; +endpwent: +.globl setpwent +.type setpwent, %function; +setpwent: +.globl getpwent +.type getpwent, %function; +getpwent: +.globl getpwuid +.type getpwuid, %function; +getpwuid: +.globl getpwnam +.type getpwnam, %function; +getpwnam: +.globl setspent +.type setspent, %function; +setspent: +.globl endspent +.type endspent, %function; +endspent: +.globl getspent +.type getspent, %function; +getspent: +.globl getspnam +.type getspnam, %function; +getspnam: +.globl getspnam_r +.type getspnam_r, %function; +getspnam_r: +.globl lckpwdf +.type lckpwdf, %function; +lckpwdf: +.globl ulckpwdf +.type ulckpwdf, %function; +ulckpwdf: +.globl putgrent +.type putgrent, %function; +putgrent: +.globl putpwent +.type putpwent, %function; +putpwent: +.globl putspent +.type putspent, %function; +putspent: +.globl erand48 +.type erand48, %function; +erand48: +.globl drand48 +.type drand48, %function; +drand48: +.globl lcong48 +.type lcong48, %function; +lcong48: +.globl nrand48 +.type nrand48, %function; +nrand48: +.globl lrand48 +.type lrand48, %function; +lrand48: +.globl jrand48 +.type jrand48, %function; +jrand48: +.globl mrand48 +.type mrand48, %function; +mrand48: +.globl srand +.type srand, %function; +srand: +.globl rand +.type rand, %function; +rand: +.globl rand_r +.type rand_r, %function; +rand_r: +.globl srandom +.type srandom, %function; +srandom: +.globl initstate +.type initstate, %function; +initstate: +.globl setstate +.type setstate, %function; +setstate: +.globl random +.type random, %function; +random: +.globl seed48 +.type seed48, %function; +seed48: +.globl srand48 +.type srand48, %function; +srand48: +.globl _Fork +.type _Fork, %function; +_Fork: +.globl execl +.type execl, %function; +execl: +.globl execle +.type execle, %function; +execle: +.globl execlp +.type execlp, %function; +execlp: +.globl execv +.type execv, %function; +execv: +.globl execve +.type execve, %function; +execve: +.weak execvpe +.type execvpe, %function; +execvpe: +.globl execvp +.type execvp, %function; +execvp: +.globl fexecve +.type fexecve, %function; +fexecve: +.globl fork +.type fork, %function; +fork: .globl posix_spawn .type posix_spawn, %function; posix_spawn: @@ -3181,12 +2857,6 @@ posix_spawnattr_getflags: .globl posix_spawnattr_getpgroup .type posix_spawnattr_getpgroup, %function; posix_spawnattr_getpgroup: -.globl posix_spawnattr_getschedparam -.type posix_spawnattr_getschedparam, %function; -posix_spawnattr_getschedparam: -.globl posix_spawnattr_getschedpolicy -.type posix_spawnattr_getschedpolicy, %function; -posix_spawnattr_getschedpolicy: .globl posix_spawnattr_getsigdefault .type posix_spawnattr_getsigdefault, %function; posix_spawnattr_getsigdefault: @@ -3196,18 +2866,24 @@ posix_spawnattr_getsigmask: .globl posix_spawnattr_init .type posix_spawnattr_init, %function; posix_spawnattr_init: -.globl posix_spawnattr_setflags -.type posix_spawnattr_setflags, %function; -posix_spawnattr_setflags: -.globl posix_spawnattr_setpgroup -.type posix_spawnattr_setpgroup, %function; -posix_spawnattr_setpgroup: +.globl posix_spawnattr_getschedparam +.type posix_spawnattr_getschedparam, %function; +posix_spawnattr_getschedparam: .globl posix_spawnattr_setschedparam .type posix_spawnattr_setschedparam, %function; posix_spawnattr_setschedparam: +.globl posix_spawnattr_getschedpolicy +.type posix_spawnattr_getschedpolicy, %function; +posix_spawnattr_getschedpolicy: .globl posix_spawnattr_setschedpolicy .type posix_spawnattr_setschedpolicy, %function; posix_spawnattr_setschedpolicy: +.globl posix_spawnattr_setflags +.type posix_spawnattr_setflags, %function; +posix_spawnattr_setflags: +.globl posix_spawnattr_setpgroup +.type posix_spawnattr_setpgroup, %function; +posix_spawnattr_setpgroup: .globl posix_spawnattr_setsigdefault .type posix_spawnattr_setsigdefault, %function; posix_spawnattr_setsigdefault: @@ -3217,66 +2893,1386 @@ posix_spawnattr_setsigmask: .globl posix_spawnp .type posix_spawnp, %function; posix_spawnp: -.globl pow -.type pow, %function; -pow: -.weak pow10 -.type pow10, %function; -pow10: -.weak pow10f -.type pow10f, %function; -pow10f: -.weak pow10l -.type pow10l, %function; -pow10l: -.globl powf -.type powf, %function; -powf: -.globl powl -.type powl, %function; -powl: -.globl ppoll -.type ppoll, %function; -ppoll: -.globl prctl -.type prctl, %function; -prctl: -.globl pread -.type pread, %function; -pread: -.weak pread64 -.type pread64, %function; -pread64: -.globl preadv -.type preadv, %function; -preadv: -.weak preadv64 -.type preadv64, %function; -preadv64: -.globl printf -.type printf, %function; -printf: -.globl prlimit -.type prlimit, %function; -prlimit: -.weak prlimit64 -.type prlimit64, %function; -prlimit64: -.globl process_vm_readv -.type process_vm_readv, %function; -process_vm_readv: -.globl process_vm_writev -.type process_vm_writev, %function; -process_vm_writev: +.globl system +.type system, %function; +system: +.globl vfork +.type vfork, %function; +vfork: +.globl wait +.type wait, %function; +wait: +.globl waitid +.type waitid, %function; +waitid: +.globl waitpid +.type waitpid, %function; +waitpid: +.globl fnmatch +.type fnmatch, %function; +fnmatch: +.globl glob +.type glob, %function; +glob: +.weak glob64 +.type glob64, %function; +glob64: +.globl globfree +.type globfree, %function; +globfree: +.weak globfree64 +.type globfree64, %function; +globfree64: +.globl regcomp +.type regcomp, %function; +regcomp: +.globl regfree +.type regfree, %function; +regfree: +.globl regerror +.type regerror, %function; +regerror: +.globl regexec +.type regexec, %function; +regexec: +.globl sched_setaffinity +.type sched_setaffinity, %function; +sched_setaffinity: +.globl pthread_setaffinity_np +.type pthread_setaffinity_np, %function; +pthread_setaffinity_np: +.globl sched_getaffinity +.type sched_getaffinity, %function; +sched_getaffinity: +.globl pthread_getaffinity_np +.type pthread_getaffinity_np, %function; +pthread_getaffinity_np: +.globl __sched_cpucount +.type __sched_cpucount, %function; +__sched_cpucount: +.globl sched_get_priority_max +.type sched_get_priority_max, %function; +sched_get_priority_max: +.globl sched_get_priority_min +.type sched_get_priority_min, %function; +sched_get_priority_min: +.globl sched_getcpu +.type sched_getcpu, %function; +sched_getcpu: +.globl sched_getparam +.type sched_getparam, %function; +sched_getparam: +.globl sched_getscheduler +.type sched_getscheduler, %function; +sched_getscheduler: +.globl sched_rr_get_interval +.type sched_rr_get_interval, %function; +sched_rr_get_interval: +.globl sched_setparam +.type sched_setparam, %function; +sched_setparam: +.globl sched_setscheduler +.type sched_setscheduler, %function; +sched_setscheduler: +.globl sched_yield +.type sched_yield, %function; +sched_yield: +.globl hcreate +.type hcreate, %function; +hcreate: +.weak hcreate_r +.type hcreate_r, %function; +hcreate_r: +.globl hdestroy +.type hdestroy, %function; +hdestroy: +.weak hdestroy_r +.type hdestroy_r, %function; +hdestroy_r: +.globl hsearch +.type hsearch, %function; +hsearch: +.weak hsearch_r +.type hsearch_r, %function; +hsearch_r: +.globl insque +.type insque, %function; +insque: +.globl remque +.type remque, %function; +remque: +.globl lsearch +.type lsearch, %function; +lsearch: +.globl lfind +.type lfind, %function; +lfind: +.globl tdelete +.type tdelete, %function; +tdelete: +.globl tdestroy +.type tdestroy, %function; +tdestroy: +.globl tfind +.type tfind, %function; +tfind: +.globl tsearch +.type tsearch, %function; +tsearch: +.globl twalk +.type twalk, %function; +twalk: +.globl poll +.type poll, %function; +poll: .globl pselect .type pselect, %function; pselect: +.globl select +.type select, %function; +select: +.globl _longjmp +.type _longjmp, %function; +_longjmp: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl __longjmp +.type __longjmp, %function; +__longjmp: +#endif +.globl longjmp +.type longjmp, %function; +longjmp: +.globl _setjmp +.type _setjmp, %function; +_setjmp: +.globl setjmp +.type setjmp, %function; +setjmp: +.globl __setjmp +.type __setjmp, %function; +__setjmp: +.globl getitimer +.type getitimer, %function; +getitimer: +.globl kill +.type kill, %function; +kill: +.globl killpg +.type killpg, %function; +killpg: .globl psiginfo .type psiginfo, %function; psiginfo: .globl psignal .type psignal, %function; psignal: +.globl raise +.type raise, %function; +raise: +.globl __sigsetjmp +.type __sigsetjmp, %function; +__sigsetjmp: +.globl sigsetjmp +.type sigsetjmp, %function; +sigsetjmp: +.globl setitimer +.type setitimer, %function; +setitimer: +.weak sigaction +.type sigaction, %function; +sigaction: +.globl sigaddset +.type sigaddset, %function; +sigaddset: +.globl sigaltstack +.type sigaltstack, %function; +sigaltstack: +.globl sigandset +.type sigandset, %function; +sigandset: +.globl sigdelset +.type sigdelset, %function; +sigdelset: +.globl sigemptyset +.type sigemptyset, %function; +sigemptyset: +.globl sigfillset +.type sigfillset, %function; +sigfillset: +.globl sighold +.type sighold, %function; +sighold: +.globl sigignore +.type sigignore, %function; +sigignore: +.globl siginterrupt +.type siginterrupt, %function; +siginterrupt: +.globl sigisemptyset +.type sigisemptyset, %function; +sigisemptyset: +.globl sigismember +.type sigismember, %function; +sigismember: +.globl siglongjmp +.type siglongjmp, %function; +siglongjmp: +.globl signal +.type signal, %function; +signal: +.weak __sysv_signal +.type __sysv_signal, %function; +__sysv_signal: +.weak bsd_signal +.type bsd_signal, %function; +bsd_signal: +.globl sigorset +.type sigorset, %function; +sigorset: +.globl sigpause +.type sigpause, %function; +sigpause: +.globl sigpending +.type sigpending, %function; +sigpending: +.globl sigprocmask +.type sigprocmask, %function; +sigprocmask: +.globl sigqueue +.type sigqueue, %function; +sigqueue: +.globl sigrelse +.type sigrelse, %function; +sigrelse: +.globl __libc_current_sigrtmax +.type __libc_current_sigrtmax, %function; +__libc_current_sigrtmax: +.globl __libc_current_sigrtmin +.type __libc_current_sigrtmin, %function; +__libc_current_sigrtmin: +.globl sigset +.type sigset, %function; +sigset: +.globl sigsuspend +.type sigsuspend, %function; +sigsuspend: +.globl sigtimedwait +.type sigtimedwait, %function; +sigtimedwait: +.globl sigwait +.type sigwait, %function; +sigwait: +.globl sigwaitinfo +.type sigwaitinfo, %function; +sigwaitinfo: +WEAK64 __fxstat64 +.type __fxstat64, %function; +__fxstat64: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) +.globl __fxstat +.type __fxstat, %function; +__fxstat: +#endif +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) +.globl __fxstatat +.type __fxstatat, %function; +__fxstatat: +#endif +WEAK64 __fxstatat64 +.type __fxstatat64, %function; +__fxstatat64: +WEAK64 __lxstat64 +.type __lxstat64, %function; +__lxstat64: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) +.globl __lxstat +.type __lxstat, %function; +__lxstat: +#endif +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) +.globl __xstat +.type __xstat, %function; +__xstat: +#endif +WEAK64 __xstat64 +.type __xstat64, %function; +__xstat64: +.globl __xmknod +.type __xmknod, %function; +__xmknod: +.globl __xmknodat +.type __xmknodat, %function; +__xmknodat: +.globl chmod +.type chmod, %function; +chmod: +.globl fchmod +.type fchmod, %function; +fchmod: +.globl fchmodat +.type fchmodat, %function; +fchmodat: +.weak fstat64 +.type fstat64, %function; +fstat64: +.globl fstat +.type fstat, %function; +fstat: +.globl fstatat +.type fstatat, %function; +fstatat: +.weak fstatat64 +.type fstatat64, %function; +fstatat64: +.globl futimens +.type futimens, %function; +futimens: +WEAK64 futimesat +.type futimesat, %function; +futimesat: +.globl lchmod +.type lchmod, %function; +lchmod: +.weak lstat64 +.type lstat64, %function; +lstat64: +.globl lstat +.type lstat, %function; +lstat: +.globl mkdir +.type mkdir, %function; +mkdir: +.globl mkdirat +.type mkdirat, %function; +mkdirat: +.globl mkfifo +.type mkfifo, %function; +mkfifo: +.globl mkfifoat +.type mkfifoat, %function; +mkfifoat: +.globl mknod +.type mknod, %function; +mknod: +.globl mknodat +.type mknodat, %function; +mknodat: +.globl stat +.type stat, %function; +stat: +.weak stat64 +.type stat64, %function; +stat64: +.weak statfs +.type statfs, %function; +statfs: +.weak statfs64 +.type statfs64, %function; +statfs64: +.weak fstatfs +.type fstatfs, %function; +fstatfs: +.weak fstatfs64 +.type fstatfs64, %function; +fstatfs64: +.weak statvfs64 +.type statvfs64, %function; +statvfs64: +.globl statvfs +.type statvfs, %function; +statvfs: +.weak fstatvfs64 +.type fstatvfs64, %function; +fstatvfs64: +.globl fstatvfs +.type fstatvfs, %function; +fstatvfs: +.globl umask +.type umask, %function; +umask: +.globl utimensat +.type utimensat, %function; +utimensat: +.weak fdopen +.type fdopen, %function; +fdopen: +.globl __overflow +.type __overflow, %function; +.protected __overflow +__overflow: +.globl __uflow +.type __uflow, %function; +.protected __uflow +__uflow: +.globl asprintf +.type asprintf, %function; +asprintf: +.weak clearerr_unlocked +.type clearerr_unlocked, %function; +clearerr_unlocked: +.globl clearerr +.type clearerr, %function; +clearerr: +.globl dprintf +.type dprintf, %function; +dprintf: +.globl _flushlbf +.type _flushlbf, %function; +_flushlbf: +.globl __fsetlocking +.type __fsetlocking, %function; +__fsetlocking: +.globl __fwriting +.type __fwriting, %function; +__fwriting: +.globl __freading +.type __freading, %function; +__freading: +.globl __freadable +.type __freadable, %function; +__freadable: +.globl __fwritable +.type __fwritable, %function; +__fwritable: +.globl __flbf +.type __flbf, %function; +__flbf: +.globl __fbufsize +.type __fbufsize, %function; +__fbufsize: +.globl __fpending +.type __fpending, %function; +__fpending: +.globl __fpurge +.type __fpurge, %function; +__fpurge: +.weak fpurge +.type fpurge, %function; +fpurge: +.globl __freadahead +.type __freadahead, %function; +__freadahead: +.globl __freadptr +.type __freadptr, %function; +__freadptr: +.globl __freadptrinc +.type __freadptrinc, %function; +__freadptrinc: +.globl __fseterr +.type __fseterr, %function; +__fseterr: +.globl fclose +.type fclose, %function; +fclose: +.weak _IO_feof_unlocked +.type _IO_feof_unlocked, %function; +_IO_feof_unlocked: +.globl feof +.type feof, %function; +feof: +.weak feof_unlocked +.type feof_unlocked, %function; +feof_unlocked: +.globl ferror +.type ferror, %function; +ferror: +.weak ferror_unlocked +.type ferror_unlocked, %function; +ferror_unlocked: +.weak _IO_ferror_unlocked +.type _IO_ferror_unlocked, %function; +_IO_ferror_unlocked: +.weak fflush_unlocked +.type fflush_unlocked, %function; +fflush_unlocked: +.globl fflush +.type fflush, %function; +fflush: +.globl fgetc +.type fgetc, %function; +fgetc: +.globl fgetln +.type fgetln, %function; +fgetln: +.globl fgetpos +.type fgetpos, %function; +fgetpos: +.weak fgetpos64 +.type fgetpos64, %function; +fgetpos64: +.weak fgets_unlocked +.type fgets_unlocked, %function; +fgets_unlocked: +.globl fgets +.type fgets, %function; +fgets: +.weak getwc_unlocked +.type getwc_unlocked, %function; +getwc_unlocked: +.weak fgetwc_unlocked +.type fgetwc_unlocked, %function; +fgetwc_unlocked: +.globl __fgetwc_unlocked +.type __fgetwc_unlocked, %function; +__fgetwc_unlocked: +.globl fgetwc +.type fgetwc, %function; +fgetwc: +.weak fgetws_unlocked +.type fgetws_unlocked, %function; +fgetws_unlocked: +.globl fgetws +.type fgetws, %function; +fgetws: +.weak fileno_unlocked +.type fileno_unlocked, %function; +fileno_unlocked: +.globl fileno +.type fileno, %function; +fileno: +.globl flockfile +.type flockfile, %function; +flockfile: +.globl fmemopen +.type fmemopen, %function; +fmemopen: +.weak fopen64 +.type fopen64, %function; +fopen64: +.globl fopen +.type fopen, %function; +fopen: +.globl fopencookie +.type fopencookie, %function; +fopencookie: +.globl fprintf +.type fprintf, %function; +fprintf: +.globl fputc +.type fputc, %function; +fputc: +.weak fputs_unlocked +.type fputs_unlocked, %function; +fputs_unlocked: +.globl fputs +.type fputs, %function; +fputs: +.weak putwc_unlocked +.type putwc_unlocked, %function; +putwc_unlocked: +.weak fputwc_unlocked +.type fputwc_unlocked, %function; +fputwc_unlocked: +.globl __fputwc_unlocked +.type __fputwc_unlocked, %function; +__fputwc_unlocked: +.globl fputwc +.type fputwc, %function; +fputwc: +.globl fputws +.type fputws, %function; +fputws: +.weak fputws_unlocked +.type fputws_unlocked, %function; +fputws_unlocked: +.globl fread +.type fread, %function; +fread: +.weak fread_unlocked +.type fread_unlocked, %function; +fread_unlocked: +.weak freopen64 +.type freopen64, %function; +freopen64: +.globl freopen +.type freopen, %function; +freopen: +.weak __isoc99_fscanf +.type __isoc99_fscanf, %function; +__isoc99_fscanf: +.globl fscanf +.type fscanf, %function; +fscanf: +.weak fseeko +.type fseeko, %function; +fseeko: +.weak fseeko64 +.type fseeko64, %function; +fseeko64: +.globl fseek +.type fseek, %function; +fseek: +.globl fsetpos +.type fsetpos, %function; +fsetpos: +.weak fsetpos64 +.type fsetpos64, %function; +fsetpos64: +.weak ftello +.type ftello, %function; +ftello: +.weak ftello64 +.type ftello64, %function; +ftello64: +.globl ftell +.type ftell, %function; +ftell: +.globl ftrylockfile +.type ftrylockfile, %function; +ftrylockfile: +.globl funlockfile +.type funlockfile, %function; +funlockfile: +.globl fwide +.type fwide, %function; +fwide: +.globl fwprintf +.type fwprintf, %function; +fwprintf: +.weak fwrite_unlocked +.type fwrite_unlocked, %function; +fwrite_unlocked: +.globl fwrite +.type fwrite, %function; +fwrite: +.globl fwscanf +.type fwscanf, %function; +fwscanf: +.weak __isoc99_fwscanf +.type __isoc99_fwscanf, %function; +__isoc99_fwscanf: +.globl getc +.type getc, %function; +getc: +.weak _IO_getc +.type _IO_getc, %function; +_IO_getc: +.weak _IO_getc_unlocked +.type _IO_getc_unlocked, %function; +_IO_getc_unlocked: +.globl getc_unlocked +.type getc_unlocked, %function; +getc_unlocked: +.weak fgetc_unlocked +.type fgetc_unlocked, %function; +fgetc_unlocked: +.globl getchar +.type getchar, %function; +getchar: +.globl getchar_unlocked +.type getchar_unlocked, %function; +getchar_unlocked: +.weak __getdelim +.type __getdelim, %function; +__getdelim: +.globl getdelim +.type getdelim, %function; +getdelim: +.globl getline +.type getline, %function; +getline: +.globl gets +.type gets, %function; +gets: +.globl getw +.type getw, %function; +getw: +.globl getwc +.type getwc, %function; +getwc: +.globl getwchar +.type getwchar, %function; +getwchar: +.weak getwchar_unlocked +.type getwchar_unlocked, %function; +getwchar_unlocked: +.globl open_memstream +.type open_memstream, %function; +open_memstream: +.globl open_wmemstream +.type open_wmemstream, %function; +open_wmemstream: +.globl pclose +.type pclose, %function; +pclose: +.globl perror +.type perror, %function; +perror: +.globl popen +.type popen, %function; +popen: +.globl printf +.type printf, %function; +printf: +.globl putc +.type putc, %function; +putc: +.weak _IO_putc +.type _IO_putc, %function; +_IO_putc: +.weak _IO_putc_unlocked +.type _IO_putc_unlocked, %function; +_IO_putc_unlocked: +.globl putc_unlocked +.type putc_unlocked, %function; +putc_unlocked: +.weak fputc_unlocked +.type fputc_unlocked, %function; +fputc_unlocked: +.globl putchar +.type putchar, %function; +putchar: +.globl putchar_unlocked +.type putchar_unlocked, %function; +putchar_unlocked: +.globl puts +.type puts, %function; +puts: +.globl putw +.type putw, %function; +putw: +.globl putwc +.type putwc, %function; +putwc: +.globl putwchar +.type putwchar, %function; +putwchar: +.weak putwchar_unlocked +.type putwchar_unlocked, %function; +putwchar_unlocked: +.globl remove +.type remove, %function; +remove: +.globl rename +.type rename, %function; +rename: +.globl rewind +.type rewind, %function; +rewind: +.weak __isoc99_scanf +.type __isoc99_scanf, %function; +__isoc99_scanf: +.globl scanf +.type scanf, %function; +scanf: +.globl setbuf +.type setbuf, %function; +setbuf: +.globl setbuffer +.type setbuffer, %function; +setbuffer: +.globl setlinebuf +.type setlinebuf, %function; +setlinebuf: +.globl setvbuf +.type setvbuf, %function; +setvbuf: +.globl snprintf +.type snprintf, %function; +snprintf: +.globl sprintf +.type sprintf, %function; +sprintf: +.weak __isoc99_sscanf +.type __isoc99_sscanf, %function; +__isoc99_sscanf: +.globl sscanf +.type sscanf, %function; +sscanf: +.globl swprintf +.type swprintf, %function; +swprintf: +.globl swscanf +.type swscanf, %function; +swscanf: +.weak __isoc99_swscanf +.type __isoc99_swscanf, %function; +__isoc99_swscanf: +.globl tempnam +.type tempnam, %function; +tempnam: +.globl tmpfile +.type tmpfile, %function; +tmpfile: +.weak tmpfile64 +.type tmpfile64, %function; +tmpfile64: +.globl tmpnam +.type tmpnam, %function; +tmpnam: +.globl ungetc +.type ungetc, %function; +ungetc: +.globl ungetwc +.type ungetwc, %function; +ungetwc: +.globl vasprintf +.type vasprintf, %function; +vasprintf: +.globl vdprintf +.type vdprintf, %function; +vdprintf: +.globl vfprintf +.type vfprintf, %function; +vfprintf: +.weak __isoc99_vfscanf +.type __isoc99_vfscanf, %function; +__isoc99_vfscanf: +.globl vfscanf +.type vfscanf, %function; +vfscanf: +.globl vfwprintf +.type vfwprintf, %function; +vfwprintf: +.globl vfwscanf +.type vfwscanf, %function; +vfwscanf: +.weak __isoc99_vfwscanf +.type __isoc99_vfwscanf, %function; +__isoc99_vfwscanf: +.globl vprintf +.type vprintf, %function; +vprintf: +.weak __isoc99_vscanf +.type __isoc99_vscanf, %function; +__isoc99_vscanf: +.globl vscanf +.type vscanf, %function; +vscanf: +.globl vsnprintf +.type vsnprintf, %function; +vsnprintf: +.globl vsprintf +.type vsprintf, %function; +vsprintf: +.globl vsscanf +.type vsscanf, %function; +vsscanf: +.weak __isoc99_vsscanf +.type __isoc99_vsscanf, %function; +__isoc99_vsscanf: +.globl vswprintf +.type vswprintf, %function; +vswprintf: +.weak __isoc99_vswscanf +.type __isoc99_vswscanf, %function; +__isoc99_vswscanf: +.globl vswscanf +.type vswscanf, %function; +vswscanf: +.globl vwprintf +.type vwprintf, %function; +vwprintf: +.globl vwscanf +.type vwscanf, %function; +vwscanf: +.weak __isoc99_vwscanf +.type __isoc99_vwscanf, %function; +__isoc99_vwscanf: +.globl wprintf +.type wprintf, %function; +wprintf: +.weak __isoc99_wscanf +.type __isoc99_wscanf, %function; +__isoc99_wscanf: +.globl wscanf +.type wscanf, %function; +wscanf: +.globl abs +.type abs, %function; +abs: +.globl atof +.type atof, %function; +atof: +.globl atoi +.type atoi, %function; +atoi: +.globl atol +.type atol, %function; +atol: +.globl atoll +.type atoll, %function; +atoll: +.globl bsearch +.type bsearch, %function; +bsearch: +.globl div +.type div, %function; +div: +.globl ecvt +.type ecvt, %function; +ecvt: +.globl fcvt +.type fcvt, %function; +fcvt: +.globl gcvt +.type gcvt, %function; +gcvt: +.globl imaxabs +.type imaxabs, %function; +imaxabs: +.globl imaxdiv +.type imaxdiv, %function; +imaxdiv: +.globl labs +.type labs, %function; +labs: +.globl ldiv +.type ldiv, %function; +ldiv: +.globl llabs +.type llabs, %function; +llabs: +.globl lldiv +.type lldiv, %function; +lldiv: +.globl qsort +.type qsort, %function; +qsort: +.weak __strtof_l +.type __strtof_l, %function; +__strtof_l: +.weak strtof_l +.type strtof_l, %function; +strtof_l: +.globl strtof +.type strtof, %function; +strtof: +.globl strtod +.type strtod, %function; +strtod: +.weak __strtod_l +.type __strtod_l, %function; +__strtod_l: +.weak strtod_l +.type strtod_l, %function; +strtod_l: +.weak strtold_l +.type strtold_l, %function; +strtold_l: +.globl strtold +.type strtold, %function; +strtold: +.weak __strtold_l +.type __strtold_l, %function; +__strtold_l: +.globl strtoull +.type strtoull, %function; +strtoull: +.weak __strtoull_internal +.type __strtoull_internal, %function; +__strtoull_internal: +.globl strtoll +.type strtoll, %function; +strtoll: +.weak __strtoll_internal +.type __strtoll_internal, %function; +__strtoll_internal: +.globl strtoul +.type strtoul, %function; +strtoul: +.weak __strtoul_internal +.type __strtoul_internal, %function; +__strtoul_internal: +.weak __strtol_internal +.type __strtol_internal, %function; +__strtol_internal: +.globl strtol +.type strtol, %function; +strtol: +.globl strtoimax +.type strtoimax, %function; +strtoimax: +.weak __strtoimax_internal +.type __strtoimax_internal, %function; +__strtoimax_internal: +.globl strtoumax +.type strtoumax, %function; +strtoumax: +.weak __strtoumax_internal +.type __strtoumax_internal, %function; +__strtoumax_internal: +.globl wcstof +.type wcstof, %function; +wcstof: +.globl wcstod +.type wcstod, %function; +wcstod: +.globl wcstold +.type wcstold, %function; +wcstold: +.globl wcstoull +.type wcstoull, %function; +wcstoull: +.globl wcstoll +.type wcstoll, %function; +wcstoll: +.globl wcstoul +.type wcstoul, %function; +wcstoul: +.globl wcstol +.type wcstol, %function; +wcstol: +.globl wcstoimax +.type wcstoimax, %function; +wcstoimax: +.globl wcstoumax +.type wcstoumax, %function; +wcstoumax: +.globl bcmp +.type bcmp, %function; +bcmp: +.globl bcopy +.type bcopy, %function; +bcopy: +.globl bzero +.type bzero, %function; +bzero: +.globl explicit_bzero +.type explicit_bzero, %function; +explicit_bzero: +.globl index +.type index, %function; +index: +.globl memccpy +.type memccpy, %function; +memccpy: +.globl memchr +.type memchr, %function; +memchr: +.globl memcmp +.type memcmp, %function; +memcmp: +.globl memcpy +.type memcpy, %function; +memcpy: +.globl memmem +.type memmem, %function; +memmem: +.globl memmove +.type memmove, %function; +memmove: +.globl mempcpy +.type mempcpy, %function; +mempcpy: +.weak memrchr +.type memrchr, %function; +memrchr: +.globl memset +.type memset, %function; +memset: +.globl rindex +.type rindex, %function; +rindex: +.weak stpcpy +.type stpcpy, %function; +stpcpy: +.weak stpncpy +.type stpncpy, %function; +stpncpy: +.globl strcasecmp +.type strcasecmp, %function; +strcasecmp: +.weak strcasecmp_l +.type strcasecmp_l, %function; +strcasecmp_l: +.globl __strcasecmp_l +.type __strcasecmp_l, %function; +__strcasecmp_l: +.globl strcasestr +.type strcasestr, %function; +strcasestr: +.globl strcat +.type strcat, %function; +strcat: +.globl strchr +.type strchr, %function; +strchr: +.weak strchrnul +.type strchrnul, %function; +strchrnul: +.globl strcmp +.type strcmp, %function; +strcmp: +.globl strcpy +.type strcpy, %function; +strcpy: +.globl strcspn +.type strcspn, %function; +strcspn: +.globl strdup +.type strdup, %function; +strdup: +.globl strerror_r +.type strerror_r, %function; +strerror_r: +.weak __xpg_strerror_r +.type __xpg_strerror_r, %function; +__xpg_strerror_r: +.globl strlcat +.type strlcat, %function; +strlcat: +.globl strlcpy +.type strlcpy, %function; +strlcpy: +.globl strlen +.type strlen, %function; +strlen: +.globl strncasecmp +.type strncasecmp, %function; +strncasecmp: +.globl __strncasecmp_l +.type __strncasecmp_l, %function; +__strncasecmp_l: +.weak strncasecmp_l +.type strncasecmp_l, %function; +strncasecmp_l: +.globl strncat +.type strncat, %function; +strncat: +.globl strncmp +.type strncmp, %function; +strncmp: +.globl strncpy +.type strncpy, %function; +strncpy: +.globl strndup +.type strndup, %function; +strndup: +.globl strnlen +.type strnlen, %function; +strnlen: +.globl strpbrk +.type strpbrk, %function; +strpbrk: +.globl strrchr +.type strrchr, %function; +strrchr: +.globl strsep +.type strsep, %function; +strsep: +.globl strsignal +.type strsignal, %function; +strsignal: +.globl strspn +.type strspn, %function; +strspn: +.globl strstr +.type strstr, %function; +strstr: +.globl strtok +.type strtok, %function; +strtok: +.globl strtok_r +.type strtok_r, %function; +strtok_r: +.globl strverscmp +.type strverscmp, %function; +strverscmp: +.globl swab +.type swab, %function; +swab: +.globl wcpcpy +.type wcpcpy, %function; +wcpcpy: +.globl wcpncpy +.type wcpncpy, %function; +wcpncpy: +.globl wcscasecmp +.type wcscasecmp, %function; +wcscasecmp: +.globl wcscasecmp_l +.type wcscasecmp_l, %function; +wcscasecmp_l: +.globl wcscat +.type wcscat, %function; +wcscat: +.globl wcschr +.type wcschr, %function; +wcschr: +.globl wcscmp +.type wcscmp, %function; +wcscmp: +.globl wcscpy +.type wcscpy, %function; +wcscpy: +.globl wcscspn +.type wcscspn, %function; +wcscspn: +.globl wcsdup +.type wcsdup, %function; +wcsdup: +.globl wcslen +.type wcslen, %function; +wcslen: +.globl wcsncasecmp +.type wcsncasecmp, %function; +wcsncasecmp: +.globl wcsncasecmp_l +.type wcsncasecmp_l, %function; +wcsncasecmp_l: +.globl wcsncat +.type wcsncat, %function; +wcsncat: +.globl wcsncmp +.type wcsncmp, %function; +wcsncmp: +.globl wcsncpy +.type wcsncpy, %function; +wcsncpy: +.globl wcsnlen +.type wcsnlen, %function; +wcsnlen: +.globl wcspbrk +.type wcspbrk, %function; +wcspbrk: +.globl wcsrchr +.type wcsrchr, %function; +wcsrchr: +.globl wcsspn +.type wcsspn, %function; +wcsspn: +.globl wcsstr +.type wcsstr, %function; +wcsstr: +.globl wcstok +.type wcstok, %function; +wcstok: +.globl wcswcs +.type wcswcs, %function; +wcswcs: +.globl wmemchr +.type wmemchr, %function; +wmemchr: +.globl wmemcmp +.type wmemcmp, %function; +wmemcmp: +.globl wmemcpy +.type wmemcpy, %function; +wmemcpy: +.globl wmemmove +.type wmemmove, %function; +wmemmove: +.globl wmemset +.type wmemset, %function; +wmemset: +.globl mkdtemp +.type mkdtemp, %function; +mkdtemp: +.globl mkostemp +.type mkostemp, %function; +mkostemp: +.weak mkostemp64 +.type mkostemp64, %function; +mkostemp64: +.weak mkostemps +.type mkostemps, %function; +mkostemps: +.weak mkostemps64 +.type mkostemps64, %function; +mkostemps64: +.globl mkstemp +.type mkstemp, %function; +mkstemp: +.weak mkstemp64 +.type mkstemp64, %function; +mkstemp64: +.globl mkstemps +.type mkstemps, %function; +mkstemps: +.weak mkstemps64 +.type mkstemps64, %function; +mkstemps64: +.globl mktemp +.type mktemp, %function; +mktemp: +.globl cfgetospeed +.type cfgetospeed, %function; +cfgetospeed: +.globl cfgetispeed +.type cfgetispeed, %function; +cfgetispeed: +.globl cfmakeraw +.type cfmakeraw, %function; +cfmakeraw: +.globl cfsetospeed +.type cfsetospeed, %function; +cfsetospeed: +.weak cfsetspeed +.type cfsetspeed, %function; +cfsetspeed: +.globl cfsetispeed +.type cfsetispeed, %function; +cfsetispeed: +.globl tcdrain +.type tcdrain, %function; +tcdrain: +.globl tcflow +.type tcflow, %function; +tcflow: +.globl tcflush +.type tcflush, %function; +tcflush: +.globl tcgetattr +.type tcgetattr, %function; +tcgetattr: +.globl tcgetsid +.type tcgetsid, %function; +tcgetsid: +.globl tcgetwinsize +.type tcgetwinsize, %function; +tcgetwinsize: +.globl tcsendbreak +.type tcsendbreak, %function; +tcsendbreak: +.globl tcsetattr +.type tcsetattr, %function; +tcsetattr: +.globl tcsetwinsize +.type tcsetwinsize, %function; +tcsetwinsize: +.globl __tls_get_addr +.type __tls_get_addr, %function; +__tls_get_addr: +.globl call_once +.type call_once, %function; +call_once: +.globl cnd_broadcast +.type cnd_broadcast, %function; +cnd_broadcast: +.globl cnd_destroy +.type cnd_destroy, %function; +cnd_destroy: +.globl cnd_init +.type cnd_init, %function; +cnd_init: +.globl cnd_signal +.type cnd_signal, %function; +cnd_signal: +.globl cnd_timedwait +.type cnd_timedwait, %function; +cnd_timedwait: +.globl cnd_wait +.type cnd_wait, %function; +cnd_wait: +.globl mtx_destroy +.type mtx_destroy, %function; +mtx_destroy: +.globl mtx_init +.type mtx_init, %function; +mtx_init: +.globl mtx_lock +.type mtx_lock, %function; +mtx_lock: +.globl mtx_timedlock +.type mtx_timedlock, %function; +mtx_timedlock: +.globl mtx_trylock +.type mtx_trylock, %function; +mtx_trylock: +.globl mtx_unlock +.type mtx_unlock, %function; +mtx_unlock: .globl pthread_atfork .type pthread_atfork, %function; pthread_atfork: @@ -3307,6 +4303,30 @@ pthread_attr_getstack: .globl pthread_attr_getstacksize .type pthread_attr_getstacksize, %function; pthread_attr_getstacksize: +.globl pthread_barrierattr_getpshared +.type pthread_barrierattr_getpshared, %function; +pthread_barrierattr_getpshared: +.globl pthread_condattr_getclock +.type pthread_condattr_getclock, %function; +pthread_condattr_getclock: +.globl pthread_condattr_getpshared +.type pthread_condattr_getpshared, %function; +pthread_condattr_getpshared: +.globl pthread_mutexattr_getprotocol +.type pthread_mutexattr_getprotocol, %function; +pthread_mutexattr_getprotocol: +.globl pthread_mutexattr_getpshared +.type pthread_mutexattr_getpshared, %function; +pthread_mutexattr_getpshared: +.globl pthread_mutexattr_getrobust +.type pthread_mutexattr_getrobust, %function; +pthread_mutexattr_getrobust: +.globl pthread_mutexattr_gettype +.type pthread_mutexattr_gettype, %function; +pthread_mutexattr_gettype: +.globl pthread_rwlockattr_getpshared +.type pthread_rwlockattr_getpshared, %function; +pthread_rwlockattr_getpshared: .globl pthread_attr_init .type pthread_attr_init, %function; pthread_attr_init: @@ -3346,9 +4366,6 @@ pthread_barrier_wait: .globl pthread_barrierattr_destroy .type pthread_barrierattr_destroy, %function; pthread_barrierattr_destroy: -.globl pthread_barrierattr_getpshared -.type pthread_barrierattr_getpshared, %function; -pthread_barrierattr_getpshared: .globl pthread_barrierattr_init .type pthread_barrierattr_init, %function; pthread_barrierattr_init: @@ -3358,6 +4375,12 @@ pthread_barrierattr_setpshared: .globl pthread_cancel .type pthread_cancel, %function; pthread_cancel: +.globl _pthread_cleanup_push +.type _pthread_cleanup_push, %function; +_pthread_cleanup_push: +.globl _pthread_cleanup_pop +.type _pthread_cleanup_pop, %function; +_pthread_cleanup_pop: .globl pthread_cond_broadcast .type pthread_cond_broadcast, %function; pthread_cond_broadcast: @@ -3370,7 +4393,7 @@ pthread_cond_init: .globl pthread_cond_signal .type pthread_cond_signal, %function; pthread_cond_signal: -.weak pthread_cond_timedwait +WEAK64 pthread_cond_timedwait .type pthread_cond_timedwait, %function; pthread_cond_timedwait: .globl pthread_cond_wait @@ -3379,12 +4402,6 @@ pthread_cond_wait: .globl pthread_condattr_destroy .type pthread_condattr_destroy, %function; pthread_condattr_destroy: -.globl pthread_condattr_getclock -.type pthread_condattr_getclock, %function; -pthread_condattr_getclock: -.globl pthread_condattr_getpshared -.type pthread_condattr_getpshared, %function; -pthread_condattr_getpshared: .globl pthread_condattr_init .type pthread_condattr_init, %function; pthread_condattr_init: @@ -3394,24 +4411,24 @@ pthread_condattr_setclock: .globl pthread_condattr_setpshared .type pthread_condattr_setpshared, %function; pthread_condattr_setpshared: +.weak pthread_exit +.type pthread_exit, %function; +pthread_exit: .weak pthread_create .type pthread_create, %function; pthread_create: .weak pthread_detach .type pthread_detach, %function; pthread_detach: +.weak thrd_detach +.type thrd_detach, %function; +thrd_detach: .weak pthread_equal .type pthread_equal, %function; pthread_equal: -.weak pthread_exit -.type pthread_exit, %function; -pthread_exit: -.globl pthread_getaffinity_np -.type pthread_getaffinity_np, %function; -pthread_getaffinity_np: -.globl pthread_getattr_default_np -.type pthread_getattr_default_np, %function; -pthread_getattr_default_np: +.weak thrd_equal +.type thrd_equal, %function; +thrd_equal: .globl pthread_getattr_np .type pthread_getattr_np, %function; pthread_getattr_np: @@ -3424,12 +4441,21 @@ pthread_getcpuclockid: .globl pthread_getschedparam .type pthread_getschedparam, %function; pthread_getschedparam: +.weak tss_get +.type tss_get, %function; +tss_get: .weak pthread_getspecific .type pthread_getspecific, %function; pthread_getspecific: .weak pthread_join .type pthread_join, %function; pthread_join: +WEAK64 pthread_timedjoin_np +.type pthread_timedjoin_np, %function; +pthread_timedjoin_np: +.weak pthread_tryjoin_np +.type pthread_tryjoin_np, %function; +pthread_tryjoin_np: .weak pthread_key_create .type pthread_key_create, %function; pthread_key_create: @@ -3457,7 +4483,7 @@ pthread_mutex_lock: .globl pthread_mutex_setprioceiling .type pthread_mutex_setprioceiling, %function; pthread_mutex_setprioceiling: -.weak pthread_mutex_timedlock +WEAK64 pthread_mutex_timedlock .type pthread_mutex_timedlock, %function; pthread_mutex_timedlock: .weak pthread_mutex_trylock @@ -3469,18 +4495,6 @@ pthread_mutex_unlock: .globl pthread_mutexattr_destroy .type pthread_mutexattr_destroy, %function; pthread_mutexattr_destroy: -.globl pthread_mutexattr_getprotocol -.type pthread_mutexattr_getprotocol, %function; -pthread_mutexattr_getprotocol: -.globl pthread_mutexattr_getpshared -.type pthread_mutexattr_getpshared, %function; -pthread_mutexattr_getpshared: -.globl pthread_mutexattr_getrobust -.type pthread_mutexattr_getrobust, %function; -pthread_mutexattr_getrobust: -.globl pthread_mutexattr_gettype -.type pthread_mutexattr_gettype, %function; -pthread_mutexattr_gettype: .globl pthread_mutexattr_init .type pthread_mutexattr_init, %function; pthread_mutexattr_init: @@ -3508,10 +4522,10 @@ pthread_rwlock_init: .weak pthread_rwlock_rdlock .type pthread_rwlock_rdlock, %function; pthread_rwlock_rdlock: -.weak pthread_rwlock_timedrdlock +WEAK64 pthread_rwlock_timedrdlock .type pthread_rwlock_timedrdlock, %function; pthread_rwlock_timedrdlock: -.weak pthread_rwlock_timedwrlock +WEAK64 pthread_rwlock_timedwrlock .type pthread_rwlock_timedwrlock, %function; pthread_rwlock_timedwrlock: .weak pthread_rwlock_tryrdlock @@ -3529,9 +4543,6 @@ pthread_rwlock_wrlock: .globl pthread_rwlockattr_destroy .type pthread_rwlockattr_destroy, %function; pthread_rwlockattr_destroy: -.globl pthread_rwlockattr_getpshared -.type pthread_rwlockattr_getpshared, %function; -pthread_rwlockattr_getpshared: .globl pthread_rwlockattr_init .type pthread_rwlockattr_init, %function; pthread_rwlockattr_init: @@ -3541,12 +4552,15 @@ pthread_rwlockattr_setpshared: .weak pthread_self .type pthread_self, %function; pthread_self: -.globl pthread_setaffinity_np -.type pthread_setaffinity_np, %function; -pthread_setaffinity_np: +.weak thrd_current +.type thrd_current, %function; +thrd_current: .globl pthread_setattr_default_np .type pthread_setattr_default_np, %function; pthread_setattr_default_np: +.globl pthread_getattr_default_np +.type pthread_getattr_default_np, %function; +pthread_getattr_default_np: .weak pthread_setcancelstate .type pthread_setcancelstate, %function; pthread_setcancelstate: @@ -3589,333 +4603,6 @@ pthread_spin_unlock: .weak pthread_testcancel .type pthread_testcancel, %function; pthread_testcancel: -.weak pthread_timedjoin_np -.type pthread_timedjoin_np, %function; -pthread_timedjoin_np: -.weak pthread_tryjoin_np -.type pthread_tryjoin_np, %function; -pthread_tryjoin_np: -.globl ptrace -.type ptrace, %function; -ptrace: -.globl ptsname -.type ptsname, %function; -ptsname: -.weak ptsname_r -.type ptsname_r, %function; -ptsname_r: -.globl putc -.type putc, %function; -putc: -.globl putc_unlocked -.type putc_unlocked, %function; -putc_unlocked: -.globl putchar -.type putchar, %function; -putchar: -.globl putchar_unlocked -.type putchar_unlocked, %function; -putchar_unlocked: -.globl putenv -.type putenv, %function; -putenv: -.globl putgrent -.type putgrent, %function; -putgrent: -.globl putpwent -.type putpwent, %function; -putpwent: -.globl puts -.type puts, %function; -puts: -.globl putspent -.type putspent, %function; -putspent: -.weak pututline -.type pututline, %function; -pututline: -.globl pututxline -.type pututxline, %function; -pututxline: -.globl putw -.type putw, %function; -putw: -.globl putwc -.type putwc, %function; -putwc: -.weak putwc_unlocked -.type putwc_unlocked, %function; -putwc_unlocked: -.globl putwchar -.type putwchar, %function; -putwchar: -.weak putwchar_unlocked -.type putwchar_unlocked, %function; -putwchar_unlocked: -.globl pwrite -.type pwrite, %function; -pwrite: -.weak pwrite64 -.type pwrite64, %function; -pwrite64: -.globl pwritev -.type pwritev, %function; -pwritev: -.weak pwritev64 -.type pwritev64, %function; -pwritev64: -.globl qsort -.type qsort, %function; -qsort: -.globl quick_exit -.type quick_exit, %function; -quick_exit: -.globl quotactl -.type quotactl, %function; -quotactl: -.globl raise -.type raise, %function; -raise: -.globl rand -.type rand, %function; -rand: -.globl rand_r -.type rand_r, %function; -rand_r: -.globl random -.type random, %function; -random: -.globl read -.type read, %function; -read: -.globl readahead -.type readahead, %function; -readahead: -.globl readdir -.type readdir, %function; -readdir: -.weak readdir64 -.type readdir64, %function; -readdir64: -.weak readdir64_r -.type readdir64_r, %function; -readdir64_r: -.globl readdir_r -.type readdir_r, %function; -readdir_r: -.globl readlink -.type readlink, %function; -readlink: -.globl readlinkat -.type readlinkat, %function; -readlinkat: -.globl readv -.type readv, %function; -readv: -.globl realloc -.type realloc, %function; -realloc: -.globl reallocarray -.type reallocarray, %function; -reallocarray: -.globl realpath -.type realpath, %function; -realpath: -.globl reboot -.type reboot, %function; -reboot: -.globl recv -.type recv, %function; -recv: -.globl recvfrom -.type recvfrom, %function; -recvfrom: -.globl recvmmsg -.type recvmmsg, %function; -recvmmsg: -.globl recvmsg -.type recvmsg, %function; -recvmsg: -.globl regcomp -.type regcomp, %function; -regcomp: -.globl regerror -.type regerror, %function; -regerror: -.globl regexec -.type regexec, %function; -regexec: -.globl regfree -.type regfree, %function; -regfree: -.globl remainder -.type remainder, %function; -remainder: -.globl remainderf -.type remainderf, %function; -remainderf: -.globl remainderl -.type remainderl, %function; -remainderl: -.globl remap_file_pages -.type remap_file_pages, %function; -remap_file_pages: -.globl remove -.type remove, %function; -remove: -.globl removexattr -.type removexattr, %function; -removexattr: -.globl remque -.type remque, %function; -remque: -.globl remquo -.type remquo, %function; -remquo: -.globl remquof -.type remquof, %function; -remquof: -.globl remquol -.type remquol, %function; -remquol: -.globl rename -.type rename, %function; -rename: -.globl renameat -.type renameat, %function; -renameat: -.globl res_init -.type res_init, %function; -res_init: -.weak res_mkquery -.type res_mkquery, %function; -res_mkquery: -.globl res_query -.type res_query, %function; -res_query: -.globl res_querydomain -.type res_querydomain, %function; -res_querydomain: -.weak res_search -.type res_search, %function; -res_search: -.weak res_send -.type res_send, %function; -res_send: -.globl rewind -.type rewind, %function; -rewind: -.globl rewinddir -.type rewinddir, %function; -rewinddir: -.globl rindex -.type rindex, %function; -rindex: -.globl rint -.type rint, %function; -rint: -.globl rintf -.type rintf, %function; -rintf: -.globl rintl -.type rintl, %function; -rintl: -.globl rmdir -.type rmdir, %function; -rmdir: -.globl round -.type round, %function; -round: -.globl roundf -.type roundf, %function; -roundf: -.globl roundl -.type roundl, %function; -roundl: -.globl sbrk -.type sbrk, %function; -sbrk: -.globl scalb -.type scalb, %function; -scalb: -.globl scalbf -.type scalbf, %function; -scalbf: -.globl scalbln -.type scalbln, %function; -scalbln: -.globl scalblnf -.type scalblnf, %function; -scalblnf: -.globl scalblnl -.type scalblnl, %function; -scalblnl: -.globl scalbn -.type scalbn, %function; -scalbn: -.globl scalbnf -.type scalbnf, %function; -scalbnf: -.globl scalbnl -.type scalbnl, %function; -scalbnl: -.globl scandir -.type scandir, %function; -scandir: -.weak scandir64 -.type scandir64, %function; -scandir64: -.globl scanf -.type scanf, %function; -scanf: -.globl sched_get_priority_max -.type sched_get_priority_max, %function; -sched_get_priority_max: -.globl sched_get_priority_min -.type sched_get_priority_min, %function; -sched_get_priority_min: -.globl sched_getaffinity -.type sched_getaffinity, %function; -sched_getaffinity: -.globl sched_getcpu -.type sched_getcpu, %function; -sched_getcpu: -.globl sched_getparam -.type sched_getparam, %function; -sched_getparam: -.globl sched_getscheduler -.type sched_getscheduler, %function; -sched_getscheduler: -.globl sched_rr_get_interval -.type sched_rr_get_interval, %function; -sched_rr_get_interval: -.globl sched_setaffinity -.type sched_setaffinity, %function; -sched_setaffinity: -.globl sched_setparam -.type sched_setparam, %function; -sched_setparam: -.globl sched_setscheduler -.type sched_setscheduler, %function; -sched_setscheduler: -.globl sched_yield -.type sched_yield, %function; -sched_yield: -.globl secure_getenv -.type secure_getenv, %function; -secure_getenv: -.globl seed48 -.type seed48, %function; -seed48: -.globl seekdir -.type seekdir, %function; -seekdir: -.globl select -.type select, %function; -select: -.globl sem_close -.type sem_close, %function; -sem_close: .globl sem_destroy .type sem_destroy, %function; sem_destroy: @@ -3928,6 +4615,9 @@ sem_init: .globl sem_open .type sem_open, %function; sem_open: +.globl sem_close +.type sem_close, %function; +sem_close: .globl sem_post .type sem_post, %function; sem_post: @@ -3943,117 +4633,330 @@ sem_unlink: .globl sem_wait .type sem_wait, %function; sem_wait: -.globl semctl -.type semctl, %function; -semctl: -.globl semget -.type semget, %function; -semget: -.globl semop -.type semop, %function; -semop: -.globl semtimedop -.type semtimedop, %function; -semtimedop: -.globl send -.type send, %function; -send: -.globl sendfile -.type sendfile, %function; -sendfile: -.weak sendfile64 -.type sendfile64, %function; -sendfile64: -.globl sendmmsg -.type sendmmsg, %function; -sendmmsg: -.globl sendmsg -.type sendmsg, %function; -sendmsg: -.globl sendto -.type sendto, %function; -sendto: -.globl setbuf -.type setbuf, %function; -setbuf: -.globl setbuffer -.type setbuffer, %function; -setbuffer: -.globl setdomainname -.type setdomainname, %function; -setdomainname: +.globl thrd_create +.type thrd_create, %function; +thrd_create: +.globl thrd_exit +.type thrd_exit, %function; +thrd_exit: +.globl thrd_join +.type thrd_join, %function; +thrd_join: +.globl thrd_sleep +.type thrd_sleep, %function; +thrd_sleep: +.globl thrd_yield +.type thrd_yield, %function; +thrd_yield: +.globl tss_create +.type tss_create, %function; +tss_create: +.globl tss_delete +.type tss_delete, %function; +tss_delete: +.globl tss_set +.type tss_set, %function; +tss_set: +.weak tzset +.type tzset, %function; +tzset: +.globl asctime +.type asctime, %function; +asctime: +.weak asctime_r +.type asctime_r, %function; +asctime_r: +.globl clock +.type clock, %function; +clock: +.globl clock_getcpuclockid +.type clock_getcpuclockid, %function; +clock_getcpuclockid: +.globl clock_getres +.type clock_getres, %function; +clock_getres: +WEAK64 clock_gettime +.type clock_gettime, %function; +clock_gettime: +WEAK64 clock_nanosleep +.type clock_nanosleep, %function; +clock_nanosleep: +.globl clock_settime +.type clock_settime, %function; +clock_settime: +.globl ctime +.type ctime, %function; +ctime: +.globl ctime_r +.type ctime_r, %function; +ctime_r: +.globl difftime +.type difftime, %function; +difftime: +.globl ftime +.type ftime, %function; +ftime: +.globl getdate +.type getdate, %function; +getdate: +.globl gettimeofday +.type gettimeofday, %function; +gettimeofday: +.globl gmtime +.type gmtime, %function; +gmtime: +WEAK64 gmtime_r +.type gmtime_r, %function; +gmtime_r: +.globl localtime +.type localtime, %function; +localtime: +WEAK64 localtime_r +.type localtime_r, %function; +localtime_r: +.globl mktime +.type mktime, %function; +mktime: +.globl nanosleep +.type nanosleep, %function; +nanosleep: +.weak strftime_l +.type strftime_l, %function; +strftime_l: +.globl strftime +.type strftime, %function; +strftime: +.globl strptime +.type strptime, %function; +strptime: +.globl time +.type time, %function; +time: +.globl timegm +.type timegm, %function; +timegm: +.globl timer_create +.type timer_create, %function; +timer_create: +.globl timer_delete +.type timer_delete, %function; +timer_delete: +.globl timer_getoverrun +.type timer_getoverrun, %function; +timer_getoverrun: +.globl timer_gettime +.type timer_gettime, %function; +timer_gettime: +.globl timer_settime +.type timer_settime, %function; +timer_settime: +.globl times +.type times, %function; +times: +.globl timespec_get +.type timespec_get, %function; +timespec_get: +.globl utime +.type utime, %function; +utime: +.globl __wcsftime_l +.type __wcsftime_l, %function; +__wcsftime_l: +.weak wcsftime_l +.type wcsftime_l, %function; +wcsftime_l: +.globl wcsftime +.type wcsftime, %function; +wcsftime: +.globl _exit +.type _exit, %function; +_exit: +.globl access +.type access, %function; +access: +.globl acct +.type acct, %function; +acct: +.globl alarm +.type alarm, %function; +alarm: +.globl chdir +.type chdir, %function; +chdir: +.globl chown +.type chown, %function; +chown: +.globl close +.type close, %function; +close: +.globl ctermid +.type ctermid, %function; +ctermid: +.globl dup +.type dup, %function; +dup: +.globl dup2 +.type dup2, %function; +dup2: +.weak dup3 +.type dup3, %function; +dup3: +.globl faccessat +.type faccessat, %function; +faccessat: +.globl fchdir +.type fchdir, %function; +fchdir: +.globl fchown +.type fchown, %function; +fchown: +.globl fchownat +.type fchownat, %function; +fchownat: +.globl fdatasync +.type fdatasync, %function; +fdatasync: +.globl fsync +.type fsync, %function; +fsync: +.weak ftruncate64 +.type ftruncate64, %function; +ftruncate64: +.globl ftruncate +.type ftruncate, %function; +ftruncate: +.globl getcwd +.type getcwd, %function; +getcwd: +.globl getegid +.type getegid, %function; +getegid: +.globl geteuid +.type geteuid, %function; +geteuid: +.globl getgid +.type getgid, %function; +getgid: +.globl getgroups +.type getgroups, %function; +getgroups: +.globl gethostname +.type gethostname, %function; +gethostname: +.globl getlogin +.type getlogin, %function; +getlogin: +.globl getlogin_r +.type getlogin_r, %function; +getlogin_r: +.globl getpgid +.type getpgid, %function; +getpgid: +.globl getpgrp +.type getpgrp, %function; +getpgrp: +.globl getpid +.type getpid, %function; +getpid: +.globl getppid +.type getppid, %function; +getppid: +.globl getsid +.type getsid, %function; +getsid: +.globl getuid +.type getuid, %function; +getuid: +.globl isatty +.type isatty, %function; +isatty: +.globl lchown +.type lchown, %function; +lchown: +.globl link +.type link, %function; +link: +.globl linkat +.type linkat, %function; +linkat: +.weak lseek +.type lseek, %function; +lseek: +.weak lseek64 +.type lseek64, %function; +lseek64: +.globl nice +.type nice, %function; +nice: +.globl pause +.type pause, %function; +pause: +.globl pipe +.type pipe, %function; +pipe: +.globl pipe2 +.type pipe2, %function; +pipe2: +.globl posix_close +.type posix_close, %function; +posix_close: +.weak pread64 +.type pread64, %function; +pread64: +.globl pread +.type pread, %function; +pread: +.globl preadv +.type preadv, %function; +preadv: +.weak preadv64 +.type preadv64, %function; +preadv64: +.globl pwrite +.type pwrite, %function; +pwrite: +.weak pwrite64 +.type pwrite64, %function; +pwrite64: +.weak pwritev64 +.type pwritev64, %function; +pwritev64: +.globl pwritev +.type pwritev, %function; +pwritev: +.globl read +.type read, %function; +read: +.globl readlink +.type readlink, %function; +readlink: +.globl readlinkat +.type readlinkat, %function; +readlinkat: +.globl readv +.type readv, %function; +readv: +.globl renameat +.type renameat, %function; +renameat: +.globl rmdir +.type rmdir, %function; +rmdir: .globl setegid .type setegid, %function; setegid: -.globl setenv -.type setenv, %function; -setenv: .globl seteuid .type seteuid, %function; seteuid: -.globl setfsgid -.type setfsgid, %function; -setfsgid: -.globl setfsuid -.type setfsuid, %function; -setfsuid: .globl setgid .type setgid, %function; setgid: -.globl setgrent -.type setgrent, %function; -setgrent: -.globl setgroups -.type setgroups, %function; -setgroups: -.globl sethostent -.type sethostent, %function; -sethostent: -.globl sethostname -.type sethostname, %function; -sethostname: -.globl setitimer -.type setitimer, %function; -setitimer: -.globl setjmp -.type setjmp, %function; -setjmp: -.globl setkey -.type setkey, %function; -setkey: -.globl setlinebuf -.type setlinebuf, %function; -setlinebuf: -.globl setlocale -.type setlocale, %function; -setlocale: -.globl setlogmask -.type setlogmask, %function; -setlogmask: -.globl setmntent -.type setmntent, %function; -setmntent: -.weak setnetent -.type setnetent, %function; -setnetent: -.globl setns -.type setns, %function; -setns: .globl setpgid .type setpgid, %function; setpgid: .globl setpgrp .type setpgrp, %function; setpgrp: -.globl setpriority -.type setpriority, %function; -setpriority: -.globl setprotoent -.type setprotoent, %function; -setprotoent: -.globl setpwent -.type setpwent, %function; -setpwent: .globl setregid .type setregid, %function; setregid: @@ -4066,426 +4969,15 @@ setresuid: .globl setreuid .type setreuid, %function; setreuid: -.globl setrlimit -.type setrlimit, %function; -setrlimit: -.weak setrlimit64 -.type setrlimit64, %function; -setrlimit64: -.globl setservent -.type setservent, %function; -setservent: .globl setsid .type setsid, %function; setsid: -.globl setsockopt -.type setsockopt, %function; -setsockopt: -.globl setspent -.type setspent, %function; -setspent: -.globl setstate -.type setstate, %function; -setstate: -.globl settimeofday -.type settimeofday, %function; -settimeofday: .globl setuid .type setuid, %function; setuid: -.globl setusershell -.type setusershell, %function; -setusershell: -.weak setutent -.type setutent, %function; -setutent: -.globl setutxent -.type setutxent, %function; -setutxent: -.globl setvbuf -.type setvbuf, %function; -setvbuf: -.globl setxattr -.type setxattr, %function; -setxattr: -.globl shm_open -.type shm_open, %function; -shm_open: -.globl shm_unlink -.type shm_unlink, %function; -shm_unlink: -.globl shmat -.type shmat, %function; -shmat: -.globl shmctl -.type shmctl, %function; -shmctl: -.globl shmdt -.type shmdt, %function; -shmdt: -.globl shmget -.type shmget, %function; -shmget: -.globl shutdown -.type shutdown, %function; -shutdown: -.weak sigaction -.type sigaction, %function; -sigaction: -.globl sigaddset -.type sigaddset, %function; -sigaddset: -.globl sigaltstack -.type sigaltstack, %function; -sigaltstack: -.globl sigandset -.type sigandset, %function; -sigandset: -.globl sigdelset -.type sigdelset, %function; -sigdelset: -.globl sigemptyset -.type sigemptyset, %function; -sigemptyset: -.globl sigfillset -.type sigfillset, %function; -sigfillset: -.globl sighold -.type sighold, %function; -sighold: -.globl sigignore -.type sigignore, %function; -sigignore: -.globl siginterrupt -.type siginterrupt, %function; -siginterrupt: -.globl sigisemptyset -.type sigisemptyset, %function; -sigisemptyset: -.globl sigismember -.type sigismember, %function; -sigismember: -.globl siglongjmp -.type siglongjmp, %function; -siglongjmp: -.globl signal -.type signal, %function; -signal: -.globl signalfd -.type signalfd, %function; -signalfd: -.globl significand -.type significand, %function; -significand: -.globl significandf -.type significandf, %function; -significandf: -.globl sigorset -.type sigorset, %function; -sigorset: -.globl sigpause -.type sigpause, %function; -sigpause: -.globl sigpending -.type sigpending, %function; -sigpending: -.globl sigprocmask -.type sigprocmask, %function; -sigprocmask: -.globl sigqueue -.type sigqueue, %function; -sigqueue: -.globl sigrelse -.type sigrelse, %function; -sigrelse: -.globl sigset -.type sigset, %function; -sigset: -.globl sigsetjmp -.type sigsetjmp, %function; -sigsetjmp: -.globl sigsuspend -.type sigsuspend, %function; -sigsuspend: -.globl sigtimedwait -.type sigtimedwait, %function; -sigtimedwait: -.globl sigwait -.type sigwait, %function; -sigwait: -.globl sigwaitinfo -.type sigwaitinfo, %function; -sigwaitinfo: -.globl sin -.type sin, %function; -sin: -.globl sincos -.type sincos, %function; -sincos: -.globl sincosf -.type sincosf, %function; -sincosf: -.globl sincosl -.type sincosl, %function; -sincosl: -.globl sinf -.type sinf, %function; -sinf: -.globl sinh -.type sinh, %function; -sinh: -.globl sinhf -.type sinhf, %function; -sinhf: -.globl sinhl -.type sinhl, %function; -sinhl: -.globl sinl -.type sinl, %function; -sinl: .globl sleep .type sleep, %function; sleep: -.globl snprintf -.type snprintf, %function; -snprintf: -.globl sockatmark -.type sockatmark, %function; -sockatmark: -.globl socket -.type socket, %function; -socket: -.globl socketpair -.type socketpair, %function; -socketpair: -.globl splice -.type splice, %function; -splice: -.globl sprintf -.type sprintf, %function; -sprintf: -.globl sqrt -.type sqrt, %function; -sqrt: -.globl sqrtf -.type sqrtf, %function; -sqrtf: -.globl sqrtl -.type sqrtl, %function; -sqrtl: -.globl srand -.type srand, %function; -srand: -.globl srand48 -.type srand48, %function; -srand48: -.globl srandom -.type srandom, %function; -srandom: -.globl sscanf -.type sscanf, %function; -sscanf: -.globl stat -.type stat, %function; -stat: -.weak stat64 -.type stat64, %function; -stat64: -.weak statfs -.type statfs, %function; -statfs: -.weak statfs64 -.type statfs64, %function; -statfs64: -.globl statvfs -.type statvfs, %function; -statvfs: -.weak statvfs64 -.type statvfs64, %function; -statvfs64: -.globl stime -.type stime, %function; -stime: -.weak stpcpy -.type stpcpy, %function; -stpcpy: -.weak stpncpy -.type stpncpy, %function; -stpncpy: -.globl strcasecmp -.type strcasecmp, %function; -strcasecmp: -.weak strcasecmp_l -.type strcasecmp_l, %function; -strcasecmp_l: -.globl strcasestr -.type strcasestr, %function; -strcasestr: -.globl strcat -.type strcat, %function; -strcat: -.globl strchr -.type strchr, %function; -strchr: -.weak strchrnul -.type strchrnul, %function; -strchrnul: -.globl strcmp -.type strcmp, %function; -strcmp: -.globl strcoll -.type strcoll, %function; -strcoll: -.weak strcoll_l -.type strcoll_l, %function; -strcoll_l: -.globl strcpy -.type strcpy, %function; -strcpy: -.globl strcspn -.type strcspn, %function; -strcspn: -.globl strdup -.type strdup, %function; -strdup: -.globl strerror -.type strerror, %function; -strerror: -.weak strerror_l -.type strerror_l, %function; -strerror_l: -.globl strerror_r -.type strerror_r, %function; -strerror_r: -.globl strfmon -.type strfmon, %function; -strfmon: -.globl strfmon_l -.type strfmon_l, %function; -strfmon_l: -.globl strftime -.type strftime, %function; -strftime: -.weak strftime_l -.type strftime_l, %function; -strftime_l: -.globl strlcat -.type strlcat, %function; -strlcat: -.globl strlcpy -.type strlcpy, %function; -strlcpy: -.globl strlen -.type strlen, %function; -strlen: -.globl strncasecmp -.type strncasecmp, %function; -strncasecmp: -.weak strncasecmp_l -.type strncasecmp_l, %function; -strncasecmp_l: -.globl strncat -.type strncat, %function; -strncat: -.globl strncmp -.type strncmp, %function; -strncmp: -.globl strncpy -.type strncpy, %function; -strncpy: -.globl strndup -.type strndup, %function; -strndup: -.globl strnlen -.type strnlen, %function; -strnlen: -.globl strpbrk -.type strpbrk, %function; -strpbrk: -.globl strptime -.type strptime, %function; -strptime: -.globl strrchr -.type strrchr, %function; -strrchr: -.globl strsep -.type strsep, %function; -strsep: -.globl strsignal -.type strsignal, %function; -strsignal: -.globl strspn -.type strspn, %function; -strspn: -.globl strstr -.type strstr, %function; -strstr: -.globl strtod -.type strtod, %function; -strtod: -.weak strtod_l -.type strtod_l, %function; -strtod_l: -.globl strtof -.type strtof, %function; -strtof: -.weak strtof_l -.type strtof_l, %function; -strtof_l: -.globl strtoimax -.type strtoimax, %function; -strtoimax: -.globl strtok -.type strtok, %function; -strtok: -.globl strtok_r -.type strtok_r, %function; -strtok_r: -.globl strtol -.type strtol, %function; -strtol: -.globl strtold -.type strtold, %function; -strtold: -.weak strtold_l -.type strtold_l, %function; -strtold_l: -.globl strtoll -.type strtoll, %function; -strtoll: -.globl strtoul -.type strtoul, %function; -strtoul: -.globl strtoull -.type strtoull, %function; -strtoull: -.globl strtoumax -.type strtoumax, %function; -strtoumax: -.globl strverscmp -.type strverscmp, %function; -strverscmp: -.globl strxfrm -.type strxfrm, %function; -strxfrm: -.weak strxfrm_l -.type strxfrm_l, %function; -strxfrm_l: -.globl swab -.type swab, %function; -swab: -.globl swapoff -.type swapoff, %function; -swapoff: -.globl swapon -.type swapon, %function; -swapon: -.globl swprintf -.type swprintf, %function; -swprintf: -.globl swscanf -.type swscanf, %function; -swscanf: .globl symlink .type symlink, %function; symlink: @@ -4495,618 +4987,419 @@ symlinkat: .globl sync .type sync, %function; sync: -.globl sync_file_range -.type sync_file_range, %function; -sync_file_range: -.globl syncfs -.type syncfs, %function; -syncfs: -.globl syscall -.type syscall, %function; -syscall: -.globl sysconf -.type sysconf, %function; -sysconf: -.weak sysinfo -.type sysinfo, %function; -sysinfo: -.globl syslog -.type syslog, %function; -syslog: -.globl system -.type system, %function; -system: -.globl tan -.type tan, %function; -tan: -.globl tanf -.type tanf, %function; -tanf: -.globl tanh -.type tanh, %function; -tanh: -.globl tanhf -.type tanhf, %function; -tanhf: -.globl tanhl -.type tanhl, %function; -tanhl: -.globl tanl -.type tanl, %function; -tanl: -.globl tcdrain -.type tcdrain, %function; -tcdrain: -.globl tcflow -.type tcflow, %function; -tcflow: -.globl tcflush -.type tcflush, %function; -tcflush: -.globl tcgetattr -.type tcgetattr, %function; -tcgetattr: .globl tcgetpgrp .type tcgetpgrp, %function; tcgetpgrp: -.globl tcgetsid -.type tcgetsid, %function; -tcgetsid: -.globl tcgetwinsize -.type tcgetwinsize, %function; -tcgetwinsize: -.globl tcsendbreak -.type tcsendbreak, %function; -tcsendbreak: -.globl tcsetattr -.type tcsetattr, %function; -tcsetattr: .globl tcsetpgrp .type tcsetpgrp, %function; tcsetpgrp: -.globl tcsetwinsize -.type tcsetwinsize, %function; -tcsetwinsize: -.globl tdelete -.type tdelete, %function; -tdelete: -.globl tdestroy -.type tdestroy, %function; -tdestroy: -.globl tee -.type tee, %function; -tee: -.globl telldir -.type telldir, %function; -telldir: -.globl tempnam -.type tempnam, %function; -tempnam: -.globl textdomain -.type textdomain, %function; -textdomain: -.globl tfind -.type tfind, %function; -tfind: -.globl tgamma -.type tgamma, %function; -tgamma: -.globl tgammaf -.type tgammaf, %function; -tgammaf: -.globl tgammal -.type tgammal, %function; -tgammal: -.globl thrd_create -.type thrd_create, %function; -thrd_create: -.weak thrd_current -.type thrd_current, %function; -thrd_current: -.weak thrd_detach -.type thrd_detach, %function; -thrd_detach: -.weak thrd_equal -.type thrd_equal, %function; -thrd_equal: -.globl thrd_exit -.type thrd_exit, %function; -thrd_exit: -.globl thrd_join -.type thrd_join, %function; -thrd_join: -.globl thrd_sleep -.type thrd_sleep, %function; -thrd_sleep: -.globl thrd_yield -.type thrd_yield, %function; -thrd_yield: -.globl time -.type time, %function; -time: -.globl timegm -.type timegm, %function; -timegm: -.globl timer_create -.type timer_create, %function; -timer_create: -.globl timer_delete -.type timer_delete, %function; -timer_delete: -.globl timer_getoverrun -.type timer_getoverrun, %function; -timer_getoverrun: -.globl timer_gettime -.type timer_gettime, %function; -timer_gettime: -.globl timer_settime -.type timer_settime, %function; -timer_settime: -.globl timerfd_create -.type timerfd_create, %function; -timerfd_create: -.globl timerfd_gettime -.type timerfd_gettime, %function; -timerfd_gettime: -.globl timerfd_settime -.type timerfd_settime, %function; -timerfd_settime: -.globl times -.type times, %function; -times: -.globl timespec_get -.type timespec_get, %function; -timespec_get: -.globl tmpfile -.type tmpfile, %function; -tmpfile: -.weak tmpfile64 -.type tmpfile64, %function; -tmpfile64: -.globl tmpnam -.type tmpnam, %function; -tmpnam: -.globl toascii -.type toascii, %function; -toascii: -.globl tolower -.type tolower, %function; -tolower: -.weak tolower_l -.type tolower_l, %function; -tolower_l: -.globl toupper -.type toupper, %function; -toupper: -.weak toupper_l -.type toupper_l, %function; -toupper_l: -.globl towctrans -.type towctrans, %function; -towctrans: -.weak towctrans_l -.type towctrans_l, %function; -towctrans_l: -.globl towlower -.type towlower, %function; -towlower: -.weak towlower_l -.type towlower_l, %function; -towlower_l: -.globl towupper -.type towupper, %function; -towupper: -.weak towupper_l -.type towupper_l, %function; -towupper_l: -.globl trunc -.type trunc, %function; -trunc: -.globl truncate -.type truncate, %function; -truncate: .weak truncate64 .type truncate64, %function; truncate64: -.globl truncf -.type truncf, %function; -truncf: -.globl truncl -.type truncl, %function; -truncl: -.globl tsearch -.type tsearch, %function; -tsearch: -.globl tss_create -.type tss_create, %function; -tss_create: -.globl tss_delete -.type tss_delete, %function; -tss_delete: -.weak tss_get -.type tss_get, %function; -tss_get: -.globl tss_set -.type tss_set, %function; -tss_set: +.globl truncate +.type truncate, %function; +truncate: .globl ttyname .type ttyname, %function; ttyname: .globl ttyname_r .type ttyname_r, %function; ttyname_r: -.globl twalk -.type twalk, %function; -twalk: -.weak tzset -.type tzset, %function; -tzset: .globl ualarm .type ualarm, %function; ualarm: -.globl ulckpwdf -.type ulckpwdf, %function; -ulckpwdf: -.globl ulimit -.type ulimit, %function; -ulimit: -.globl umask -.type umask, %function; -umask: -.globl umount -.type umount, %function; -umount: -.globl umount2 -.type umount2, %function; -umount2: -.globl uname -.type uname, %function; -uname: -.globl ungetc -.type ungetc, %function; -ungetc: -.globl ungetwc -.type ungetwc, %function; -ungetwc: .globl unlink .type unlink, %function; unlink: .globl unlinkat .type unlinkat, %function; unlinkat: -.globl unlockpt -.type unlockpt, %function; -unlockpt: -.globl unsetenv -.type unsetenv, %function; -unsetenv: -.globl unshare -.type unshare, %function; -unshare: -.weak updwtmp -.type updwtmp, %function; -updwtmp: -.globl updwtmpx -.type updwtmpx, %function; -updwtmpx: -.weak uselocale -.type uselocale, %function; -uselocale: .globl usleep .type usleep, %function; usleep: -.globl utime -.type utime, %function; -utime: -.globl utimensat -.type utimensat, %function; -utimensat: -.globl utimes -.type utimes, %function; -utimes: -.weak utmpname -.type utmpname, %function; -utmpname: -.weak utmpxname -.type utmpxname, %function; -utmpxname: -.globl valloc -.type valloc, %function; -valloc: -.globl vasprintf -.type vasprintf, %function; -vasprintf: -.globl vdprintf -.type vdprintf, %function; -vdprintf: -.globl verr -.type verr, %function; -verr: -.globl verrx -.type verrx, %function; -verrx: -.globl versionsort -.type versionsort, %function; -versionsort: -.weak versionsort64 -.type versionsort64, %function; -versionsort64: -.globl vfork -.type vfork, %function; -vfork: -.globl vfprintf -.type vfprintf, %function; -vfprintf: -.globl vfscanf -.type vfscanf, %function; -vfscanf: -.globl vfwprintf -.type vfwprintf, %function; -vfwprintf: -.globl vfwscanf -.type vfwscanf, %function; -vfwscanf: -.globl vhangup -.type vhangup, %function; -vhangup: -.globl vmsplice -.type vmsplice, %function; -vmsplice: -.globl vprintf -.type vprintf, %function; -vprintf: -.globl vscanf -.type vscanf, %function; -vscanf: -.globl vsnprintf -.type vsnprintf, %function; -vsnprintf: -.globl vsprintf -.type vsprintf, %function; -vsprintf: -.globl vsscanf -.type vsscanf, %function; -vsscanf: -.globl vswprintf -.type vswprintf, %function; -vswprintf: -.globl vswscanf -.type vswscanf, %function; -vswscanf: -.weak vsyslog -.type vsyslog, %function; -vsyslog: -.globl vwarn -.type vwarn, %function; -vwarn: -.globl vwarnx -.type vwarnx, %function; -vwarnx: -.globl vwprintf -.type vwprintf, %function; -vwprintf: -.globl vwscanf -.type vwscanf, %function; -vwscanf: -.globl wait -.type wait, %function; -wait: -.globl wait3 -.type wait3, %function; -wait3: -.globl wait4 -.type wait4, %function; -wait4: -.globl waitid -.type waitid, %function; -waitid: -.globl waitpid -.type waitpid, %function; -waitpid: -.globl warn -.type warn, %function; -warn: -.globl warnx -.type warnx, %function; -warnx: -.globl wcpcpy -.type wcpcpy, %function; -wcpcpy: -.globl wcpncpy -.type wcpncpy, %function; -wcpncpy: -.globl wcrtomb -.type wcrtomb, %function; -wcrtomb: -.globl wcscasecmp -.type wcscasecmp, %function; -wcscasecmp: -.globl wcscasecmp_l -.type wcscasecmp_l, %function; -wcscasecmp_l: -.globl wcscat -.type wcscat, %function; -wcscat: -.globl wcschr -.type wcschr, %function; -wcschr: -.globl wcscmp -.type wcscmp, %function; -wcscmp: -.globl wcscoll -.type wcscoll, %function; -wcscoll: -.weak wcscoll_l -.type wcscoll_l, %function; -wcscoll_l: -.globl wcscpy -.type wcscpy, %function; -wcscpy: -.globl wcscspn -.type wcscspn, %function; -wcscspn: -.globl wcsdup -.type wcsdup, %function; -wcsdup: -.globl wcsftime -.type wcsftime, %function; -wcsftime: -.weak wcsftime_l -.type wcsftime_l, %function; -wcsftime_l: -.globl wcslen -.type wcslen, %function; -wcslen: -.globl wcsncasecmp -.type wcsncasecmp, %function; -wcsncasecmp: -.globl wcsncasecmp_l -.type wcsncasecmp_l, %function; -wcsncasecmp_l: -.globl wcsncat -.type wcsncat, %function; -wcsncat: -.globl wcsncmp -.type wcsncmp, %function; -wcsncmp: -.globl wcsncpy -.type wcsncpy, %function; -wcsncpy: -.globl wcsnlen -.type wcsnlen, %function; -wcsnlen: -.globl wcsnrtombs -.type wcsnrtombs, %function; -wcsnrtombs: -.globl wcspbrk -.type wcspbrk, %function; -wcspbrk: -.globl wcsrchr -.type wcsrchr, %function; -wcsrchr: -.globl wcsrtombs -.type wcsrtombs, %function; -wcsrtombs: -.globl wcsspn -.type wcsspn, %function; -wcsspn: -.globl wcsstr -.type wcsstr, %function; -wcsstr: -.globl wcstod -.type wcstod, %function; -wcstod: -.globl wcstof -.type wcstof, %function; -wcstof: -.globl wcstoimax -.type wcstoimax, %function; -wcstoimax: -.globl wcstok -.type wcstok, %function; -wcstok: -.globl wcstol -.type wcstol, %function; -wcstol: -.globl wcstold -.type wcstold, %function; -wcstold: -.globl wcstoll -.type wcstoll, %function; -wcstoll: -.globl wcstombs -.type wcstombs, %function; -wcstombs: -.globl wcstoul -.type wcstoul, %function; -wcstoul: -.globl wcstoull -.type wcstoull, %function; -wcstoull: -.globl wcstoumax -.type wcstoumax, %function; -wcstoumax: -.globl wcswcs -.type wcswcs, %function; -wcswcs: -.globl wcswidth -.type wcswidth, %function; -wcswidth: -.globl wcsxfrm -.type wcsxfrm, %function; -wcsxfrm: -.weak wcsxfrm_l -.type wcsxfrm_l, %function; -wcsxfrm_l: -.globl wctob -.type wctob, %function; -wctob: -.globl wctomb -.type wctomb, %function; -wctomb: -.globl wctrans -.type wctrans, %function; -wctrans: -.weak wctrans_l -.type wctrans_l, %function; -wctrans_l: -.globl wctype -.type wctype, %function; -wctype: -.weak wctype_l -.type wctype_l, %function; -wctype_l: -.globl wcwidth -.type wcwidth, %function; -wcwidth: -.globl wmemchr -.type wmemchr, %function; -wmemchr: -.globl wmemcmp -.type wmemcmp, %function; -wmemcmp: -.globl wmemcpy -.type wmemcpy, %function; -wmemcpy: -.globl wmemmove -.type wmemmove, %function; -wmemmove: -.globl wmemset -.type wmemset, %function; -wmemset: -.globl wordexp -.type wordexp, %function; -wordexp: -.globl wordfree -.type wordfree, %function; -wordfree: -.globl wprintf -.type wprintf, %function; -wprintf: .globl write .type write, %function; write: .globl writev .type writev, %function; writev: -.globl wscanf -.type wscanf, %function; -wscanf: -.globl y0 -.type y0, %function; -y0: -.globl y0f -.type y0f, %function; -y0f: -.globl y1 -.type y1, %function; -y1: -.globl y1f -.type y1f, %function; -y1f: -.globl yn -.type yn, %function; -yn: -.globl ynf -.type ynf, %function; -ynf: +.globl _dlstart +.type _dlstart, %function; +_dlstart: +.weak _dl_debug_state +.type _dl_debug_state, %function; +_dl_debug_state: +.globl __dls2b +.type __dls2b, %function; +__dls2b: +.globl __dls3 +.type __dls3, %function; +__dls3: +.globl dlopen +.type dlopen, %function; +dlopen: +.globl dladdr +.type dladdr, %function; +dladdr: +.globl dl_iterate_phdr +.type dl_iterate_phdr, %function; +dl_iterate_phdr: +.data.rel.ro +.globl stderr +.type stderr, %object; +.size stderr, PTR_SIZE_BYTES +stderr: +.globl stdin +.type stdin, %object; +.size stdin, PTR_SIZE_BYTES +stdin: +.globl stdout +.type stdout, %object; +.size stdout, PTR_SIZE_BYTES +stdout: +.data +.globl optind +.type optind, %object; +.size optind, 4 +optind: +.globl opterr +.type opterr, %object; +.size opterr, 4 +opterr: +.globl _dl_debug_addr +.type _dl_debug_addr, %object; +.size _dl_debug_addr, PTR_SIZE_BYTES +_dl_debug_addr: +.bss +.weak ___environ +.type ___environ, %object; +.size ___environ, PTR_SIZE_BYTES +___environ: +.weak _environ +.type _environ, %object; +.size _environ, PTR_SIZE_BYTES +_environ: +.globl __environ +.type __environ, %object; +.size __environ, PTR_SIZE_BYTES +__environ: +.weak environ +.type environ, %object; +.size environ, PTR_SIZE_BYTES +environ: +.globl __stack_chk_guard +.type __stack_chk_guard, %object; +.size __stack_chk_guard, PTR_SIZE_BYTES +__stack_chk_guard: +.weak program_invocation_short_name +.type program_invocation_short_name, %object; +.size program_invocation_short_name, PTR_SIZE_BYTES +program_invocation_short_name: +.globl __progname +.type __progname, %object; +.size __progname, PTR_SIZE_BYTES +__progname: +.weak program_invocation_name +.type program_invocation_name, %object; +.size program_invocation_name, PTR_SIZE_BYTES +program_invocation_name: +.globl __progname_full +.type __progname_full, %object; +.size __progname_full, PTR_SIZE_BYTES +__progname_full: +.globl __signgam +.type __signgam, %object; +.size __signgam, 4 +__signgam: +.weak signgam +.type signgam, %object; +.size signgam, 4 +signgam: +.globl __optreset +.type __optreset, %object; +.size __optreset, 4 +__optreset: +.weak optreset +.type optreset, %object; +.size optreset, 4 +optreset: +.globl __optpos +.type __optpos, %object; +.size __optpos, 4 +__optpos: +.globl optarg +.type optarg, %object; +.size optarg, PTR_SIZE_BYTES +optarg: +.globl optopt +.type optopt, %object; +.size optopt, 4 +optopt: +.globl h_errno +.type h_errno, %object; +.size h_errno, 4 +h_errno: +.globl __timezone +.type __timezone, %object; +.size __timezone, PTR_SIZE_BYTES +__timezone: +.weak timezone +.type timezone, %object; +.size timezone, PTR_SIZE_BYTES +timezone: +.globl __daylight +.type __daylight, %object; +.size __daylight, 4 +__daylight: +.weak daylight +.type daylight, %object; +.size daylight, 4 +daylight: +.globl __tzname +.type __tzname, %object; +.size __tzname, PTR2_SIZE_BYTES +__tzname: +.weak tzname +.type tzname, %object; +.size tzname, PTR2_SIZE_BYTES +tzname: +.globl getdate_err +.type getdate_err, %object; +.size getdate_err, 4 +getdate_err: +.text +#ifdef PTR32 +.globl __aio_suspend_time64 +.type __aio_suspend_time64, %function; +__aio_suspend_time64: +.globl __semtimedop_time64 +.type __semtimedop_time64, %function; +__semtimedop_time64: +.globl __dlsym_time64 +.type __dlsym_time64, %function; +__dlsym_time64: +.globl __futimes_time64 +.type __futimes_time64, %function; +__futimes_time64: +.globl __lutimes_time64 +.type __lutimes_time64, %function; +__lutimes_time64: +.globl __adjtime64 +.type __adjtime64, %function; +__adjtime64: +.globl __adjtimex_time64 +.type __adjtimex_time64, %function; +__adjtimex_time64: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl _flush_cache +.type _flush_cache, %function; +_flush_cache: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.weak cacheflush +.type cacheflush, %function; +cacheflush: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl __cachectl +.type __cachectl, %function; +__cachectl: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.weak cachectl +.type cachectl, %function; +cachectl: +#endif +#ifdef PTR32 +.globl __clock_adjtime64 +.type __clock_adjtime64, %function; +__clock_adjtime64: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_aarch64) +.globl ioperm +.type ioperm, %function; +ioperm: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_aarch64) +.globl iopl +.type iopl, %function; +iopl: +#endif +#ifdef PTR32 +.globl __ppoll_time64 +.type __ppoll_time64, %function; +__ppoll_time64: +.globl __settimeofday_time64 +.type __settimeofday_time64, %function; +__settimeofday_time64: +.globl __stime64 +.type __stime64, %function; +__stime64: +.globl __timerfd_settime64 +.type __timerfd_settime64, %function; +__timerfd_settime64: +.globl __timerfd_gettime64 +.type __timerfd_gettime64, %function; +__timerfd_gettime64: +.globl __utimes_time64 +.type __utimes_time64, %function; +__utimes_time64: +.globl __wait3_time64 +.type __wait3_time64, %function; +__wait3_time64: +.globl __wait4_time64 +.type __wait4_time64, %function; +__wait4_time64: +.globl __getrusage_time64 +.type __getrusage_time64, %function; +__getrusage_time64: +.globl __mq_timedreceive_time64 +.type __mq_timedreceive_time64, %function; +__mq_timedreceive_time64: +.globl __mq_timedsend_time64 +.type __mq_timedsend_time64, %function; +__mq_timedsend_time64: +.globl __recvmmsg_time64 +.type __recvmmsg_time64, %function; +__recvmmsg_time64: +.globl __sched_rr_get_interval_time64 +.type __sched_rr_get_interval_time64, %function; +__sched_rr_get_interval_time64: +.globl __pselect_time64 +.type __pselect_time64, %function; +__pselect_time64: +.globl __select_time64 +.type __select_time64, %function; +__select_time64: +.globl __getitimer_time64 +.type __getitimer_time64, %function; +__getitimer_time64: +.globl __setitimer_time64 +.type __setitimer_time64, %function; +__setitimer_time64: +.globl __sigtimedwait_time64 +.type __sigtimedwait_time64, %function; +__sigtimedwait_time64: +.globl __fstat_time64 +.type __fstat_time64, %function; +__fstat_time64: +.globl __fstatat_time64 +.type __fstatat_time64, %function; +__fstatat_time64: +.globl __futimens_time64 +.type __futimens_time64, %function; +__futimens_time64: +.weak __futimesat_time64 +.type __futimesat_time64, %function; +__futimesat_time64: +.globl __lstat_time64 +.type __lstat_time64, %function; +__lstat_time64: +.globl __stat_time64 +.type __stat_time64, %function; +__stat_time64: +.globl __utimensat_time64 +.type __utimensat_time64, %function; +__utimensat_time64: +.globl __cnd_timedwait_time64 +.type __cnd_timedwait_time64, %function; +__cnd_timedwait_time64: +.globl __mtx_timedlock_time64 +.type __mtx_timedlock_time64, %function; +__mtx_timedlock_time64: +.weak __pthread_cond_timedwait_time64 +.type __pthread_cond_timedwait_time64, %function; +__pthread_cond_timedwait_time64: +.weak __pthread_timedjoin_np_time64 +.type __pthread_timedjoin_np_time64, %function; +__pthread_timedjoin_np_time64: +.weak __pthread_mutex_timedlock_time64 +.type __pthread_mutex_timedlock_time64, %function; +__pthread_mutex_timedlock_time64: +.weak __pthread_rwlock_timedrdlock_time64 +.type __pthread_rwlock_timedrdlock_time64, %function; +__pthread_rwlock_timedrdlock_time64: +.weak __pthread_rwlock_timedwrlock_time64 +.type __pthread_rwlock_timedwrlock_time64, %function; +__pthread_rwlock_timedwrlock_time64: +.globl __sem_timedwait_time64 +.type __sem_timedwait_time64, %function; +__sem_timedwait_time64: +.globl __thrd_sleep_time64 +.type __thrd_sleep_time64, %function; +__thrd_sleep_time64: +.globl __clock_getres_time64 +.type __clock_getres_time64, %function; +__clock_getres_time64: +.weak __clock_gettime64 +.type __clock_gettime64, %function; +__clock_gettime64: +.weak __clock_nanosleep_time64 +.type __clock_nanosleep_time64, %function; +__clock_nanosleep_time64: +.globl __clock_settime64 +.type __clock_settime64, %function; +__clock_settime64: +.globl __ctime64 +.type __ctime64, %function; +__ctime64: +.globl __ctime64_r +.type __ctime64_r, %function; +__ctime64_r: +.globl __difftime64 +.type __difftime64, %function; +__difftime64: +.globl __ftime64 +.type __ftime64, %function; +__ftime64: +.globl __gettimeofday_time64 +.type __gettimeofday_time64, %function; +__gettimeofday_time64: +.globl __gmtime64 +.type __gmtime64, %function; +__gmtime64: +.weak __gmtime64_r +.type __gmtime64_r, %function; +__gmtime64_r: +.globl __localtime64 +.type __localtime64, %function; +__localtime64: +.weak __localtime64_r +.type __localtime64_r, %function; +__localtime64_r: +.globl __mktime64 +.type __mktime64, %function; +__mktime64: +.globl __nanosleep_time64 +.type __nanosleep_time64, %function; +__nanosleep_time64: +.globl __time64 +.type __time64, %function; +__time64: +.globl __timegm_time64 +.type __timegm_time64, %function; +__timegm_time64: +.globl __timer_gettime64 +.type __timer_gettime64, %function; +__timer_gettime64: +.globl __timer_settime64 +.type __timer_settime64, %function; +__timer_settime64: +.globl __timespec_get_time64 +.type __timespec_get_time64, %function; +__timespec_get_time64: +.globl __utime64 +.type __utime64, %function; +__utime64: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl arch_prctl +.type arch_prctl, %function; +arch_prctl: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl ___tls_get_addr +.type ___tls_get_addr, %function; +___tls_get_addr: +#endif diff --git a/lib/std/elf.zig b/lib/std/elf.zig index 52d03c6c01..2d598d0495 100644 --- a/lib/std/elf.zig +++ b/lib/std/elf.zig @@ -1688,3 +1688,10 @@ pub const R_X86_64_GOTPCRELX = 41; /// Load from 32 bit signed PC relative offset to GOT entry with REX prefix, relaxable pub const R_X86_64_REX_GOTPCRELX = 42; pub const R_X86_64_NUM = 43; + +pub const STV = enum(u2) { + DEFAULT = 0, + INTERNAL = 1, + HIDDEN = 2, + PROTECTED = 3, +}; diff --git a/src/musl.zig b/src/musl.zig index cad6246c98..d15d691a9c 100644 --- a/src/musl.zig +++ b/src/musl.zig @@ -191,11 +191,20 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { return comp.build_crt_file("c", .Lib, c_source_files.items); }, .libc_so => { + const target = comp.getTarget(); + const arch_define = try std.fmt.allocPrint(arena, "-DARCH_{s}", .{ + @tagName(target.cpu.arch), + }); + const clang_argv: []const []const u8 = if (target.cpu.arch.ptrBitWidth() == 64) + &[_][]const u8{ "-DPTR64", arch_define } + else + &[_][]const u8{arch_define}; + const sub_compilation = try Compilation.create(comp.gpa, .{ .local_cache_directory = comp.global_cache_directory, .global_cache_directory = comp.global_cache_directory, .zig_lib_directory = comp.zig_lib_directory, - .target = comp.getTarget(), + .target = target, .root_name = "c", .main_pkg = null, .output_mode = .Lib, @@ -223,8 +232,9 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { .verbose_llvm_cpu_features = comp.verbose_llvm_cpu_features, .clang_passthrough_mode = comp.clang_passthrough_mode, .c_source_files = &[_]Compilation.CSourceFile{ - .{ .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "musl", "libc.s" }) }, + .{ .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "musl", "libc.S" }) }, }, + .clang_argv = clang_argv, .skip_linker_dependencies = true, .soname = "libc.so", }); diff --git a/tools/gen_stubs.zig b/tools/gen_stubs.zig index 56ea7715a7..64889a1e72 100644 --- a/tools/gen_stubs.zig +++ b/tools/gen_stubs.zig @@ -1,120 +1,758 @@ -const std = @import("std"); +//! Example usage: +//! ./gen_stubs /path/to/musl/build-all >libc.S +//! +//! The directory 'build-all' is expected to contain these subdirectories: +//! arm i386 mips mips64 powerpc powerpc64 riscv64 x86_64 +//! +//! ...each with 'lib/libc.so' inside of them. +//! +//! When building the resulting libc.S file, these defines are required: +//! * `-DPTR64`: when the architecture is 64-bit +//! * One of the following, corresponding to the CPU architecture: +//! - `-DARCH_riscv64` +//! - `-DARCH_mips` +//! - `-DARCH_i386` +//! - `-DARCH_x86_64` +//! - `-DARCH_powerpc` +//! - `-DARCH_powerpc64` +//! - `-DARCH_aarch64` + +// TODO: pick the best index to put them into instead of at the end +// - e.g. find a common previous symbol and put it after that one +// - they definitely need to go into the correct section +const std = @import("std"); +const builtin = std.builtin; const mem = std.mem; +const log = std.log; +const elf = std.elf; +const native_endian = @import("builtin").target.cpu.arch.endian(); + +const arches: [7]std.Target.Cpu.Arch = blk: { + var result: [7]std.Target.Cpu.Arch = undefined; + for (.{ .riscv64, .mips, .i386, .x86_64, .powerpc, .powerpc64, .aarch64 }) |arch| { + result[archIndex(arch)] = arch; + } + break :blk result; +}; + +const MultiSym = struct { + size: [arches.len]u64, + present: [arches.len]bool, + binding: [arches.len]u4, + section: u16, + ty: u4, + visib: elf.STV, + + fn allPresent(ms: MultiSym) bool { + for (arches) |_, i| { + if (!ms.present[i]) { + return false; + } + } + return true; + } + + fn is32Only(ms: MultiSym) bool { + return ms.present[archIndex(.riscv64)] == false and + ms.present[archIndex(.mips)] == true and + ms.present[archIndex(.i386)] == true and + ms.present[archIndex(.x86_64)] == false and + ms.present[archIndex(.powerpc)] == true and + ms.present[archIndex(.powerpc64)] == false and + ms.present[archIndex(.aarch64)] == false; + } + + fn commonSize(ms: MultiSym) ?u64 { + var size: ?u64 = null; + for (arches) |_, i| { + if (!ms.present[i]) continue; + if (size) |s| { + if (ms.size[i] != s) { + return null; + } + } else { + size = ms.size[i]; + } + } + return size.?; + } + + fn commonBinding(ms: MultiSym) ?u4 { + var binding: ?u4 = null; + for (arches) |_, i| { + if (!ms.present[i]) continue; + if (binding) |b| { + if (ms.binding[i] != b) { + return null; + } + } else { + binding = ms.binding[i]; + } + } + return binding.?; + } + + fn isPtrSize(ms: MultiSym) bool { + const map = .{ + .{ .riscv64, 8 }, + .{ .mips, 4 }, + .{ .i386, 4 }, + .{ .x86_64, 8 }, + .{ .powerpc, 4 }, + .{ .powerpc64, 8 }, + .{ .aarch64, 8 }, + }; + inline for (map) |item| { + const arch = item[0]; + const size = item[1]; + const arch_index = archIndex(arch); + if (ms.present[arch_index] and ms.size[arch_index] != size) { + return false; + } + } + return true; + } -const Symbol = struct { - name: []const u8, - section: []const u8, - kind: enum { - global, - weak, - }, - type: enum { - none, - function, - object, - }, - protected: bool, + fn isPtr2Size(ms: MultiSym) bool { + const map = .{ + .{ .riscv64, 16 }, + .{ .mips, 8 }, + .{ .i386, 8 }, + .{ .x86_64, 16 }, + .{ .powerpc, 8 }, + .{ .powerpc64, 16 }, + .{ .aarch64, 16 }, + }; + inline for (map) |item| { + const arch = item[0]; + const size = item[1]; + const arch_index = archIndex(arch); + if (ms.present[arch_index] and ms.size[arch_index] != size) { + return false; + } + } + return true; + } + + fn isWeak64(ms: MultiSym) bool { + const map = .{ + .{ .riscv64, 2 }, + .{ .mips, 1 }, + .{ .i386, 1 }, + .{ .x86_64, 2 }, + .{ .powerpc, 1 }, + .{ .powerpc64, 2 }, + .{ .aarch64, 2 }, + }; + inline for (map) |item| { + const arch = item[0]; + const binding = item[1]; + const arch_index = archIndex(arch); + if (ms.present[arch_index] and ms.binding[arch_index] != binding) { + return false; + } + } + return true; + } +}; + +const Parse = struct { + arena: mem.Allocator, + sym_table: *std.StringArrayHashMap(MultiSym), + sections: *std.StringArrayHashMap(void), + blacklist: std.StringArrayHashMap(void), + elf_bytes: []align(@alignOf(elf.Elf64_Ehdr)) u8, + header: elf.Header, + arch: std.Target.Cpu.Arch, }; -// Example usage: -// objdump --dynamic-syms /path/to/libc.so | ./gen_stubs > lib/libc/musl/libc.s pub fn main() !void { - const stdin = std.io.getStdIn().reader(); - const stdout = std.io.getStdOut().writer(); + var arena_instance = std.heap.ArenaAllocator.init(std.heap.page_allocator); + defer arena_instance.deinit(); + const arena = arena_instance.allocator(); + + const args = try std.process.argsAlloc(arena); + const build_all_path = args[1]; - var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); - defer arena.deinit(); - const ally = arena.allocator(); + var build_all_dir = try std.fs.cwd().openDir(build_all_path, .{}); - var symbols = std.ArrayList(Symbol).init(ally); - var sections = std.ArrayList([]const u8).init(ally); + var sym_table = std.StringArrayHashMap(MultiSym).init(arena); + var sections = std.StringArrayHashMap(void).init(arena); + var blacklist = std.StringArrayHashMap(void).init(arena); - // This is many times larger than any line objdump produces should ever be - var buf: [4096]u8 = undefined; - var line_number: usize = 0; + try blacklist.ensureUnusedCapacity(blacklisted_symbols.len); + for (blacklisted_symbols) |name| { + blacklist.putAssumeCapacityNoClobber(name, {}); + } - // Sample input line: - // 00000000000241b0 g DF .text 000000000000001b copy_file_range - while (try stdin.readUntilDelimiterOrEof(&buf, '\n')) |line| { - line_number += 1; + for (arches) |arch| { + const libc_so_path = try std.fmt.allocPrint(arena, "{s}/lib/libc.so", .{@tagName(arch)}); - // the lines we want all start with a 16 digit hex value - if (line.len < 16) continue; - _ = std.fmt.parseInt(u64, line[0..16], 16) catch continue; + // Read the ELF header. + const elf_bytes = try build_all_dir.readFileAllocOptions( + arena, + libc_so_path, + 100 * 1024 * 1024, + 1 * 1024 * 1024, + @alignOf(elf.Elf64_Ehdr), + null, + ); + const header = try elf.Header.parse(elf_bytes[0..@sizeOf(elf.Elf64_Ehdr)]); - // Ignore non-dynamic symbols - if (line[22] != 'D') continue; + const parse: Parse = .{ + .arena = arena, + .sym_table = &sym_table, + .sections = §ions, + .blacklist = blacklist, + .elf_bytes = elf_bytes, + .header = header, + .arch = arch, + }; - const section = line[25 .. 25 + mem.indexOfAny(u8, line[25..], &std.ascii.spaces).?]; + switch (header.is_64) { + true => switch (header.endian) { + .Big => try parseElf(parse, true, .Big), + .Little => try parseElf(parse, true, .Little), + }, + false => switch (header.endian) { + .Big => try parseElf(parse, false, .Big), + .Little => try parseElf(parse, false, .Little), + }, + } + } - // the last whitespace-separated column is the symbol name - const name = line[1 + mem.lastIndexOfAny(u8, line, &std.ascii.spaces).? ..]; + const stdout = std.io.getStdOut().writer(); + try stdout.writeAll( + \\#ifdef PTR64 + \\#define WEAK64 .weak + \\#define PTR_SIZE_BYTES 8 + \\#define PTR2_SIZE_BYTES 16 + \\#else + \\#define WEAK64 .globl + \\#define PTR_SIZE_BYTES 4 + \\#define PTR2_SIZE_BYTES 8 + \\#endif + \\ + ); - const symbol = Symbol{ - .name = try ally.dupe(u8, name), - .section = try ally.dupe(u8, section), + var prev_section: u16 = std.math.maxInt(u16); + var prev_pp_state: enum { none, ptr32, special } = .none; + for (sym_table.values()) |multi_sym, sym_index| { + const name = sym_table.keys()[sym_index]; - .kind = if (line[17] == 'g' and line[18] == ' ') - .global - else if (line[17] == ' ' and line[18] == 'w') - .weak - else - std.debug.panic("unexpected kind on line {d}:\n{s}", .{ line_number, line }), + if (multi_sym.section != prev_section) { + prev_section = multi_sym.section; + const sh_name = sections.keys()[multi_sym.section]; + try stdout.print("{s}\n", .{sh_name}); + } - .type = switch (line[23]) { - 'F' => .function, - 'O' => .object, - ' ' => .none, + if (multi_sym.allPresent()) { + switch (prev_pp_state) { + .none => {}, + .ptr32, .special => { + try stdout.writeAll("#endif\n"); + prev_pp_state = .none; + }, + } + } else if (multi_sym.is32Only()) { + switch (prev_pp_state) { + .none => { + try stdout.writeAll("#ifdef PTR32\n"); + prev_pp_state = .ptr32; + }, + .special => { + try stdout.writeAll("#endif\n#ifdef PTR32\n"); + prev_pp_state = .ptr32; + }, + .ptr32 => {}, + } + } else { + switch (prev_pp_state) { + .none => {}, + .special, .ptr32 => { + try stdout.writeAll("#endif\n"); + }, + } + prev_pp_state = .special; + + var first = true; + try stdout.writeAll("#if "); + + for (arches) |arch, i| { + if (multi_sym.present[i]) continue; + + if (!first) try stdout.writeAll(" && "); + first = false; + try stdout.print("!defined(ARCH_{s})", .{@tagName(arch)}); + } + + try stdout.writeAll("\n"); + } + + if (multi_sym.commonBinding()) |binding| { + switch (binding) { + elf.STB_GLOBAL => { + try stdout.print(".globl {s}\n", .{name}); + }, + elf.STB_WEAK => { + try stdout.print(".weak {s}\n", .{name}); + }, else => unreachable, + } + } else if (multi_sym.isWeak64()) { + try stdout.print("WEAK64 {s}\n", .{name}); + } else { + for (arches) |arch, i| { + log.info("symbol '{s}' binding on {s}: {d}", .{ + name, @tagName(arch), multi_sym.binding[i], + }); + } + } + + switch (multi_sym.ty) { + elf.STT_NOTYPE => {}, + elf.STT_FUNC => { + try stdout.print(".type {s}, %function;\n", .{name}); + // omitting the size is OK for functions }, + elf.STT_OBJECT => { + try stdout.print(".type {s}, %object;\n", .{name}); + if (multi_sym.commonSize()) |size| { + try stdout.print(".size {s}, {d}\n", .{ name, size }); + } else if (multi_sym.isPtrSize()) { + try stdout.print(".size {s}, PTR_SIZE_BYTES\n", .{name}); + } else if (multi_sym.isPtr2Size()) { + try stdout.print(".size {s}, PTR2_SIZE_BYTES\n", .{name}); + } else { + for (arches) |arch, i| { + log.info("symbol '{s}' size on {s}: {d}", .{ + name, @tagName(arch), multi_sym.size[i], + }); + } + //try stdout.print(".size {s}, {d}\n", .{ name, size }); + } + }, + else => unreachable, + } - .protected = mem.indexOf(u8, line, ".protected") != null, - }; + switch (multi_sym.visib) { + .DEFAULT => {}, + .PROTECTED => try stdout.print(".protected {s}\n", .{name}), + .INTERNAL, .HIDDEN => unreachable, + } - for (sections.items) |s| { - if (mem.eql(u8, s, symbol.section)) break; - } else { - try sections.append(symbol.section); + try stdout.print("{s}:\n", .{name}); + } + + switch (prev_pp_state) { + .none => {}, + .ptr32, .special => try stdout.writeAll("#endif\n"), + } +} + +fn parseElf(parse: Parse, comptime is_64: bool, comptime endian: builtin.Endian) !void { + const arena = parse.arena; + const elf_bytes = parse.elf_bytes; + const header = parse.header; + const Sym = if (is_64) elf.Elf64_Sym else elf.Elf32_Sym; + const S = struct { + fn endianSwap(x: anytype) @TypeOf(x) { + if (endian != native_endian) { + return @byteSwap(@TypeOf(x), x); + } else { + return x; + } + } + fn symbolAddrLessThan(_: void, lhs: Sym, rhs: Sym) bool { + return endianSwap(lhs.st_value) < endianSwap(rhs.st_value); } + }; + // A little helper to do endian swapping. + const s = S.endianSwap; + + // Obtain list of sections. + const Shdr = if (is_64) elf.Elf64_Shdr else elf.Elf32_Shdr; + const shdrs = mem.bytesAsSlice(Shdr, elf_bytes[header.shoff..])[0..header.shnum]; - try symbols.append(symbol); + // Obtain the section header string table. + const shstrtab_offset = s(shdrs[header.shstrndx].sh_offset); + log.debug("shstrtab is at offset {d}", .{shstrtab_offset}); + const shstrtab = elf_bytes[shstrtab_offset..]; + + // Maps this ELF file's section header index to the multi arch section ArrayHashMap index. + const section_index_map = try arena.alloc(u16, shdrs.len); + + // Find the offset of the dynamic symbol table. + var dynsym_index: u16 = 0; + for (shdrs) |shdr, i| { + const sh_name = try arena.dupe(u8, mem.sliceTo(shstrtab[s(shdr.sh_name)..], 0)); + log.debug("found section: {s}", .{sh_name}); + if (mem.eql(u8, sh_name, ".dynsym")) { + dynsym_index = @intCast(u16, i); + } + const gop = try parse.sections.getOrPut(sh_name); + section_index_map[i] = @intCast(u16, gop.index); } + if (dynsym_index == 0) @panic("did not find the .dynsym section"); + + log.debug("found .dynsym section at index {d}", .{dynsym_index}); - std.sort.sort(Symbol, symbols.items, {}, cmpSymbols); - std.sort.sort([]const u8, sections.items, {}, alphabetical); + // Read the dynamic symbols into a list. + const dyn_syms_off = s(shdrs[dynsym_index].sh_offset); + const dyn_syms_size = s(shdrs[dynsym_index].sh_size); + const dyn_syms = mem.bytesAsSlice(Sym, elf_bytes[dyn_syms_off..][0..dyn_syms_size]); - for (sections.items) |section| { - try stdout.print("{s}\n", .{section}); + const dynstr_offset = s(shdrs[s(shdrs[dynsym_index].sh_link)].sh_offset); + const dynstr = elf_bytes[dynstr_offset..]; - for (symbols.items) |symbol| { - if (!mem.eql(u8, symbol.section, section)) continue; + // Sort the list by address, ascending. + std.sort.sort(Sym, dyn_syms, {}, S.symbolAddrLessThan); - switch (symbol.kind) { - .global => try stdout.print(".globl {s}\n", .{symbol.name}), - .weak => try stdout.print(".weak {s}\n", .{symbol.name}), + for (dyn_syms) |sym| { + const this_section = s(sym.st_shndx); + const name = try arena.dupe(u8, mem.sliceTo(dynstr[s(sym.st_name)..], 0)); + const ty = @truncate(u4, sym.st_info); + const binding = @truncate(u4, sym.st_info >> 4); + const visib = @intToEnum(elf.STV, @truncate(u2, sym.st_other)); + const size = s(sym.st_size); + + if (parse.blacklist.contains(name)) continue; + + if (size == 0) { + log.warn("{s}: symbol '{s}' has size 0", .{ @tagName(parse.arch), name }); + } + + switch (binding) { + elf.STB_GLOBAL, elf.STB_WEAK => {}, + else => { + log.debug("{s}: skipping '{s}' due to it having binding '{d}'", .{ + @tagName(parse.arch), name, binding, + }); + continue; + }, + } + + switch (ty) { + elf.STT_NOTYPE, elf.STT_FUNC, elf.STT_OBJECT => {}, + else => { + log.debug("{s}: skipping '{s}' due to it having type '{d}'", .{ + @tagName(parse.arch), name, ty, + }); + continue; + }, + } + + switch (visib) { + .DEFAULT, .PROTECTED => {}, + .INTERNAL, .HIDDEN => { + log.debug("{s}: skipping '{s}' due to it having visibility '{s}'", .{ + @tagName(parse.arch), name, @tagName(visib), + }); + continue; + }, + } + + const gop = try parse.sym_table.getOrPut(name); + if (gop.found_existing) { + if (gop.value_ptr.section != section_index_map[this_section]) { + const sh_name = mem.sliceTo(shstrtab[s(shdrs[this_section].sh_name)..], 0); + fatal("symbol '{s}' in arch {s} is in section {s} but in arch {s} is in section {s}", .{ + name, + @tagName(parse.arch), + sh_name, + archSetName(gop.value_ptr.present), + parse.sections.keys()[gop.value_ptr.section], + }); } - switch (symbol.type) { - .function => try stdout.print(".type {s}, %function;\n", .{symbol.name}), - .object => try stdout.print(".type {s}, %object;\n", .{symbol.name}), - .none => {}, + if (gop.value_ptr.ty != ty) blk: { + if (ty == elf.STT_NOTYPE) { + log.warn("symbol '{s}' in arch {s} has type {d} but in arch {s} has type {d}. going with the one that is not STT_NOTYPE", .{ + name, + @tagName(parse.arch), + ty, + archSetName(gop.value_ptr.present), + gop.value_ptr.ty, + }); + break :blk; + } + if (gop.value_ptr.ty == elf.STT_NOTYPE) { + log.warn("symbol '{s}' in arch {s} has type {d} but in arch {s} has type {d}. going with the one that is not STT_NOTYPE", .{ + name, + @tagName(parse.arch), + ty, + archSetName(gop.value_ptr.present), + gop.value_ptr.ty, + }); + gop.value_ptr.ty = ty; + break :blk; + } + fatal("symbol '{s}' in arch {s} has type {d} but in arch {s} has type {d}", .{ + name, + @tagName(parse.arch), + ty, + archSetName(gop.value_ptr.present), + gop.value_ptr.ty, + }); + } + if (gop.value_ptr.visib != visib) { + fatal("symbol '{s}' in arch {s} has visib {s} but in arch {s} has visib {s}", .{ + name, + @tagName(parse.arch), + @tagName(visib), + archSetName(gop.value_ptr.present), + @tagName(gop.value_ptr.visib), + }); } - if (symbol.protected) - try stdout.print(".protected {s}\n", .{symbol.name}); - try stdout.print("{s}:\n", .{symbol.name}); + } else { + gop.value_ptr.* = .{ + .present = [1]bool{false} ** arches.len, + .section = section_index_map[this_section], + .ty = ty, + .binding = [1]u4{0} ** arches.len, + .visib = visib, + .size = [1]u64{0} ** arches.len, + }; } + gop.value_ptr.present[archIndex(parse.arch)] = true; + gop.value_ptr.size[archIndex(parse.arch)] = size; + gop.value_ptr.binding[archIndex(parse.arch)] = binding; } } -fn cmpSymbols(_: void, lhs: Symbol, rhs: Symbol) bool { - return alphabetical({}, lhs.name, rhs.name); +fn archIndex(arch: std.Target.Cpu.Arch) u8 { + return switch (arch) { + // zig fmt: off + .riscv64 => 0, + .mips => 1, + .i386 => 2, + .x86_64 => 3, + .powerpc => 4, + .powerpc64 => 5, + .aarch64 => 6, + else => unreachable, + // zig fmt: on + }; } -fn alphabetical(_: void, lhs: []const u8, rhs: []const u8) bool { - var i: usize = 0; - while (i < lhs.len and i < rhs.len) : (i += 1) { - if (lhs[i] == rhs[i]) continue; - return lhs[i] < rhs[i]; +fn archSetName(arch_set: [arches.len]bool) []const u8 { + for (arches) |arch, i| { + if (arch_set[i]) { + return @tagName(arch); + } } - return lhs.len < rhs.len; + return "(none)"; +} + +fn fatal(comptime format: []const u8, args: anytype) noreturn { + log.err(format, args); + std.process.exit(1); } + +const blacklisted_symbols = [_][]const u8{ + "__adddf3", + "__addkf3", + "__addsf3", + "__addtf3", + "__ashldi3", + "__ashlti3", + "__ashrdi3", + "__ashrti3", + "__atomic_compare_exchange", + "__atomic_compare_exchange_1", + "__atomic_compare_exchange_2", + "__atomic_compare_exchange_4", + "__atomic_compare_exchange_8", + "__atomic_exchange", + "__atomic_exchange_1", + "__atomic_exchange_2", + "__atomic_exchange_4", + "__atomic_exchange_8", + "__atomic_fetch_add_1", + "__atomic_fetch_add_2", + "__atomic_fetch_add_4", + "__atomic_fetch_add_8", + "__atomic_fetch_and_1", + "__atomic_fetch_and_2", + "__atomic_fetch_and_4", + "__atomic_fetch_and_8", + "__atomic_fetch_nand_1", + "__atomic_fetch_nand_2", + "__atomic_fetch_nand_4", + "__atomic_fetch_nand_8", + "__atomic_fetch_or_1", + "__atomic_fetch_or_2", + "__atomic_fetch_or_4", + "__atomic_fetch_or_8", + "__atomic_fetch_sub_1", + "__atomic_fetch_sub_2", + "__atomic_fetch_sub_4", + "__atomic_fetch_sub_8", + "__atomic_fetch_xor_1", + "__atomic_fetch_xor_2", + "__atomic_fetch_xor_4", + "__atomic_fetch_xor_8", + "__atomic_load", + "__atomic_load_1", + "__atomic_load_2", + "__atomic_load_4", + "__atomic_load_8", + "__atomic_store", + "__atomic_store_1", + "__atomic_store_2", + "__atomic_store_4", + "__atomic_store_8", + "__clear_cache", + "__clzdi2", + "__clzsi2", + "__clzti2", + "__cmpdf2", + "__cmpsf2", + "__cmptf2", + "__ctzdi2", + "__ctzsi2", + "__ctzti2", + "__divdf3", + "__divdi3", + "__divkf3", + "__divmoddi4", + "__divmodsi4", + "__divsf3", + "__divsi3", + "__divtf3", + "__divti3", + "__dlstart", + "__eqdf2", + "__eqkf2", + "__eqsf2", + "__eqtf2", + "__extenddfkf2", + "__extenddftf2", + "__extendhfsf2", + "__extendhftf2", + "__extendsfdf2", + "__extendsfkf2", + "__extendsftf2", + "__ffsdi2", + "__ffssi2", + "__ffsti2", + "__fixdfdi", + "__fixdfsi", + "__fixdfti", + "__fixkfdi", + "__fixkfsi", + "__fixsfdi", + "__fixsfsi", + "__fixsfti", + "__fixtfdi", + "__fixtfsi", + "__fixtfti", + "__fixunsdfdi", + "__fixunsdfsi", + "__fixunsdfti", + "__fixunskfdi", + "__fixunskfsi", + "__fixunssfdi", + "__fixunssfsi", + "__fixunssfti", + "__fixunstfdi", + "__fixunstfsi", + "__fixunstfti", + "__floatdidf", + "__floatdikf", + "__floatdisf", + "__floatditf", + "__floatsidf", + "__floatsikf", + "__floatsisf", + "__floatsitf", + "__floattidf", + "__floattisf", + "__floattitf", + "__floatundidf", + "__floatundikf", + "__floatundisf", + "__floatunditf", + "__floatunsidf", + "__floatunsikf", + "__floatunsisf", + "__floatunsitf", + "__floatuntidf", + "__floatuntisf", + "__floatuntitf", + "__gedf2", + "__gekf2", + "__gesf2", + "__getf2", + "__gnu_f2h_ieee", + "__gnu_h2f_ieee", + "__gtdf2", + "__gtkf2", + "__gtsf2", + "__gttf2", + "__ledf2", + "__lekf2", + "__lesf2", + "__letf2", + "__lshrdi3", + "__lshrti3", + "__ltdf2", + "__ltkf2", + "__ltsf2", + "__lttf2", + "__moddi3", + "__modsi3", + "__modti3", + "__muldc3", + "__muldf3", + "__muldi3", + "__mulkf3", + "__mulodi4", + "__muloti4", + "__mulsc3", + "__mulsf3", + "__mulsi3", + "__multc3", + "__multf3", + "__multi3", + "__mulxc3", + "__nedf2", + "__negdf2", + "__negsf2", + "__nekf2", + "__nesf2", + "__netf2", + "__paritydi2", + "__paritysi2", + "__parityti2", + "__popcountdi2", + "__popcountsi2", + "__popcountti2", + "__subdf3", + "__subkf3", + "__subsf3", + "__subtf3", + "__truncdfhf2", + "__truncdfsf2", + "__trunckfdf2", + "__trunckfsf2", + "__truncsfhf2", + "__trunctfdf2", + "__trunctfhf2", + "__trunctfsf2", + "__udivdi3", + "__udivmoddi4", + "__udivmodsi4", + "__udivmodti4", + "__udivsi3", + "__udivti3", + "__umoddi3", + "__umodsi3", + "__umodti3", + "__unorddf2", + "__unordkf2", + "__unordsf2", + "__unordtf2", + "__zig_probe_stack", + "fmaq", +}; |
