From b5cd7c2a827d8501473cf6927a083c0427e6c7e0 Mon Sep 17 00:00:00 2001 From: Neale Ferguson Date: Fri, 7 Jul 2023 09:15:59 +1000 Subject: [PATCH] libs/libc/modlib: fix dynamic loader issues * build-globals.sh - Macros for defining symbols etc. based on assembler in use - Use the System.map to get all the nuttx symbols * libs/libc/modlib/modlib_globals.S - Provide an empty skeleton. If the dynamic loading functions are required then run build-global.sh after a clean build using the skeleton. This will fill out the skeleton with the symbols to be available to dynamically loaded modules. * libs/libc/modlib/modlib_loadhdrs.c - Fix case where there are no program headers are avaiable --- build-globals.sh | 125 ++- libs/libc/machine/arm/armv7-m/arch_elf.c | 10 +- libs/libc/modlib/modlib_armv7m_globals.S | 1119 -------------------- libs/libc/modlib/modlib_globals.S | 1184 ++-------------------- libs/libc/modlib/modlib_loadhdrs.c | 71 +- libs/libc/modlib/modlib_verify.c | 10 +- libs/libc/modlib/modlib_x32_globals.S | 1116 -------------------- libs/libc/modlib/modlib_x64_globals.S | 565 ----------- 8 files changed, 185 insertions(+), 4015 deletions(-) delete mode 100644 libs/libc/modlib/modlib_armv7m_globals.S delete mode 100644 libs/libc/modlib/modlib_x32_globals.S delete mode 100644 libs/libc/modlib/modlib_x64_globals.S diff --git a/build-globals.sh b/build-globals.sh index 70a19e8193..9eb1d14fc4 100755 --- a/build-globals.sh +++ b/build-globals.sh @@ -13,6 +13,8 @@ findEP() SIZE=${#SYM[@]} L=0 R=$((SIZE - 1)) + OLDL=99999999 + OLDR=99999999 while [ ${L} -le ${R} ] do T=$(( L + R )) @@ -26,6 +28,11 @@ findEP() else R=$(( M - 1 )) fi + if [ ${OLDL} -eq ${L} -a ${OLDR} -eq ${R} ]; then + : return 0 + fi + OLDL=${L} + OLDR=${R} done return 0 } @@ -38,30 +45,36 @@ getEP() { for ((i = 0; i < ${#OBJ[@]}; i++)) do - FUNCS=`${NM} -g --defined-only ../staging/${OBJ[$i]} | awk '{print $3}' | sort | grep -Ev ${FILTER}` - FUNC=(${FUNCS}) - for ((j = 0; j < ${#FUNC[@]}; j++)) - do - findEP ${FUNC[$j]} - if [ $? -eq 1 ]; then - EP[${I_EP}]=${FUNC[$j]} - I_EP=$((I_EP + 1)) - fi - done + if [ -f staging/${OBJ[$i]} ]; then + FUNCS=`${NM} -g --defined-only staging/${OBJ[$i]} 2>/dev/null | grep "^0" | awk '{print $3}' | sort | grep -Ev ${FILTER}` + FUNC=(${FUNCS}) + for ((j = 0; j < ${#FUNC[@]}; j++)) + do + findEP ${FUNC[$j]} + if [ $? -eq 1 ]; then + EP[${I_EP}]=${FUNC[$j]} + I_EP=$((I_EP + 1)) + fi + done + fi done } # # Symbols to ignore within the NuttX libraries # -FILTER="^lib_low|^FUNCTION|^STUB|^__start|^_vect|^arm_|^arp_|^bch|^binfmt|^blake|^block_|^cdcacm|^chksum|^clock_|^close_|^crypto_|^devif_|^devnull|^devuran|^devzero|^emerg|^epoll_|^elf_|^_dbgR|^dq_|^env_|^file_|^files_|^fs_|^ftl_|^g_|^get_|^group_|^global|^hcom|^i2c_|^inode_|^iob_|^irq_|^kmm_|^lfs_|^lib_|^local_|^mm_|^modlib_|^mpu_|^mq_|^nGlobals|^net_|^netdev_|^nx|^pipecommon|^posix_spawn_file|^psock_|^ramlog|^rammap|^readline_|^register_|^sched_|^sockfd|^spawn_|^sq_|^stm32|^symtab_|^syslog_|^syslogstream|^task_|^tcp_|^timer_|^uart_|^ub[12]|^udp_|^umm_|^umount|^unload_|^unregister|^up_|^usb|^usrsock_|^watchdog|^wd_" +FILTER="^lib_low|^FUNCTION|^STUB|^__start|^_vect|^arm_|^arp_|^bch|^binfmt|^blake|^block_|^cdcacm|^chksum|^clock_|^close_|^crypto_|^devif_|^devnull|^devuran|^devzero|^emerg|^epoll_|^elf_|^_dbgR|^dq_|^env_|^file_|^files_|^fs_|^ftl_|^g_|^get_|^group_|^global|^hcom|^i2c_|^inode_|^iob_|^irq_|^kmm_|^lfs_|^lib_|^local_|^mm_|^modlib_|^mpu_|^mq_|^nGlobals|^net_|^netdev_|^nx|^pipecommon|^posix_spawn_file|^psock_|^ramlog|^rammap|^readline_|^register_|^sched_|^sockfd|^spawn_|^sq_|^stm32|^symtab_|^syslog_|^syslogstream|^task_|^tcp_|^timer_|^uart_|^ub[12]|^udp_|^umm_|^umount|^unload_|^unregister|^up_|^usb|^usrsock_|^watchdog|^wd_|globalNames$|nGlobals$|globalTable$|^\.l" + +if [ -z "${NM}" ]; then + NM="nm" +fi # # Extract symbols from the runtime # -SYMS=`${NM} ../nuttx | awk '{print $3}' | sort | grep -Ev ${FILTER}` +SYMS=`cat System.map | awk '{print $3}' | sort | grep -Ev ${FILTER}` SYM=(${SYMS}) -GLOBALS="../libs/libc/modlib/modlib_globals.S" +GLOBALS="libs/libc/modlib/modlib_globals.S" I_EP=0 # @@ -80,70 +93,100 @@ EP=(${EPS}) # # Generate the modlib_xxxx_globals.S file # - GLOBALS="libs/libc/modlib/modlib_${arch}_globals.S" cat >${GLOBALS} <<__EOF__ +#ifdef __CYGWIN__ +# define SYMBOL(s) _##s +# define WEAK .weak +# define GLOBAL .global +# define SECTION .data + .macro GLOBAL ep + .global SYMBOL(\ep) + .type SYMBOL(\ep), "object" + .endm + .macro SIZE ep + .endm +#elif defined(__ELF__) +# define SYMBOL(s) s +# define WEAK .weak +# define SECTION .data + .macro GLOBAL ep + .global SYMBOL(\ep) + .type SYMBOL(\ep), "object" + .endm + .macro SIZE ep + .size SYMBOL(\ep), . - SYMBOL(\ep) + .endm +#else +# define SYMBOL(s) _##s +# define WEAK .weak_definition +# define SECTION .section __DATA,__data + .macro GLOBAL ep + .private_extern SYMBOL(\ep) + .globl SYMBOL(\ep) + .endm + .macro SIZE ep + .endm +#endif + #if __SIZEOF_POINTER__ == 8 .macro globalEntry index, ep - .weak \p - .quad .L\index - .quad \ep + WEAK SYMBOL(\ep) + .quad .l\index + .quad \ep .endm # define ALIGN 8 #else .macro globalEntry index, ep - .weak \ep - .long .L\index - .long \ep + WEAK SYMBOL(\ep) + .long .l\index + .long \ep .endm # define ALIGN 4 #endif #ifdef __ARM_ARCH_ISA_THUMB2 # ifdef __ARM_ARCH_7M__ - .arch armv7e-m + .arch armv7e-m # elif defined ___ARM_ARCH 8 .arch armv8-m.base #endif #ifdef __ARM_ASM_SYNTAX_UNIFIED__ - .syntax unified + .syntax unified #endif - .thumb + .thumb #endif - .data - .align ALIGN - .global globalNames + .data + .align ALIGN + GLOBAL globalNames -globalNames: +SYMBOL(globalNames): __EOF__ for ((i = 0; i < ${#EP[@]}; i++)) do - echo ".L${i}: .string \"${EP[$i]}\"" >>${GLOBALS} + echo ".l${i}: .string \"${EP[$i]}\"" >>${GLOBALS} done cat >>${GLOBALS} <<__EOF__ - .size globalNames, . - globalNames + SIZE globalNames - .align ${ALIGN} - .global nGlobals - .type nGlobals, "object" -nGlobals: + .align ALIGN + GLOBAL nGlobals +SYMBOL(nGlobals): .word ${#EP[@]} - .size nGlobals, . - nGlobals + SIZE nGlobals - .align ${ALIGN} - .global globalTable - .type globalTable, "object" -globalTable: + .align ALIGN + GLOBAL globalTable +SYMBOL(globalTable): __EOF__ for ((i = 0; i < ${#EP[@]}; i++)) do - echo " globalEntry ${i}, ${EP[$i]}" >>${GLOBALS} + echo " globalEntry ${i}, ${EP[$i]}" >>${GLOBALS} done cat >>${GLOBALS} <<__EOF__ - .size globalTable, . - globalTable + SIZE globalTable __EOF__ -done echo "${#EP[@]} symbols defined" diff --git a/libs/libc/machine/arm/armv7-m/arch_elf.c b/libs/libc/machine/arm/armv7-m/arch_elf.c index 737a701a08..b8b2e03af5 100644 --- a/libs/libc/machine/arm/armv7-m/arch_elf.c +++ b/libs/libc/machine/arm/armv7-m/arch_elf.c @@ -493,14 +493,10 @@ int up_relocate(const Elf32_Rel *rel, const Elf32_Sym *sym, uintptr_t addr) } break; - case R_ARM_RELATIVE : - case R_ARM_JUMP_SLOT : + case R_ARM_RELATIVE: + case R_ARM_JUMP_SLOT: { - binfo("Relocating: RELATIVE/JUMP_SLOT at %p value: %08lx" - "with %08lx\n", - (void *)addr, *(unsigned long *)addr, - (unsigned long)sym->st_value); - *(uint32_t *) addr = (uint32_t) sym->st_value; + *(uint32_t *)addr = (uint32_t)sym->st_value; } break; diff --git a/libs/libc/modlib/modlib_armv7m_globals.S b/libs/libc/modlib/modlib_armv7m_globals.S deleted file mode 100644 index ce24eec207..0000000000 --- a/libs/libc/modlib/modlib_armv7m_globals.S +++ /dev/null @@ -1,1119 +0,0 @@ - .arch armv7e-m - .syntax unified - .thumb - .data - .align 4 - .global globalNames - -globalNames: -.L0: .string "_ZdlPvj" -.L1: .string "__cos" -.L2: .string "__cxa_pure_virtual" -.L3: .string "__dso_handle" -.L4: .string "__dtoa_engine" -.L5: .string "__sin" -.L6: .string "__swap_uint32" -.L7: .string "__swap_uint64" -.L8: .string "__ultoa_invert" -.L9: .string "_exit" -.L10: .string "abort" -.L11: .string "abs" -.L12: .string "accept" -.L13: .string "access" -.L14: .string "acos" -.L15: .string "acosf" -.L16: .string "acosh" -.L17: .string "acoshf" -.L18: .string "acoshl" -.L19: .string "acosl" -.L20: .string "add_file_action" -.L21: .string "asin" -.L22: .string "asinf" -.L23: .string "asinh" -.L24: .string "asinhf" -.L25: .string "asinhl" -.L26: .string "asinl" -.L27: .string "asprintf" -.L28: .string "atan" -.L29: .string "atan2" -.L30: .string "atan2f" -.L31: .string "atan2l" -.L32: .string "atanf" -.L33: .string "atanh" -.L34: .string "atanhf" -.L35: .string "atanhl" -.L36: .string "atanl" -.L37: .string "b16atan2" -.L38: .string "b16cos" -.L39: .string "b16sin" -.L40: .string "basename" -.L41: .string "bind" -.L42: .string "boardctl" -.L43: .string "bsearch" -.L44: .string "cabs" -.L45: .string "cacheflush" -.L46: .string "calloc" -.L47: .string "cbrtf" -.L48: .string "ceil" -.L49: .string "ceilf" -.L50: .string "ceill" -.L51: .string "cfgetspeed" -.L52: .string "cfmakeraw" -.L53: .string "cfsetspeed" -.L54: .string "chdir" -.L55: .string "cimag" -.L56: .string "clearenv" -.L57: .string "clearerr" -.L58: .string "clock" -.L59: .string "close" -.L60: .string "closedir" -.L61: .string "connect" -.L62: .string "copysign" -.L63: .string "copysignf" -.L64: .string "copysignl" -.L65: .string "cos" -.L66: .string "cosf" -.L67: .string "cosh" -.L68: .string "coshf" -.L69: .string "coshl" -.L70: .string "cosl" -.L71: .string "crc16" -.L72: .string "crc16part" -.L73: .string "crc32" -.L74: .string "crc32part" -.L75: .string "crc64" -.L76: .string "crc64part" -.L77: .string "crc8" -.L78: .string "crc8ccitt" -.L79: .string "crc8part" -.L80: .string "creal" -.L81: .string "daemon" -.L82: .string "difftime" -.L83: .string "dirname" -.L84: .string "div" -.L85: .string "dlclose" -.L86: .string "dlerror" -.L87: .string "dlopen" -.L88: .string "dlsym" -.L89: .string "dlsymtab" -.L90: .string "dns_add_nameserver" -.L91: .string "dns_bind" -.L92: .string "dns_find_answer" -.L93: .string "dns_foreach_nameserver" -.L94: .string "dns_initialize" -.L95: .string "dns_notify_nameserver" -.L96: .string "dns_query" -.L97: .string "dns_register_notify" -.L98: .string "dns_save_answer" -.L99: .string "dns_semgive" -.L100: .string "dns_semtake" -.L101: .string "dns_unregister_notify" -.L102: .string "dprintf" -.L103: .string "dup" -.L104: .string "dup2" -.L105: .string "envpath_init" -.L106: .string "envpath_next" -.L107: .string "envpath_release" -.L108: .string "erf" -.L109: .string "erff" -.L110: .string "erfl" -.L111: .string "ether_ntoa" -.L112: .string "exec" -.L113: .string "exit" -.L114: .string "exp" -.L115: .string "expf" -.L116: .string "expl" -.L117: .string "explicit_bzero" -.L118: .string "fabs" -.L119: .string "fabsf" -.L120: .string "fabsl" -.L121: .string "fclose" -.L122: .string "fcntl" -.L123: .string "fdopen" -.L124: .string "feof" -.L125: .string "ferror" -.L126: .string "fflush" -.L127: .string "ffs" -.L128: .string "ffsl" -.L129: .string "ffsll" -.L130: .string "fgetc" -.L131: .string "fgetpos" -.L132: .string "fgets" -.L133: .string "fileno" -.L134: .string "floor" -.L135: .string "floorf" -.L136: .string "floorl" -.L137: .string "fls" -.L138: .string "flsl" -.L139: .string "flsll" -.L140: .string "fma" -.L141: .string "fmaf" -.L142: .string "fmod" -.L143: .string "fmodf" -.L144: .string "fmodl" -.L145: .string "fopen" -.L146: .string "fprintf" -.L147: .string "fputc" -.L148: .string "fputs" -.L149: .string "fread" -.L150: .string "free" -.L151: .string "freeaddrinfo" -.L152: .string "freopen" -.L153: .string "frexp" -.L154: .string "frexpf" -.L155: .string "frexpl" -.L156: .string "fscanf" -.L157: .string "fseek" -.L158: .string "fsetpos" -.L159: .string "fstat" -.L160: .string "fstatfs" -.L161: .string "fsync" -.L162: .string "ftell" -.L163: .string "ftruncate" -.L164: .string "fwrite" -.L165: .string "gai_strerror" -.L166: .string "gamma" -.L167: .string "getaddrinfo" -.L168: .string "getcwd" -.L169: .string "getenv" -.L170: .string "gethostbyaddr" -.L171: .string "gethostbyaddr_r" -.L172: .string "gethostbyname" -.L173: .string "gethostbyname_r" -.L174: .string "gethostname" -.L175: .string "getnameinfo" -.L176: .string "getopt" -.L177: .string "getoptargp" -.L178: .string "getoptindp" -.L179: .string "getoptoptp" -.L180: .string "getpeername" -.L181: .string "getpid" -.L182: .string "getprotobyname" -.L183: .string "getrandom" -.L184: .string "gets" -.L185: .string "gets_s" -.L186: .string "getservbyname" -.L187: .string "getservbyname_r" -.L188: .string "getsockname" -.L189: .string "getsockopt" -.L190: .string "gettimeofday" -.L191: .string "gmtime" -.L192: .string "gmtime_r" -.L193: .string "h_errno" -.L194: .string "htonl" -.L195: .string "htons" -.L196: .string "hypot" -.L197: .string "ilogb" -.L198: .string "ilogbf" -.L199: .string "imaxabs" -.L200: .string "in6addr_any" -.L201: .string "inet_addr" -.L202: .string "inet_aton" -.L203: .string "inet_ntoa" -.L204: .string "inet_ntop" -.L205: .string "inet_pton" -.L206: .string "ioctl" -.L207: .string "isatty" -.L208: .string "itoa" -.L209: .string "kill" -.L210: .string "labs" -.L211: .string "ldexp" -.L212: .string "ldexpf" -.L213: .string "ldexpl" -.L214: .string "ldiv" -.L215: .string "lgamma" -.L216: .string "lgamma_r" -.L217: .string "listen" -.L218: .string "llabs" -.L219: .string "lldiv" -.L220: .string "localeconv" -.L221: .string "log" -.L222: .string "log10" -.L223: .string "log10f" -.L224: .string "log10l" -.L225: .string "log2" -.L226: .string "log2f" -.L227: .string "log2l" -.L228: .string "logf" -.L229: .string "logl" -.L230: .string "lseek" -.L231: .string "malloc" -.L232: .string "match" -.L233: .string "meadow_mappings" -.L234: .string "memalign" -.L235: .string "memccpy" -.L236: .string "memchr" -.L237: .string "memcmp" -.L238: .string "memcpy" -.L239: .string "memmove" -.L240: .string "memrchr" -.L241: .string "memset" -.L242: .string "mkdir" -.L243: .string "mkfifo" -.L244: .string "mkfifo2" -.L245: .string "mkstemp" -.L246: .string "mktemp" -.L247: .string "mktime" -.L248: .string "mmap" -.L249: .string "modf" -.L250: .string "modff" -.L251: .string "modfl" -.L252: .string "mono_main" -.L253: .string "mono_should_run" -.L254: .string "mount" -.L255: .string "munmap" -.L256: .string "nanosleep" -.L257: .string "nrand" -.L258: .string "ntohl" -.L259: .string "ntohs" -.L260: .string "open" -.L261: .string "opendir" -.L262: .string "optarg" -.L263: .string "optind" -.L264: .string "optopt" -.L265: .string "perror" -.L266: .string "pipe" -.L267: .string "pipe2" -.L268: .string "poll" -.L269: .string "posix_spawnattr_dump" -.L270: .string "posix_spawnattr_getflags" -.L271: .string "posix_spawnattr_getschedparam" -.L272: .string "posix_spawnattr_getschedpolicy" -.L273: .string "posix_spawnattr_getsigmask" -.L274: .string "posix_spawnattr_init" -.L275: .string "posix_spawnattr_setflags" -.L276: .string "posix_spawnattr_setschedparam" -.L277: .string "posix_spawnattr_setschedpolicy" -.L278: .string "posix_spawnattr_setsigmask" -.L279: .string "pow" -.L280: .string "powf" -.L281: .string "powl" -.L282: .string "ppoll" -.L283: .string "prctl" -.L284: .string "pread" -.L285: .string "printf" -.L286: .string "pselect" -.L287: .string "psiginfo" -.L288: .string "psignal" -.L289: .string "pthread_attr_destroy" -.L290: .string "pthread_attr_getinheritsched" -.L291: .string "pthread_attr_getschedparam" -.L292: .string "pthread_attr_getschedpolicy" -.L293: .string "pthread_attr_getstack" -.L294: .string "pthread_attr_getstacksize" -.L295: .string "pthread_attr_init" -.L296: .string "pthread_attr_setinheritsched" -.L297: .string "pthread_attr_setschedparam" -.L298: .string "pthread_attr_setschedpolicy" -.L299: .string "pthread_attr_setstack" -.L300: .string "pthread_attr_setstacksize" -.L301: .string "pthread_barrier_destroy" -.L302: .string "pthread_barrier_init" -.L303: .string "pthread_barrier_wait" -.L304: .string "pthread_barrierattr_destroy" -.L305: .string "pthread_barrierattr_getpshared" -.L306: .string "pthread_barrierattr_init" -.L307: .string "pthread_barrierattr_setpshared" -.L308: .string "pthread_cancel" -.L309: .string "pthread_cleanup_pop" -.L310: .string "pthread_cleanup_push" -.L311: .string "pthread_cond_broadcast" -.L312: .string "pthread_cond_destroy" -.L313: .string "pthread_cond_init" -.L314: .string "pthread_cond_signal" -.L315: .string "pthread_cond_timedwait" -.L316: .string "pthread_cond_wait" -.L317: .string "pthread_condattr_destroy" -.L318: .string "pthread_condattr_init" -.L319: .string "pthread_create" -.L320: .string "pthread_detach" -.L321: .string "pthread_exit" -.L322: .string "pthread_get_stackaddr_np" -.L323: .string "pthread_get_stacksize_np" -.L324: .string "pthread_getschedparam" -.L325: .string "pthread_getspecific" -.L326: .string "pthread_join" -.L327: .string "pthread_key_create" -.L328: .string "pthread_key_delete" -.L329: .string "pthread_kill" -.L330: .string "pthread_mutex_consistent" -.L331: .string "pthread_mutex_destroy" -.L332: .string "pthread_mutex_init" -.L333: .string "pthread_mutex_lock" -.L334: .string "pthread_mutex_timedlock" -.L335: .string "pthread_mutex_trylock" -.L336: .string "pthread_mutex_unlock" -.L337: .string "pthread_mutexattr_destroy" -.L338: .string "pthread_mutexattr_getprotocol" -.L339: .string "pthread_mutexattr_getpshared" -.L340: .string "pthread_mutexattr_getrobust" -.L341: .string "pthread_mutexattr_gettype" -.L342: .string "pthread_mutexattr_init" -.L343: .string "pthread_mutexattr_setprotocol" -.L344: .string "pthread_mutexattr_setpshared" -.L345: .string "pthread_mutexattr_setrobust" -.L346: .string "pthread_mutexattr_settype" -.L347: .string "pthread_once" -.L348: .string "pthread_rwlock_destroy" -.L349: .string "pthread_rwlock_init" -.L350: .string "pthread_rwlock_rdlock" -.L351: .string "pthread_rwlock_timedrdlock" -.L352: .string "pthread_rwlock_timedwrlock" -.L353: .string "pthread_rwlock_tryrdlock" -.L354: .string "pthread_rwlock_trywrlock" -.L355: .string "pthread_rwlock_unlock" -.L356: .string "pthread_rwlock_wrlock" -.L357: .string "pthread_setcancelstate" -.L358: .string "pthread_setcanceltype" -.L359: .string "pthread_setschedparam" -.L360: .string "pthread_setschedprio" -.L361: .string "pthread_setspecific" -.L362: .string "pthread_sigmask" -.L363: .string "pthread_startup" -.L364: .string "pthread_testcancel" -.L365: .string "pthread_yield" -.L366: .string "putenv" -.L367: .string "puts" -.L368: .string "pwrite" -.L369: .string "qsort" -.L370: .string "raise" -.L371: .string "rand" -.L372: .string "random" -.L373: .string "read" -.L374: .string "readdir" -.L375: .string "readdir_r" -.L376: .string "readv" -.L377: .string "realloc" -.L378: .string "recv" -.L379: .string "recvfrom" -.L380: .string "recvmsg" -.L381: .string "remove" -.L382: .string "rename" -.L383: .string "rewinddir" -.L384: .string "rint" -.L385: .string "rintf" -.L386: .string "rintl" -.L387: .string "rmdir" -.L388: .string "round" -.L389: .string "roundf" -.L390: .string "roundl" -.L391: .string "scalbn" -.L392: .string "scalbnf" -.L393: .string "scanf" -.L394: .string "seekdir" -.L395: .string "select" -.L396: .string "sem_destroy" -.L397: .string "sem_getprotocol" -.L398: .string "sem_getvalue" -.L399: .string "sem_init" -.L400: .string "sem_post" -.L401: .string "sem_setprotocol" -.L402: .string "sem_timedwait" -.L403: .string "sem_trywait" -.L404: .string "sem_wait" -.L405: .string "send" -.L406: .string "sendfile" -.L407: .string "sendmsg" -.L408: .string "sendto" -.L409: .string "set_errno" -.L410: .string "setbuf" -.L411: .string "setenv" -.L412: .string "sethostname" -.L413: .string "setlocale" -.L414: .string "setlogmask" -.L415: .string "setsockopt" -.L416: .string "settimeofday" -.L417: .string "setvbuf" -.L418: .string "shutdown" -.L419: .string "sigaction" -.L420: .string "sigaddset" -.L421: .string "sigdelset" -.L422: .string "sigemptyset" -.L423: .string "sigfillset" -.L424: .string "sighold" -.L425: .string "sigignore" -.L426: .string "sigismember" -.L427: .string "signal" -.L428: .string "sigpause" -.L429: .string "sigpending" -.L430: .string "sigprocmask" -.L431: .string "sigqueue" -.L432: .string "sigrelse" -.L433: .string "sigset" -.L434: .string "sigsuspend" -.L435: .string "sigtimedwait" -.L436: .string "sigwait" -.L437: .string "sigwaitinfo" -.L438: .string "sin" -.L439: .string "sinf" -.L440: .string "sinh" -.L441: .string "sinhf" -.L442: .string "sinhl" -.L443: .string "sinl" -.L444: .string "sleep" -.L445: .string "snprintf" -.L446: .string "socket" -.L447: .string "sprintf" -.L448: .string "sqrt" -.L449: .string "sqrtf" -.L450: .string "sqrtl" -.L451: .string "srand" -.L452: .string "sscanf" -.L453: .string "stat" -.L454: .string "statfs" -.L455: .string "stpcpy" -.L456: .string "stpncpy" -.L457: .string "strcasecmp" -.L458: .string "strcasestr" -.L459: .string "strcat" -.L460: .string "strchr" -.L461: .string "strcmp" -.L462: .string "strcoll" -.L463: .string "strcpy" -.L464: .string "strcspn" -.L465: .string "strdup" -.L466: .string "stream_semgive" -.L467: .string "stream_semtake" -.L468: .string "strerror" -.L469: .string "strerror_r" -.L470: .string "strftime" -.L471: .string "strlen" -.L472: .string "strncasecmp" -.L473: .string "strncat" -.L474: .string "strncmp" -.L475: .string "strncpy" -.L476: .string "strndup" -.L477: .string "strnlen" -.L478: .string "strpbrk" -.L479: .string "strrchr" -.L480: .string "strsep" -.L481: .string "strsignal" -.L482: .string "strspn" -.L483: .string "strstr" -.L484: .string "strtod" -.L485: .string "strtof" -.L486: .string "strtoimax" -.L487: .string "strtok" -.L488: .string "strtok_r" -.L489: .string "strtol" -.L490: .string "strtold" -.L491: .string "strtoll" -.L492: .string "strtoul" -.L493: .string "strtoull" -.L494: .string "strtoumax" -.L495: .string "strxfrm" -.L496: .string "swab" -.L497: .string "sysconf" -.L498: .string "syslog" -.L499: .string "tan" -.L500: .string "tanf" -.L501: .string "tanh" -.L502: .string "tanhf" -.L503: .string "tanhl" -.L504: .string "tanl" -.L505: .string "tcdrain" -.L506: .string "tcflow" -.L507: .string "tcflush" -.L508: .string "tcgetattr" -.L509: .string "tcsetattr" -.L510: .string "tea_decrypt" -.L511: .string "tea_encrypt" -.L512: .string "telldir" -.L513: .string "tempnam" -.L514: .string "tgamma" -.L515: .string "time" -.L516: .string "tmpnam" -.L517: .string "trunc" -.L518: .string "truncate" -.L519: .string "truncf" -.L520: .string "truncl" -.L521: .string "uadd32x64" -.L522: .string "uadd64" -.L523: .string "ub32sqrtub16" -.L524: .string "umul32" -.L525: .string "umul32x64" -.L526: .string "umul64" -.L527: .string "uname" -.L528: .string "ungetc" -.L529: .string "unlink" -.L530: .string "unsetenv" -.L531: .string "usleep" -.L532: .string "usub64" -.L533: .string "usub64x32" -.L534: .string "vasprintf" -.L535: .string "vdprintf" -.L536: .string "vfork" -.L537: .string "vfprintf" -.L538: .string "vfscanf" -.L539: .string "vprintf" -.L540: .string "vsnprintf" -.L541: .string "vsprintf" -.L542: .string "vsscanf" -.L543: .string "vsyslog" -.L544: .string "waitpid" -.L545: .string "write" -.L546: .string "writev" -.L547: .string "xorshift128" -.L548: .string "zalloc" - .size globalNames, . - globalNames - - .align 4 - .global nGlobals - .type nGlobals, "object" -nGlobals: - .word 549 - .size nGlobals, . - nGlobals - - .global globalTable - .type globalTable, "object" -globalTable: - .word .L0, _ZdlPvj - .word .L1, __cos - .word .L2, __cxa_pure_virtual - .word .L3, __dso_handle - .word .L4, __dtoa_engine - .word .L5, __sin - .word .L6, __swap_uint32 - .word .L7, __swap_uint64 - .word .L8, __ultoa_invert - .word .L9, _exit - .word .L10, abort - .word .L11, abs - .word .L12, accept - .word .L13, access - .word .L14, acos - .word .L15, acosf - .word .L16, acosh - .word .L17, acoshf - .word .L18, acoshl - .word .L19, acosl - .word .L20, add_file_action - .word .L21, asin - .word .L22, asinf - .word .L23, asinh - .word .L24, asinhf - .word .L25, asinhl - .word .L26, asinl - .word .L27, asprintf - .word .L28, atan - .word .L29, atan2 - .word .L30, atan2f - .word .L31, atan2l - .word .L32, atanf - .word .L33, atanh - .word .L34, atanhf - .word .L35, atanhl - .word .L36, atanl - .word .L37, b16atan2 - .word .L38, b16cos - .word .L39, b16sin - .word .L40, basename - .word .L41, bind - .word .L42, boardctl - .word .L43, bsearch - .word .L44, cabs - .word .L45, cacheflush - .word .L46, calloc - .word .L47, cbrtf - .word .L48, ceil - .word .L49, ceilf - .word .L50, ceill - .word .L51, cfgetspeed - .word .L52, cfmakeraw - .word .L53, cfsetspeed - .word .L54, chdir - .word .L55, cimag - .word .L56, clearenv - .word .L57, clearerr - .word .L58, clock - .word .L59, close - .word .L60, closedir - .word .L61, connect - .word .L62, copysign - .word .L63, copysignf - .word .L64, copysignl - .word .L65, cos - .word .L66, cosf - .word .L67, cosh - .word .L68, coshf - .word .L69, coshl - .word .L70, cosl - .word .L71, crc16 - .word .L72, crc16part - .word .L73, crc32 - .word .L74, crc32part - .word .L75, crc64 - .word .L76, crc64part - .word .L77, crc8 - .word .L78, crc8ccitt - .word .L79, crc8part - .word .L80, creal - .word .L81, daemon - .word .L82, difftime - .word .L83, dirname - .word .L84, div - .word .L85, dlclose - .word .L86, dlerror - .word .L87, dlopen - .word .L88, dlsym - .word .L89, dlsymtab - .word .L90, dns_add_nameserver - .word .L91, dns_bind - .word .L92, dns_find_answer - .word .L93, dns_foreach_nameserver - .word .L94, dns_initialize - .word .L95, dns_notify_nameserver - .word .L96, dns_query - .word .L97, dns_register_notify - .word .L98, dns_save_answer - .word .L99, dns_semgive - .word .L100, dns_semtake - .word .L101, dns_unregister_notify - .word .L102, dprintf - .word .L103, dup - .word .L104, dup2 - .word .L105, envpath_init - .word .L106, envpath_next - .word .L107, envpath_release - .word .L108, erf - .word .L109, erff - .word .L110, erfl - .word .L111, ether_ntoa - .word .L112, exec - .word .L113, exit - .word .L114, exp - .word .L115, expf - .word .L116, expl - .word .L117, explicit_bzero - .word .L118, fabs - .word .L119, fabsf - .word .L120, fabsl - .word .L121, fclose - .word .L122, fcntl - .word .L123, fdopen - .word .L124, feof - .word .L125, ferror - .word .L126, fflush - .word .L127, ffs - .word .L128, ffsl - .word .L129, ffsll - .word .L130, fgetc - .word .L131, fgetpos - .word .L132, fgets - .word .L133, fileno - .word .L134, floor - .word .L135, floorf - .word .L136, floorl - .word .L137, fls - .word .L138, flsl - .word .L139, flsll - .word .L140, fma - .word .L141, fmaf - .word .L142, fmod - .word .L143, fmodf - .word .L144, fmodl - .word .L145, fopen - .word .L146, fprintf - .word .L147, fputc - .word .L148, fputs - .word .L149, fread - .word .L150, free - .word .L151, freeaddrinfo - .word .L152, freopen - .word .L153, frexp - .word .L154, frexpf - .word .L155, frexpl - .word .L156, fscanf - .word .L157, fseek - .word .L158, fsetpos - .word .L159, fstat - .word .L160, fstatfs - .word .L161, fsync - .word .L162, ftell - .word .L163, ftruncate - .word .L164, fwrite - .word .L165, gai_strerror - .word .L166, gamma - .word .L167, getaddrinfo - .word .L168, getcwd - .word .L169, getenv - .word .L170, gethostbyaddr - .word .L171, gethostbyaddr_r - .word .L172, gethostbyname - .word .L173, gethostbyname_r - .word .L174, gethostname - .word .L175, getnameinfo - .word .L176, getopt - .word .L177, getoptargp - .word .L178, getoptindp - .word .L179, getoptoptp - .word .L180, getpeername - .word .L181, getpid - .word .L182, getprotobyname - .word .L183, getrandom - .word .L184, gets - .word .L185, gets_s - .word .L186, getservbyname - .word .L187, getservbyname_r - .word .L188, getsockname - .word .L189, getsockopt - .word .L190, gettimeofday - .word .L191, gmtime - .word .L192, gmtime_r - .word .L193, h_errno - .word .L194, htonl - .word .L195, htons - .word .L196, hypot - .word .L197, ilogb - .word .L198, ilogbf - .word .L199, imaxabs - .word .L200, in6addr_any - .word .L201, inet_addr - .word .L202, inet_aton - .word .L203, inet_ntoa - .word .L204, inet_ntop - .word .L205, inet_pton - .word .L206, ioctl - .word .L207, isatty - .word .L208, itoa - .word .L209, kill - .word .L210, labs - .word .L211, ldexp - .word .L212, ldexpf - .word .L213, ldexpl - .word .L214, ldiv - .word .L215, lgamma - .word .L216, lgamma_r - .word .L217, listen - .word .L218, llabs - .word .L219, lldiv - .word .L220, localeconv - .word .L221, log - .word .L222, log10 - .word .L223, log10f - .word .L224, log10l - .word .L225, log2 - .word .L226, log2f - .word .L227, log2l - .word .L228, logf - .word .L229, logl - .word .L230, lseek - .word .L231, malloc - .word .L232, match - .word .L233, meadow_mappings - .word .L234, memalign - .word .L235, memccpy - .word .L236, memchr - .word .L237, memcmp - .word .L238, memcpy - .word .L239, memmove - .word .L240, memrchr - .word .L241, memset - .word .L242, mkdir - .word .L243, mkfifo - .word .L244, mkfifo2 - .word .L245, mkstemp - .word .L246, mktemp - .word .L247, mktime - .word .L248, mmap - .word .L249, modf - .word .L250, modff - .word .L251, modfl - .word .L252, mono_main - .word .L253, mono_should_run - .word .L254, mount - .word .L255, munmap - .word .L256, nanosleep - .word .L257, nrand - .word .L258, ntohl - .word .L259, ntohs - .word .L260, open - .word .L261, opendir - .word .L262, optarg - .word .L263, optind - .word .L264, optopt - .word .L265, perror - .word .L266, pipe - .word .L267, pipe2 - .word .L268, poll - .word .L269, posix_spawnattr_dump - .word .L270, posix_spawnattr_getflags - .word .L271, posix_spawnattr_getschedparam - .word .L272, posix_spawnattr_getschedpolicy - .word .L273, posix_spawnattr_getsigmask - .word .L274, posix_spawnattr_init - .word .L275, posix_spawnattr_setflags - .word .L276, posix_spawnattr_setschedparam - .word .L277, posix_spawnattr_setschedpolicy - .word .L278, posix_spawnattr_setsigmask - .word .L279, pow - .word .L280, powf - .word .L281, powl - .word .L282, ppoll - .word .L283, prctl - .word .L284, pread - .word .L285, printf - .word .L286, pselect - .word .L287, psiginfo - .word .L288, psignal - .word .L289, pthread_attr_destroy - .word .L290, pthread_attr_getinheritsched - .word .L291, pthread_attr_getschedparam - .word .L292, pthread_attr_getschedpolicy - .word .L293, pthread_attr_getstack - .word .L294, pthread_attr_getstacksize - .word .L295, pthread_attr_init - .word .L296, pthread_attr_setinheritsched - .word .L297, pthread_attr_setschedparam - .word .L298, pthread_attr_setschedpolicy - .word .L299, pthread_attr_setstack - .word .L300, pthread_attr_setstacksize - .word .L301, pthread_barrier_destroy - .word .L302, pthread_barrier_init - .word .L303, pthread_barrier_wait - .word .L304, pthread_barrierattr_destroy - .word .L305, pthread_barrierattr_getpshared - .word .L306, pthread_barrierattr_init - .word .L307, pthread_barrierattr_setpshared - .word .L308, pthread_cancel - .word .L309, pthread_cleanup_pop - .word .L310, pthread_cleanup_push - .word .L311, pthread_cond_broadcast - .word .L312, pthread_cond_destroy - .word .L313, pthread_cond_init - .word .L314, pthread_cond_signal - .word .L315, pthread_cond_timedwait - .word .L316, pthread_cond_wait - .word .L317, pthread_condattr_destroy - .word .L318, pthread_condattr_init - .word .L319, pthread_create - .word .L320, pthread_detach - .word .L321, pthread_exit - .word .L322, pthread_get_stackaddr_np - .word .L323, pthread_get_stacksize_np - .word .L324, pthread_getschedparam - .word .L325, pthread_getspecific - .word .L326, pthread_join - .word .L327, pthread_key_create - .word .L328, pthread_key_delete - .word .L329, pthread_kill - .word .L330, pthread_mutex_consistent - .word .L331, pthread_mutex_destroy - .word .L332, pthread_mutex_init - .word .L333, pthread_mutex_lock - .word .L334, pthread_mutex_timedlock - .word .L335, pthread_mutex_trylock - .word .L336, pthread_mutex_unlock - .word .L337, pthread_mutexattr_destroy - .word .L338, pthread_mutexattr_getprotocol - .word .L339, pthread_mutexattr_getpshared - .word .L340, pthread_mutexattr_getrobust - .word .L341, pthread_mutexattr_gettype - .word .L342, pthread_mutexattr_init - .word .L343, pthread_mutexattr_setprotocol - .word .L344, pthread_mutexattr_setpshared - .word .L345, pthread_mutexattr_setrobust - .word .L346, pthread_mutexattr_settype - .word .L347, pthread_once - .word .L348, pthread_rwlock_destroy - .word .L349, pthread_rwlock_init - .word .L350, pthread_rwlock_rdlock - .word .L351, pthread_rwlock_timedrdlock - .word .L352, pthread_rwlock_timedwrlock - .word .L353, pthread_rwlock_tryrdlock - .word .L354, pthread_rwlock_trywrlock - .word .L355, pthread_rwlock_unlock - .word .L356, pthread_rwlock_wrlock - .word .L357, pthread_setcancelstate - .word .L358, pthread_setcanceltype - .word .L359, pthread_setschedparam - .word .L360, pthread_setschedprio - .word .L361, pthread_setspecific - .word .L362, pthread_sigmask - .word .L363, pthread_startup - .word .L364, pthread_testcancel - .word .L365, pthread_yield - .word .L366, putenv - .word .L367, puts - .word .L368, pwrite - .word .L369, qsort - .word .L370, raise - .word .L371, rand - .word .L372, random - .word .L373, read - .word .L374, readdir - .word .L375, readdir_r - .word .L376, readv - .word .L377, realloc - .word .L378, recv - .word .L379, recvfrom - .word .L380, recvmsg - .word .L381, remove - .word .L382, rename - .word .L383, rewinddir - .word .L384, rint - .word .L385, rintf - .word .L386, rintl - .word .L387, rmdir - .word .L388, round - .word .L389, roundf - .word .L390, roundl - .word .L391, scalbn - .word .L392, scalbnf - .word .L393, scanf - .word .L394, seekdir - .word .L395, select - .word .L396, sem_destroy - .word .L397, sem_getprotocol - .word .L398, sem_getvalue - .word .L399, sem_init - .word .L400, sem_post - .word .L401, sem_setprotocol - .word .L402, sem_timedwait - .word .L403, sem_trywait - .word .L404, sem_wait - .word .L405, send - .word .L406, sendfile - .word .L407, sendmsg - .word .L408, sendto - .word .L409, set_errno - .word .L410, setbuf - .word .L411, setenv - .word .L412, sethostname - .word .L413, setlocale - .word .L414, setlogmask - .word .L415, setsockopt - .word .L416, settimeofday - .word .L417, setvbuf - .word .L418, shutdown - .word .L419, sigaction - .word .L420, sigaddset - .word .L421, sigdelset - .word .L422, sigemptyset - .word .L423, sigfillset - .word .L424, sighold - .word .L425, sigignore - .word .L426, sigismember - .word .L427, signal - .word .L428, sigpause - .word .L429, sigpending - .word .L430, sigprocmask - .word .L431, sigqueue - .word .L432, sigrelse - .word .L433, sigset - .word .L434, sigsuspend - .word .L435, sigtimedwait - .word .L436, sigwait - .word .L437, sigwaitinfo - .word .L438, sin - .word .L439, sinf - .word .L440, sinh - .word .L441, sinhf - .word .L442, sinhl - .word .L443, sinl - .word .L444, sleep - .word .L445, snprintf - .word .L446, socket - .word .L447, sprintf - .word .L448, sqrt - .word .L449, sqrtf - .word .L450, sqrtl - .word .L451, srand - .word .L452, sscanf - .word .L453, stat - .word .L454, statfs - .word .L455, stpcpy - .word .L456, stpncpy - .word .L457, strcasecmp - .word .L458, strcasestr - .word .L459, strcat - .word .L460, strchr - .word .L461, strcmp - .word .L462, strcoll - .word .L463, strcpy - .word .L464, strcspn - .word .L465, strdup - .word .L466, stream_semgive - .word .L467, stream_semtake - .word .L468, strerror - .word .L469, strerror_r - .word .L470, strftime - .word .L471, strlen - .word .L472, strncasecmp - .word .L473, strncat - .word .L474, strncmp - .word .L475, strncpy - .word .L476, strndup - .word .L477, strnlen - .word .L478, strpbrk - .word .L479, strrchr - .word .L480, strsep - .word .L481, strsignal - .word .L482, strspn - .word .L483, strstr - .word .L484, strtod - .word .L485, strtof - .word .L486, strtoimax - .word .L487, strtok - .word .L488, strtok_r - .word .L489, strtol - .word .L490, strtold - .word .L491, strtoll - .word .L492, strtoul - .word .L493, strtoull - .word .L494, strtoumax - .word .L495, strxfrm - .word .L496, swab - .word .L497, sysconf - .word .L498, syslog - .word .L499, tan - .word .L500, tanf - .word .L501, tanh - .word .L502, tanhf - .word .L503, tanhl - .word .L504, tanl - .word .L505, tcdrain - .word .L506, tcflow - .word .L507, tcflush - .word .L508, tcgetattr - .word .L509, tcsetattr - .word .L510, tea_decrypt - .word .L511, tea_encrypt - .word .L512, telldir - .word .L513, tempnam - .word .L514, tgamma - .word .L515, time - .word .L516, tmpnam - .word .L517, trunc - .word .L518, truncate - .word .L519, truncf - .word .L520, truncl - .word .L521, uadd32x64 - .word .L522, uadd64 - .word .L523, ub32sqrtub16 - .word .L524, umul32 - .word .L525, umul32x64 - .word .L526, umul64 - .word .L527, uname - .word .L528, ungetc - .word .L529, unlink - .word .L530, unsetenv - .word .L531, usleep - .word .L532, usub64 - .word .L533, usub64x32 - .word .L534, vasprintf - .word .L535, vdprintf - .word .L536, vfork - .word .L537, vfprintf - .word .L538, vfscanf - .word .L539, vprintf - .word .L540, vsnprintf - .word .L541, vsprintf - .word .L542, vsscanf - .word .L543, vsyslog - .word .L544, waitpid - .word .L545, write - .word .L546, writev - .word .L547, xorshift128 - .word .L548, zalloc - .size globalTable, . - globalTable diff --git a/libs/libc/modlib/modlib_globals.S b/libs/libc/modlib/modlib_globals.S index 768cafa2f0..f365046638 100644 --- a/libs/libc/modlib/modlib_globals.S +++ b/libs/libc/modlib/modlib_globals.S @@ -1,1145 +1,77 @@ +#ifdef __CYGWIN__ +# define SYMBOL(s) s +# define WEAK .weak +# define GLOBAL .global +# define SECTION .data + .macro GLOBAL ep + .global SYMBOL(\ep) + .type SYMBOL(\ep), "object" + .endm + .macro SIZE ep + .endm +#elif defined(__ELF__) +# define SYMBOL(s) s +# define WEAK .weak +# define SECTION .data + .macro GLOBAL ep + .global SYMBOL(\ep) + .type SYMBOL(\ep), "object" + .endm + .macro SIZE ep + .size SYMBOL(\ep), . - SYMBOL(\ep) + .endm +#else +# define SYMBOL(s) _##s +# define WEAK .weak_definition +# define SECTION .section __DATA,__data + .macro GLOBAL ep + .private_extern SYMBOL(\ep) + .globl SYMBOL(\ep) + .endm + .macro SIZE ep + .endm +#endif + #if __SIZEOF_POINTER__ == 8 .macro globalEntry index, ep - .weak \ep - .quad .L\index - .quad \ep + WEAK SYMBOL(\ep) + .quad .l\index + .quad \ep .endm # define ALIGN 8 #else .macro globalEntry index, ep - .weak \ep - .long .L\index - .long \ep + WEAK SYMBOL(\ep) + .long .l\index + .long \ep .endm # define ALIGN 4 #endif - #ifdef __ARM_ARCH_ISA_THUMB2 # ifdef __ARM_ARCH_7M__ - .arch armv7e-m + .arch armv7e-m # elif defined ___ARM_ARCH 8 .arch armv8-m.base -# endif -# ifdef __ARM_ASM_SYNTAX_UNIFIED__ - .syntax unified -# endif - .thumb #endif +#ifdef __ARM_ASM_SYNTAX_UNIFIED__ + .syntax unified +#endif + .thumb +#endif + .data + .align ALIGN + GLOBAL globalNames - .data - .align ALIGN - .global globalNames - -globalNames: -.L0: .string "_ZdlPvj" -.L1: .string "__cos" -.L2: .string "__cxa_pure_virtual" -.L3: .string "__dso_handle" -.L4: .string "__dtoa_engine" -.L5: .string "__sin" -.L6: .string "__swap_uint32" -.L7: .string "__swap_uint64" -.L8: .string "__ultoa_invert" -.L9: .string "_exit" -.L10: .string "abort" -.L11: .string "abs" -.L12: .string "accept" -.L13: .string "access" -.L14: .string "acos" -.L15: .string "acosf" -.L16: .string "acosh" -.L17: .string "acoshf" -.L18: .string "acoshl" -.L19: .string "acosl" -.L20: .string "add_file_action" -.L21: .string "asin" -.L22: .string "asinf" -.L23: .string "asinh" -.L24: .string "asinhf" -.L25: .string "asinhl" -.L26: .string "asinl" -.L27: .string "asprintf" -.L28: .string "atan" -.L29: .string "atan2" -.L30: .string "atan2f" -.L31: .string "atan2l" -.L32: .string "atanf" -.L33: .string "atanh" -.L34: .string "atanhf" -.L35: .string "atanhl" -.L36: .string "atanl" -.L37: .string "b16atan2" -.L38: .string "b16cos" -.L39: .string "b16sin" -.L40: .string "basename" -.L41: .string "bind" -.L42: .string "boardctl" -.L43: .string "bsearch" -.L44: .string "cabs" -.L45: .string "cacheflush" -.L46: .string "calloc" -.L47: .string "cbrtf" -.L48: .string "ceil" -.L49: .string "ceilf" -.L50: .string "ceill" -.L51: .string "cfgetspeed" -.L52: .string "cfmakeraw" -.L53: .string "cfsetspeed" -.L54: .string "chdir" -.L55: .string "cimag" -.L56: .string "clearenv" -.L57: .string "clearerr" -.L58: .string "clock" -.L59: .string "close" -.L60: .string "closedir" -.L61: .string "connect" -.L62: .string "copysign" -.L63: .string "copysignf" -.L64: .string "copysignl" -.L65: .string "cos" -.L66: .string "cosf" -.L67: .string "cosh" -.L68: .string "coshf" -.L69: .string "coshl" -.L70: .string "cosl" -.L71: .string "crc16" -.L72: .string "crc16part" -.L73: .string "crc32" -.L74: .string "crc32part" -.L75: .string "crc64" -.L76: .string "crc64part" -.L77: .string "crc8" -.L78: .string "crc8ccitt" -.L79: .string "crc8part" -.L80: .string "creal" -.L81: .string "daemon" -.L82: .string "difftime" -.L83: .string "dirname" -.L84: .string "div" -.L85: .string "dlclose" -.L86: .string "dlerror" -.L87: .string "dlopen" -.L88: .string "dlsym" -.L89: .string "dlsymtab" -.L90: .string "dns_add_nameserver" -.L91: .string "dns_bind" -.L92: .string "dns_find_answer" -.L93: .string "dns_foreach_nameserver" -.L94: .string "dns_initialize" -.L95: .string "dns_notify_nameserver" -.L96: .string "dns_query" -.L97: .string "dns_register_notify" -.L98: .string "dns_save_answer" -.L99: .string "dns_semgive" -.L100: .string "dns_semtake" -.L101: .string "dns_unregister_notify" -.L102: .string "dprintf" -.L103: .string "dup" -.L104: .string "dup2" -.L105: .string "envpath_init" -.L106: .string "envpath_next" -.L107: .string "envpath_release" -.L108: .string "erf" -.L109: .string "erff" -.L110: .string "erfl" -.L111: .string "ether_ntoa" -.L112: .string "exec" -.L113: .string "exit" -.L114: .string "exp" -.L115: .string "expf" -.L116: .string "expl" -.L117: .string "explicit_bzero" -.L118: .string "fabs" -.L119: .string "fabsf" -.L120: .string "fabsl" -.L121: .string "fclose" -.L122: .string "fcntl" -.L123: .string "fdopen" -.L124: .string "feof" -.L125: .string "ferror" -.L126: .string "fflush" -.L127: .string "ffs" -.L128: .string "ffsl" -.L129: .string "ffsll" -.L130: .string "fgetc" -.L131: .string "fgetpos" -.L132: .string "fgets" -.L133: .string "fileno" -.L134: .string "floor" -.L135: .string "floorf" -.L136: .string "floorl" -.L137: .string "fls" -.L138: .string "flsl" -.L139: .string "flsll" -.L140: .string "fma" -.L141: .string "fmaf" -.L142: .string "fmod" -.L143: .string "fmodf" -.L144: .string "fmodl" -.L145: .string "fopen" -.L146: .string "fprintf" -.L147: .string "fputc" -.L148: .string "fputs" -.L149: .string "fread" -.L150: .string "free" -.L151: .string "freeaddrinfo" -.L152: .string "freopen" -.L153: .string "frexp" -.L154: .string "frexpf" -.L155: .string "frexpl" -.L156: .string "fscanf" -.L157: .string "fseek" -.L158: .string "fsetpos" -.L159: .string "fstat" -.L160: .string "fstatfs" -.L161: .string "fsync" -.L162: .string "ftell" -.L163: .string "ftruncate" -.L164: .string "fwrite" -.L165: .string "gai_strerror" -.L166: .string "gamma" -.L167: .string "getaddrinfo" -.L168: .string "getcwd" -.L169: .string "getenv" -.L170: .string "gethostbyaddr" -.L171: .string "gethostbyaddr_r" -.L172: .string "gethostbyname" -.L173: .string "gethostbyname_r" -.L174: .string "gethostname" -.L175: .string "getnameinfo" -.L176: .string "getopt" -.L177: .string "getoptargp" -.L178: .string "getoptindp" -.L179: .string "getoptoptp" -.L180: .string "getpeername" -.L181: .string "getpid" -.L182: .string "getprotobyname" -.L183: .string "getrandom" -.L184: .string "gets" -.L185: .string "gets_s" -.L186: .string "getservbyname" -.L187: .string "getservbyname_r" -.L188: .string "getsockname" -.L189: .string "getsockopt" -.L190: .string "gettimeofday" -.L191: .string "gmtime" -.L192: .string "gmtime_r" -.L193: .string "h_errno" -.L194: .string "htonl" -.L195: .string "htons" -.L196: .string "hypot" -.L197: .string "ilogb" -.L198: .string "ilogbf" -.L199: .string "imaxabs" -.L200: .string "in6addr_any" -.L201: .string "inet_addr" -.L202: .string "inet_aton" -.L203: .string "inet_ntoa" -.L204: .string "inet_ntop" -.L205: .string "inet_pton" -.L206: .string "ioctl" -.L207: .string "isatty" -.L208: .string "itoa" -.L209: .string "kill" -.L210: .string "labs" -.L211: .string "ldexp" -.L212: .string "ldexpf" -.L213: .string "ldexpl" -.L214: .string "ldiv" -.L215: .string "lgamma" -.L216: .string "lgamma_r" -.L217: .string "listen" -.L218: .string "llabs" -.L219: .string "lldiv" -.L220: .string "localeconv" -.L221: .string "log" -.L222: .string "log10" -.L223: .string "log10f" -.L224: .string "log10l" -.L225: .string "log2" -.L226: .string "log2f" -.L227: .string "log2l" -.L228: .string "logf" -.L229: .string "logl" -.L230: .string "lseek" -.L231: .string "malloc" -.L232: .string "match" -.L233: .string "meadow_mappings" -.L234: .string "memalign" -.L235: .string "memccpy" -.L236: .string "memchr" -.L237: .string "memcmp" -.L238: .string "memcpy" -.L239: .string "memmove" -.L240: .string "memrchr" -.L241: .string "memset" -.L242: .string "mkdir" -.L243: .string "mkfifo" -.L244: .string "mkfifo2" -.L245: .string "mkstemp" -.L246: .string "mktemp" -.L247: .string "mktime" -.L248: .string "mmap" -.L249: .string "modf" -.L250: .string "modff" -.L251: .string "modfl" -.L252: .string "mono_main" -.L253: .string "mono_should_run" -.L254: .string "mount" -.L255: .string "munmap" -.L256: .string "nanosleep" -.L257: .string "nrand" -.L258: .string "ntohl" -.L259: .string "ntohs" -.L260: .string "open" -.L261: .string "opendir" -.L262: .string "optarg" -.L263: .string "optind" -.L264: .string "optopt" -.L265: .string "perror" -.L266: .string "pipe" -.L267: .string "pipe2" -.L268: .string "poll" -.L269: .string "posix_spawnattr_dump" -.L270: .string "posix_spawnattr_getflags" -.L271: .string "posix_spawnattr_getschedparam" -.L272: .string "posix_spawnattr_getschedpolicy" -.L273: .string "posix_spawnattr_getsigmask" -.L274: .string "posix_spawnattr_init" -.L275: .string "posix_spawnattr_setflags" -.L276: .string "posix_spawnattr_setschedparam" -.L277: .string "posix_spawnattr_setschedpolicy" -.L278: .string "posix_spawnattr_setsigmask" -.L279: .string "pow" -.L280: .string "powf" -.L281: .string "powl" -.L282: .string "ppoll" -.L283: .string "prctl" -.L284: .string "pread" -.L285: .string "printf" -.L286: .string "pselect" -.L287: .string "psiginfo" -.L288: .string "psignal" -.L289: .string "pthread_attr_destroy" -.L290: .string "pthread_attr_getinheritsched" -.L291: .string "pthread_attr_getschedparam" -.L292: .string "pthread_attr_getschedpolicy" -.L293: .string "pthread_attr_getstack" -.L294: .string "pthread_attr_getstacksize" -.L295: .string "pthread_attr_init" -.L296: .string "pthread_attr_setinheritsched" -.L297: .string "pthread_attr_setschedparam" -.L298: .string "pthread_attr_setschedpolicy" -.L299: .string "pthread_attr_setstack" -.L300: .string "pthread_attr_setstacksize" -.L301: .string "pthread_barrier_destroy" -.L302: .string "pthread_barrier_init" -.L303: .string "pthread_barrier_wait" -.L304: .string "pthread_barrierattr_destroy" -.L305: .string "pthread_barrierattr_getpshared" -.L306: .string "pthread_barrierattr_init" -.L307: .string "pthread_barrierattr_setpshared" -.L308: .string "pthread_cancel" -.L309: .string "pthread_cleanup_pop" -.L310: .string "pthread_cleanup_push" -.L311: .string "pthread_cond_broadcast" -.L312: .string "pthread_cond_destroy" -.L313: .string "pthread_cond_init" -.L314: .string "pthread_cond_signal" -.L315: .string "pthread_cond_timedwait" -.L316: .string "pthread_cond_wait" -.L317: .string "pthread_condattr_destroy" -.L318: .string "pthread_condattr_init" -.L319: .string "pthread_create" -.L320: .string "pthread_detach" -.L321: .string "pthread_exit" -.L322: .string "pthread_get_stackaddr_np" -.L323: .string "pthread_get_stacksize_np" -.L324: .string "pthread_getschedparam" -.L325: .string "pthread_getspecific" -.L326: .string "pthread_join" -.L327: .string "pthread_key_create" -.L328: .string "pthread_key_delete" -.L329: .string "pthread_kill" -.L330: .string "pthread_mutex_consistent" -.L331: .string "pthread_mutex_destroy" -.L332: .string "pthread_mutex_init" -.L333: .string "pthread_mutex_lock" -.L334: .string "pthread_mutex_timedlock" -.L335: .string "pthread_mutex_trylock" -.L336: .string "pthread_mutex_unlock" -.L337: .string "pthread_mutexattr_destroy" -.L338: .string "pthread_mutexattr_getprotocol" -.L339: .string "pthread_mutexattr_getpshared" -.L340: .string "pthread_mutexattr_getrobust" -.L341: .string "pthread_mutexattr_gettype" -.L342: .string "pthread_mutexattr_init" -.L343: .string "pthread_mutexattr_setprotocol" -.L344: .string "pthread_mutexattr_setpshared" -.L345: .string "pthread_mutexattr_setrobust" -.L346: .string "pthread_mutexattr_settype" -.L347: .string "pthread_once" -.L348: .string "pthread_rwlock_destroy" -.L349: .string "pthread_rwlock_init" -.L350: .string "pthread_rwlock_rdlock" -.L351: .string "pthread_rwlock_timedrdlock" -.L352: .string "pthread_rwlock_timedwrlock" -.L353: .string "pthread_rwlock_tryrdlock" -.L354: .string "pthread_rwlock_trywrlock" -.L355: .string "pthread_rwlock_unlock" -.L356: .string "pthread_rwlock_wrlock" -.L357: .string "pthread_setcancelstate" -.L358: .string "pthread_setcanceltype" -.L359: .string "pthread_setschedparam" -.L360: .string "pthread_setschedprio" -.L361: .string "pthread_setspecific" -.L362: .string "pthread_sigmask" -.L363: .string "pthread_startup" -.L364: .string "pthread_testcancel" -.L365: .string "pthread_yield" -.L366: .string "putenv" -.L367: .string "puts" -.L368: .string "pwrite" -.L369: .string "qsort" -.L370: .string "raise" -.L371: .string "rand" -.L372: .string "random" -.L373: .string "read" -.L374: .string "readdir" -.L375: .string "readdir_r" -.L376: .string "readv" -.L377: .string "realloc" -.L378: .string "recv" -.L379: .string "recvfrom" -.L380: .string "recvmsg" -.L381: .string "remove" -.L382: .string "rename" -.L383: .string "rewinddir" -.L384: .string "rint" -.L385: .string "rintf" -.L386: .string "rintl" -.L387: .string "rmdir" -.L388: .string "round" -.L389: .string "roundf" -.L390: .string "roundl" -.L391: .string "scalbn" -.L392: .string "scalbnf" -.L393: .string "scanf" -.L394: .string "seekdir" -.L395: .string "select" -.L396: .string "sem_destroy" -.L397: .string "sem_getprotocol" -.L398: .string "sem_getvalue" -.L399: .string "sem_init" -.L400: .string "sem_post" -.L401: .string "sem_setprotocol" -.L402: .string "sem_timedwait" -.L403: .string "sem_trywait" -.L404: .string "sem_wait" -.L405: .string "send" -.L406: .string "sendfile" -.L407: .string "sendmsg" -.L408: .string "sendto" -.L409: .string "set_errno" -.L410: .string "setbuf" -.L411: .string "setenv" -.L412: .string "sethostname" -.L413: .string "setlocale" -.L414: .string "setlogmask" -.L415: .string "setsockopt" -.L416: .string "settimeofday" -.L417: .string "setvbuf" -.L418: .string "shutdown" -.L419: .string "sigaction" -.L420: .string "sigaddset" -.L421: .string "sigdelset" -.L422: .string "sigemptyset" -.L423: .string "sigfillset" -.L424: .string "sighold" -.L425: .string "sigignore" -.L426: .string "sigismember" -.L427: .string "signal" -.L428: .string "sigpause" -.L429: .string "sigpending" -.L430: .string "sigprocmask" -.L431: .string "sigqueue" -.L432: .string "sigrelse" -.L433: .string "sigset" -.L434: .string "sigsuspend" -.L435: .string "sigtimedwait" -.L436: .string "sigwait" -.L437: .string "sigwaitinfo" -.L438: .string "sin" -.L439: .string "sinf" -.L440: .string "sinh" -.L441: .string "sinhf" -.L442: .string "sinhl" -.L443: .string "sinl" -.L444: .string "sleep" -.L445: .string "snprintf" -.L446: .string "socket" -.L447: .string "sprintf" -.L448: .string "sqrt" -.L449: .string "sqrtf" -.L450: .string "sqrtl" -.L451: .string "srand" -.L452: .string "sscanf" -.L453: .string "stat" -.L454: .string "statfs" -.L455: .string "stpcpy" -.L456: .string "stpncpy" -.L457: .string "strcasecmp" -.L458: .string "strcasestr" -.L459: .string "strcat" -.L460: .string "strchr" -.L461: .string "strcmp" -.L462: .string "strcoll" -.L463: .string "strcpy" -.L464: .string "strcspn" -.L465: .string "strdup" -.L466: .string "stream_semgive" -.L467: .string "stream_semtake" -.L468: .string "strerror" -.L469: .string "strerror_r" -.L470: .string "strftime" -.L471: .string "strlen" -.L472: .string "strncasecmp" -.L473: .string "strncat" -.L474: .string "strncmp" -.L475: .string "strncpy" -.L476: .string "strndup" -.L477: .string "strnlen" -.L478: .string "strpbrk" -.L479: .string "strrchr" -.L480: .string "strsep" -.L481: .string "strsignal" -.L482: .string "strspn" -.L483: .string "strstr" -.L484: .string "strtod" -.L485: .string "strtof" -.L486: .string "strtoimax" -.L487: .string "strtok" -.L488: .string "strtok_r" -.L489: .string "strtol" -.L490: .string "strtold" -.L491: .string "strtoll" -.L492: .string "strtoul" -.L493: .string "strtoull" -.L494: .string "strtoumax" -.L495: .string "strxfrm" -.L496: .string "swab" -.L497: .string "sysconf" -.L498: .string "syslog" -.L499: .string "tan" -.L500: .string "tanf" -.L501: .string "tanh" -.L502: .string "tanhf" -.L503: .string "tanhl" -.L504: .string "tanl" -.L505: .string "tcdrain" -.L506: .string "tcflow" -.L507: .string "tcflush" -.L508: .string "tcgetattr" -.L509: .string "tcsetattr" -.L510: .string "tea_decrypt" -.L511: .string "tea_encrypt" -.L512: .string "telldir" -.L513: .string "tempnam" -.L514: .string "tgamma" -.L515: .string "time" -.L516: .string "tmpnam" -.L517: .string "trunc" -.L518: .string "truncate" -.L519: .string "truncf" -.L520: .string "truncl" -.L521: .string "uadd32x64" -.L522: .string "uadd64" -.L523: .string "ub32sqrtub16" -.L524: .string "umul32" -.L525: .string "umul32x64" -.L526: .string "umul64" -.L527: .string "uname" -.L528: .string "ungetc" -.L529: .string "unlink" -.L530: .string "unsetenv" -.L531: .string "usleep" -.L532: .string "usub64" -.L533: .string "usub64x32" -.L534: .string "vasprintf" -.L535: .string "vdprintf" -.L536: .string "vfork" -.L537: .string "vfprintf" -.L538: .string "vfscanf" -.L539: .string "vprintf" -.L540: .string "vsnprintf" -.L541: .string "vsprintf" -.L542: .string "vsscanf" -.L543: .string "vsyslog" -.L544: .string "waitpid" -.L545: .string "write" -.L546: .string "writev" -.L547: .string "xorshift128" -.L548: .string "zalloc" - .size globalNames, . - globalNames +SYMBOL(globalNames): + SIZE globalNames .align ALIGN - .global nGlobals - .type nGlobals, "object" -nGlobals: - .word 549 - .size nGlobals, . - nGlobals + GLOBAL nGlobals +SYMBOL(nGlobals): + .word 0 + SIZE nGlobals .align ALIGN - .global globalTable - .type globalTable, "object" -globalTable: - globalEntry 0, _ZdlPvj - globalEntry 1, __cos - globalEntry 2, __cxa_pure_virtual - globalEntry 3, __dso_handle - globalEntry 4, __dtoa_engine - globalEntry 5, __sin - globalEntry 6, __swap_uint32 - globalEntry 7, __swap_uint64 - globalEntry 8, __ultoa_invert - globalEntry 9, _exit - globalEntry 10, abort - globalEntry 11, abs - globalEntry 12, accept - globalEntry 13, access - globalEntry 14, acos - globalEntry 15, acosf - globalEntry 16, acosh - globalEntry 17, acoshf - globalEntry 18, acoshl - globalEntry 19, acosl - globalEntry 20, add_file_action - globalEntry 21, asin - globalEntry 22, asinf - globalEntry 23, asinh - globalEntry 24, asinhf - globalEntry 25, asinhl - globalEntry 26, asinl - globalEntry 27, asprintf - globalEntry 28, atan - globalEntry 29, atan2 - globalEntry 30, atan2f - globalEntry 31, atan2l - globalEntry 32, atanf - globalEntry 33, atanh - globalEntry 34, atanhf - globalEntry 35, atanhl - globalEntry 36, atanl - globalEntry 37, b16atan2 - globalEntry 38, b16cos - globalEntry 39, b16sin - globalEntry 40, basename - globalEntry 41, bind - globalEntry 42, boardctl - globalEntry 43, bsearch - globalEntry 44, cabs - globalEntry 45, cacheflush - globalEntry 46, calloc - globalEntry 47, cbrtf - globalEntry 48, ceil - globalEntry 49, ceilf - globalEntry 50, ceill - globalEntry 51, cfgetspeed - globalEntry 52, cfmakeraw - globalEntry 53, cfsetspeed - globalEntry 54, chdir - globalEntry 55, cimag - globalEntry 56, clearenv - globalEntry 57, clearerr - globalEntry 58, clock - globalEntry 59, close - globalEntry 60, closedir - globalEntry 61, connect - globalEntry 62, copysign - globalEntry 63, copysignf - globalEntry 64, copysignl - globalEntry 65, cos - globalEntry 66, cosf - globalEntry 67, cosh - globalEntry 68, coshf - globalEntry 69, coshl - globalEntry 70, cosl - globalEntry 71, crc16 - globalEntry 72, crc16part - globalEntry 73, crc32 - globalEntry 74, crc32part - globalEntry 75, crc64 - globalEntry 76, crc64part - globalEntry 77, crc8 - globalEntry 78, crc8ccitt - globalEntry 79, crc8part - globalEntry 80, creal - globalEntry 81, daemon - globalEntry 82, difftime - globalEntry 83, dirname - globalEntry 84, div - globalEntry 85, dlclose - globalEntry 86, dlerror - globalEntry 87, dlopen - globalEntry 88, dlsym - globalEntry 89, dlsymtab - globalEntry 90, dns_add_nameserver - globalEntry 91, dns_bind - globalEntry 92, dns_find_answer - globalEntry 93, dns_foreach_nameserver - globalEntry 94, dns_initialize - globalEntry 95, dns_notify_nameserver - globalEntry 96, dns_query - globalEntry 97, dns_register_notify - globalEntry 98, dns_save_answer - globalEntry 99, dns_semgive - globalEntry 100, dns_semtake - globalEntry 101, dns_unregister_notify - globalEntry 102, dprintf - globalEntry 103, dup - globalEntry 104, dup2 - globalEntry 105, envpath_init - globalEntry 106, envpath_next - globalEntry 107, envpath_release - globalEntry 108, erf - globalEntry 109, erff - globalEntry 110, erfl - globalEntry 111, ether_ntoa - globalEntry 112, exec - globalEntry 113, exit - globalEntry 114, exp - globalEntry 115, expf - globalEntry 116, expl - globalEntry 117, explicit_bzero - globalEntry 118, fabs - globalEntry 119, fabsf - globalEntry 120, fabsl - globalEntry 121, fclose - globalEntry 122, fcntl - globalEntry 123, fdopen - globalEntry 124, feof - globalEntry 125, ferror - globalEntry 126, fflush - globalEntry 127, ffs - globalEntry 128, ffsl - globalEntry 129, ffsll - globalEntry 130, fgetc - globalEntry 131, fgetpos - globalEntry 132, fgets - globalEntry 133, fileno - globalEntry 134, floor - globalEntry 135, floorf - globalEntry 136, floorl - globalEntry 137, fls - globalEntry 138, flsl - globalEntry 139, flsll - globalEntry 140, fma - globalEntry 141, fmaf - globalEntry 142, fmod - globalEntry 143, fmodf - globalEntry 144, fmodl - globalEntry 145, fopen - globalEntry 146, fprintf - globalEntry 147, fputc - globalEntry 148, fputs - globalEntry 149, fread - globalEntry 150, free - globalEntry 151, freeaddrinfo - globalEntry 152, freopen - globalEntry 153, frexp - globalEntry 154, frexpf - globalEntry 155, frexpl - globalEntry 156, fscanf - globalEntry 157, fseek - globalEntry 158, fsetpos - globalEntry 159, fstat - globalEntry 160, fstatfs - globalEntry 161, fsync - globalEntry 162, ftell - globalEntry 163, ftruncate - globalEntry 164, fwrite - globalEntry 165, gai_strerror - globalEntry 166, gamma - globalEntry 167, getaddrinfo - globalEntry 168, getcwd - globalEntry 169, getenv - globalEntry 170, gethostbyaddr - globalEntry 171, gethostbyaddr_r - globalEntry 172, gethostbyname - globalEntry 173, gethostbyname_r - globalEntry 174, gethostname - globalEntry 175, getnameinfo - globalEntry 176, getopt - globalEntry 177, getoptargp - globalEntry 178, getoptindp - globalEntry 179, getoptoptp - globalEntry 180, getpeername - globalEntry 181, getpid - globalEntry 182, getprotobyname - globalEntry 183, getrandom - globalEntry 184, gets - globalEntry 185, gets_s - globalEntry 186, getservbyname - globalEntry 187, getservbyname_r - globalEntry 188, getsockname - globalEntry 189, getsockopt - globalEntry 190, gettimeofday - globalEntry 191, gmtime - globalEntry 192, gmtime_r - globalEntry 193, h_errno - globalEntry 194, htonl - globalEntry 195, htons - globalEntry 196, hypot - globalEntry 197, ilogb - globalEntry 198, ilogbf - globalEntry 199, imaxabs - globalEntry 200, in6addr_any - globalEntry 201, inet_addr - globalEntry 202, inet_aton - globalEntry 203, inet_ntoa - globalEntry 204, inet_ntop - globalEntry 205, inet_pton - globalEntry 206, ioctl - globalEntry 207, isatty - globalEntry 208, itoa - globalEntry 209, kill - globalEntry 210, labs - globalEntry 211, ldexp - globalEntry 212, ldexpf - globalEntry 213, ldexpl - globalEntry 214, ldiv - globalEntry 215, lgamma - globalEntry 216, lgamma_r - globalEntry 217, listen - globalEntry 218, llabs - globalEntry 219, lldiv - globalEntry 220, localeconv - globalEntry 221, log - globalEntry 222, log10 - globalEntry 223, log10f - globalEntry 224, log10l - globalEntry 225, log2 - globalEntry 226, log2f - globalEntry 227, log2l - globalEntry 228, logf - globalEntry 229, logl - globalEntry 230, lseek - globalEntry 231, malloc - globalEntry 232, match - globalEntry 233, meadow_mappings - globalEntry 234, memalign - globalEntry 235, memccpy - globalEntry 236, memchr - globalEntry 237, memcmp - globalEntry 238, memcpy - globalEntry 239, memmove - globalEntry 240, memrchr - globalEntry 241, memset - globalEntry 242, mkdir - globalEntry 243, mkfifo - globalEntry 244, mkfifo2 - globalEntry 245, mkstemp - globalEntry 246, mktemp - globalEntry 247, mktime - globalEntry 248, mmap - globalEntry 249, modf - globalEntry 250, modff - globalEntry 251, modfl - globalEntry 252, mono_main - globalEntry 253, mono_should_run - globalEntry 254, mount - globalEntry 255, munmap - globalEntry 256, nanosleep - globalEntry 257, nrand - globalEntry 258, ntohl - globalEntry 259, ntohs - globalEntry 260, open - globalEntry 261, opendir - globalEntry 262, optarg - globalEntry 263, optind - globalEntry 264, optopt - globalEntry 265, perror - globalEntry 266, pipe - globalEntry 267, pipe2 - globalEntry 268, poll - globalEntry 269, posix_spawnattr_dump - globalEntry 270, posix_spawnattr_getflags - globalEntry 271, posix_spawnattr_getschedparam - globalEntry 272, posix_spawnattr_getschedpolicy - globalEntry 273, posix_spawnattr_getsigmask - globalEntry 274, posix_spawnattr_init - globalEntry 275, posix_spawnattr_setflags - globalEntry 276, posix_spawnattr_setschedparam - globalEntry 277, posix_spawnattr_setschedpolicy - globalEntry 278, posix_spawnattr_setsigmask - globalEntry 279, pow - globalEntry 280, powf - globalEntry 281, powl - globalEntry 282, ppoll - globalEntry 283, prctl - globalEntry 284, pread - globalEntry 285, printf - globalEntry 286, pselect - globalEntry 287, psiginfo - globalEntry 288, psignal - globalEntry 289, pthread_attr_destroy - globalEntry 290, pthread_attr_getinheritsched - globalEntry 291, pthread_attr_getschedparam - globalEntry 292, pthread_attr_getschedpolicy - globalEntry 293, pthread_attr_getstack - globalEntry 294, pthread_attr_getstacksize - globalEntry 295, pthread_attr_init - globalEntry 296, pthread_attr_setinheritsched - globalEntry 297, pthread_attr_setschedparam - globalEntry 298, pthread_attr_setschedpolicy - globalEntry 299, pthread_attr_setstack - globalEntry 300, pthread_attr_setstacksize - globalEntry 301, pthread_barrier_destroy - globalEntry 302, pthread_barrier_init - globalEntry 303, pthread_barrier_wait - globalEntry 304, pthread_barrierattr_destroy - globalEntry 305, pthread_barrierattr_getpshared - globalEntry 306, pthread_barrierattr_init - globalEntry 307, pthread_barrierattr_setpshared - globalEntry 308, pthread_cancel - globalEntry 309, pthread_cleanup_pop - globalEntry 310, pthread_cleanup_push - globalEntry 311, pthread_cond_broadcast - globalEntry 312, pthread_cond_destroy - globalEntry 313, pthread_cond_init - globalEntry 314, pthread_cond_signal - globalEntry 315, pthread_cond_timedwait - globalEntry 316, pthread_cond_wait - globalEntry 317, pthread_condattr_destroy - globalEntry 318, pthread_condattr_init - globalEntry 319, pthread_create - globalEntry 320, pthread_detach - globalEntry 321, pthread_exit - globalEntry 322, pthread_get_stackaddr_np - globalEntry 323, pthread_get_stacksize_np - globalEntry 324, pthread_getschedparam - globalEntry 325, pthread_getspecific - globalEntry 326, pthread_join - globalEntry 327, pthread_key_create - globalEntry 328, pthread_key_delete - globalEntry 329, pthread_kill - globalEntry 330, pthread_mutex_consistent - globalEntry 331, pthread_mutex_destroy - globalEntry 332, pthread_mutex_init - globalEntry 333, pthread_mutex_lock - globalEntry 334, pthread_mutex_timedlock - globalEntry 335, pthread_mutex_trylock - globalEntry 336, pthread_mutex_unlock - globalEntry 337, pthread_mutexattr_destroy - globalEntry 338, pthread_mutexattr_getprotocol - globalEntry 339, pthread_mutexattr_getpshared - globalEntry 340, pthread_mutexattr_getrobust - globalEntry 341, pthread_mutexattr_gettype - globalEntry 342, pthread_mutexattr_init - globalEntry 343, pthread_mutexattr_setprotocol - globalEntry 344, pthread_mutexattr_setpshared - globalEntry 345, pthread_mutexattr_setrobust - globalEntry 346, pthread_mutexattr_settype - globalEntry 347, pthread_once - globalEntry 348, pthread_rwlock_destroy - globalEntry 349, pthread_rwlock_init - globalEntry 350, pthread_rwlock_rdlock - globalEntry 351, pthread_rwlock_timedrdlock - globalEntry 352, pthread_rwlock_timedwrlock - globalEntry 353, pthread_rwlock_tryrdlock - globalEntry 354, pthread_rwlock_trywrlock - globalEntry 355, pthread_rwlock_unlock - globalEntry 356, pthread_rwlock_wrlock - globalEntry 357, pthread_setcancelstate - globalEntry 358, pthread_setcanceltype - globalEntry 359, pthread_setschedparam - globalEntry 360, pthread_setschedprio - globalEntry 361, pthread_setspecific - globalEntry 362, pthread_sigmask - globalEntry 363, pthread_startup - globalEntry 364, pthread_testcancel - globalEntry 365, pthread_yield - globalEntry 366, putenv - globalEntry 367, puts - globalEntry 368, pwrite - globalEntry 369, qsort - globalEntry 370, raise - globalEntry 371, rand - globalEntry 372, random - globalEntry 373, read - globalEntry 374, readdir - globalEntry 375, readdir_r - globalEntry 376, readv - globalEntry 377, realloc - globalEntry 378, recv - globalEntry 379, recvfrom - globalEntry 380, recvmsg - globalEntry 381, remove - globalEntry 382, rename - globalEntry 383, rewinddir - globalEntry 384, rint - globalEntry 385, rintf - globalEntry 386, rintl - globalEntry 387, rmdir - globalEntry 388, round - globalEntry 389, roundf - globalEntry 390, roundl - globalEntry 391, scalbn - globalEntry 392, scalbnf - globalEntry 393, scanf - globalEntry 394, seekdir - globalEntry 395, select - globalEntry 396, sem_destroy - globalEntry 397, sem_getprotocol - globalEntry 398, sem_getvalue - globalEntry 399, sem_init - globalEntry 400, sem_post - globalEntry 401, sem_setprotocol - globalEntry 402, sem_timedwait - globalEntry 403, sem_trywait - globalEntry 404, sem_wait - globalEntry 405, send - globalEntry 406, sendfile - globalEntry 407, sendmsg - globalEntry 408, sendto - globalEntry 409, set_errno - globalEntry 410, setbuf - globalEntry 411, setenv - globalEntry 412, sethostname - globalEntry 413, setlocale - globalEntry 414, setlogmask - globalEntry 415, setsockopt - globalEntry 416, settimeofday - globalEntry 417, setvbuf - globalEntry 418, shutdown - globalEntry 419, sigaction - globalEntry 420, sigaddset - globalEntry 421, sigdelset - globalEntry 422, sigemptyset - globalEntry 423, sigfillset - globalEntry 424, sighold - globalEntry 425, sigignore - globalEntry 426, sigismember - globalEntry 427, signal - globalEntry 428, sigpause - globalEntry 429, sigpending - globalEntry 430, sigprocmask - globalEntry 431, sigqueue - globalEntry 432, sigrelse - globalEntry 433, sigset - globalEntry 434, sigsuspend - globalEntry 435, sigtimedwait - globalEntry 436, sigwait - globalEntry 437, sigwaitinfo - globalEntry 438, sin - globalEntry 439, sinf - globalEntry 440, sinh - globalEntry 441, sinhf - globalEntry 442, sinhl - globalEntry 443, sinl - globalEntry 444, sleep - globalEntry 445, snprintf - globalEntry 446, socket - globalEntry 447, sprintf - globalEntry 448, sqrt - globalEntry 449, sqrtf - globalEntry 450, sqrtl - globalEntry 451, srand - globalEntry 452, sscanf - globalEntry 453, stat - globalEntry 454, statfs - globalEntry 455, stpcpy - globalEntry 456, stpncpy - globalEntry 457, strcasecmp - globalEntry 458, strcasestr - globalEntry 459, strcat - globalEntry 460, strchr - globalEntry 461, strcmp - globalEntry 462, strcoll - globalEntry 463, strcpy - globalEntry 464, strcspn - globalEntry 465, strdup - globalEntry 466, stream_semgive - globalEntry 467, stream_semtake - globalEntry 468, strerror - globalEntry 469, strerror_r - globalEntry 470, strftime - globalEntry 471, strlen - globalEntry 472, strncasecmp - globalEntry 473, strncat - globalEntry 474, strncmp - globalEntry 475, strncpy - globalEntry 476, strndup - globalEntry 477, strnlen - globalEntry 478, strpbrk - globalEntry 479, strrchr - globalEntry 480, strsep - globalEntry 481, strsignal - globalEntry 482, strspn - globalEntry 483, strstr - globalEntry 484, strtod - globalEntry 485, strtof - globalEntry 486, strtoimax - globalEntry 487, strtok - globalEntry 488, strtok_r - globalEntry 489, strtol - globalEntry 490, strtold - globalEntry 491, strtoll - globalEntry 492, strtoul - globalEntry 493, strtoull - globalEntry 494, strtoumax - globalEntry 495, strxfrm - globalEntry 496, swab - globalEntry 497, sysconf - globalEntry 498, syslog - globalEntry 499, tan - globalEntry 500, tanf - globalEntry 501, tanh - globalEntry 502, tanhf - globalEntry 503, tanhl - globalEntry 504, tanl - globalEntry 505, tcdrain - globalEntry 506, tcflow - globalEntry 507, tcflush - globalEntry 508, tcgetattr - globalEntry 509, tcsetattr - globalEntry 510, tea_decrypt - globalEntry 511, tea_encrypt - globalEntry 512, telldir - globalEntry 513, tempnam - globalEntry 514, tgamma - globalEntry 515, time - globalEntry 516, tmpnam - globalEntry 517, trunc - globalEntry 518, truncate - globalEntry 519, truncf - globalEntry 520, truncl - globalEntry 521, uadd32x64 - globalEntry 522, uadd64 - globalEntry 523, ub32sqrtub16 - globalEntry 524, umul32 - globalEntry 525, umul32x64 - globalEntry 526, umul64 - globalEntry 527, uname - globalEntry 528, ungetc - globalEntry 529, unlink - globalEntry 530, unsetenv - globalEntry 531, usleep - globalEntry 532, usub64 - globalEntry 533, usub64x32 - globalEntry 534, vasprintf - globalEntry 535, vdprintf - globalEntry 536, vfork - globalEntry 537, vfprintf - globalEntry 538, vfscanf - globalEntry 539, vprintf - globalEntry 540, vsnprintf - globalEntry 541, vsprintf - globalEntry 542, vsscanf - globalEntry 543, vsyslog - globalEntry 544, waitpid - globalEntry 545, write - globalEntry 546, writev - globalEntry 547, xorshift128 - globalEntry 548, zalloc - .size globalTable, . - globalTable + GLOBAL globalTable +SYMBOL(globalTable): + SIZE globalTable diff --git a/libs/libc/modlib/modlib_loadhdrs.c b/libs/libc/modlib/modlib_loadhdrs.c index 42492844de..d1776f8446 100644 --- a/libs/libc/modlib/modlib_loadhdrs.c +++ b/libs/libc/modlib/modlib_loadhdrs.c @@ -70,14 +70,6 @@ int modlib_loadhdrs(FAR struct mod_loadinfo_s *loadinfo) return -EINVAL; } - /* Verify that there are program headers */ - - if (loadinfo->ehdr.e_phnum < 1) - { - berr("ERROR: No program headers(?)\n"); - return -EINVAL; - } - /* Get the total size of the section header table */ shdrsize = (size_t)loadinfo->ehdr.e_shentsize * @@ -88,19 +80,9 @@ int modlib_loadhdrs(FAR struct mod_loadinfo_s *loadinfo) return -ESPIPE; } - /* Get the total size of the program header table */ - - phdrsize = (size_t)loadinfo->ehdr.e_phentsize * - (size_t)loadinfo->ehdr.e_phnum; - if (loadinfo->ehdr.e_phoff + phdrsize > loadinfo->filelen) - { - berr("ERROR: Insufficent space in file for program header table\n"); - return -ESPIPE; - } - /* Allocate memory to hold a working copy of the sector header table */ - loadinfo->shdr = (FAR FAR Elf_Shdr *)lib_malloc(shdrsize); + loadinfo->shdr = (FAR Elf_Shdr *)lib_malloc(shdrsize); if (!loadinfo->shdr) { berr("ERROR: Failed to allocate the section header table. Size: %ld\n", @@ -117,26 +99,43 @@ int modlib_loadhdrs(FAR struct mod_loadinfo_s *loadinfo) berr("ERROR: Failed to read section header table: %d\n", ret); } - /* Allocate memory to hold a working copy of the program header table */ - - loadinfo->phdr = (FAR FAR Elf_Phdr *)lib_malloc(phdrsize); - if (!loadinfo->shdr) + if (loadinfo->ehdr.e_phnum > 0) { - lib_free((FAR void *)loadinfo->shdr); - berr("ERROR: Failed to allocate the program header table. Size: %ld\n", - (long)phdrsize); - return -ENOMEM; + /* Get the total size of the program header table */ + + phdrsize = (size_t)loadinfo->ehdr.e_phentsize * + (size_t)loadinfo->ehdr.e_phnum; + if (loadinfo->ehdr.e_phoff + phdrsize > loadinfo->filelen) + { + berr("ERROR: Insufficent space for program header table\n"); + return -ESPIPE; + } + + /* Allocate memory to hold a working copy of the program header table */ + + loadinfo->phdr = (FAR Elf_Phdr *)lib_malloc(phdrsize); + if (!loadinfo->phdr) + { + lib_free((FAR void *)loadinfo->shdr); + berr("ERROR: Failed to allocate the program header table." + "Size: %ld\n", (long)phdrsize); + return -ENOMEM; + } + + /* Read the program header table into memory */ + + ret = modlib_read(loadinfo, (FAR uint8_t *)loadinfo->phdr, phdrsize, + loadinfo->ehdr.e_phoff); + if (ret < 0) + { + berr("ERROR: Failed to read program header table: %d\n", ret); + lib_free((FAR void *)loadinfo->phdr); + lib_free((FAR void *)loadinfo->shdr); + } } - - /* Read the program header table into memory */ - - ret = modlib_read(loadinfo, (FAR uint8_t *)loadinfo->phdr, phdrsize, - loadinfo->ehdr.e_phoff); - if (ret < 0) + else { - berr("ERROR: Failed to read program header table: %d\n", ret); - lib_free((FAR void *)loadinfo->phdr); - lib_free((FAR void *)loadinfo->shdr); + loadinfo->phdr = NULL; } return ret; diff --git a/libs/libc/modlib/modlib_verify.c b/libs/libc/modlib/modlib_verify.c index 6fa4a9e055..29e77a958b 100644 --- a/libs/libc/modlib/modlib_verify.c +++ b/libs/libc/modlib/modlib_verify.c @@ -80,11 +80,11 @@ int modlib_verifyheader(FAR const Elf_Ehdr *ehdr) if (ehdr->e_type != ET_REL) { - if (ehdr->e_type != ET_DYN) - { - berr("ERROR: Not a relocatable file: e_type=%d\n", ehdr->e_type); - return -EINVAL; - } + if (ehdr->e_type != ET_DYN) + { + berr("ERROR: Not a relocatable file: e_type=%d\n", ehdr->e_type); + return -EINVAL; + } } /* Verify that this file works with the currently configured architecture */ diff --git a/libs/libc/modlib/modlib_x32_globals.S b/libs/libc/modlib/modlib_x32_globals.S deleted file mode 100644 index ad195372c0..0000000000 --- a/libs/libc/modlib/modlib_x32_globals.S +++ /dev/null @@ -1,1116 +0,0 @@ - .data - .align 4 - .global globalNames - -globalNames: -.L0: .string "_ZdlPvj" -.L1: .string "__cos" -.L2: .string "__cxa_pure_virtual" -.L3: .string "__dso_handle" -.L4: .string "__dtoa_engine" -.L5: .string "__sin" -.L6: .string "__swap_uint32" -.L7: .string "__swap_uint64" -.L8: .string "__ultoa_invert" -.L9: .string "_exit" -.L10: .string "abort" -.L11: .string "abs" -.L12: .string "accept" -.L13: .string "access" -.L14: .string "acos" -.L15: .string "acosf" -.L16: .string "acosh" -.L17: .string "acoshf" -.L18: .string "acoshl" -.L19: .string "acosl" -.L20: .string "add_file_action" -.L21: .string "asin" -.L22: .string "asinf" -.L23: .string "asinh" -.L24: .string "asinhf" -.L25: .string "asinhl" -.L26: .string "asinl" -.L27: .string "asprintf" -.L28: .string "atan" -.L29: .string "atan2" -.L30: .string "atan2f" -.L31: .string "atan2l" -.L32: .string "atanf" -.L33: .string "atanh" -.L34: .string "atanhf" -.L35: .string "atanhl" -.L36: .string "atanl" -.L37: .string "b16atan2" -.L38: .string "b16cos" -.L39: .string "b16sin" -.L40: .string "basename" -.L41: .string "bind" -.L42: .string "boardctl" -.L43: .string "bsearch" -.L44: .string "cabs" -.L45: .string "cacheflush" -.L46: .string "calloc" -.L47: .string "cbrtf" -.L48: .string "ceil" -.L49: .string "ceilf" -.L50: .string "ceill" -.L51: .string "cfgetspeed" -.L52: .string "cfmakeraw" -.L53: .string "cfsetspeed" -.L54: .string "chdir" -.L55: .string "cimag" -.L56: .string "clearenv" -.L57: .string "clearerr" -.L58: .string "clock" -.L59: .string "close" -.L60: .string "closedir" -.L61: .string "connect" -.L62: .string "copysign" -.L63: .string "copysignf" -.L64: .string "copysignl" -.L65: .string "cos" -.L66: .string "cosf" -.L67: .string "cosh" -.L68: .string "coshf" -.L69: .string "coshl" -.L70: .string "cosl" -.L71: .string "crc16" -.L72: .string "crc16part" -.L73: .string "crc32" -.L74: .string "crc32part" -.L75: .string "crc64" -.L76: .string "crc64part" -.L77: .string "crc8" -.L78: .string "crc8ccitt" -.L79: .string "crc8part" -.L80: .string "creal" -.L81: .string "daemon" -.L82: .string "difftime" -.L83: .string "dirname" -.L84: .string "div" -.L85: .string "dlclose" -.L86: .string "dlerror" -.L87: .string "dlopen" -.L88: .string "dlsym" -.L89: .string "dlsymtab" -.L90: .string "dns_add_nameserver" -.L91: .string "dns_bind" -.L92: .string "dns_find_answer" -.L93: .string "dns_foreach_nameserver" -.L94: .string "dns_initialize" -.L95: .string "dns_notify_nameserver" -.L96: .string "dns_query" -.L97: .string "dns_register_notify" -.L98: .string "dns_save_answer" -.L99: .string "dns_semgive" -.L100: .string "dns_semtake" -.L101: .string "dns_unregister_notify" -.L102: .string "dprintf" -.L103: .string "dup" -.L104: .string "dup2" -.L105: .string "envpath_init" -.L106: .string "envpath_next" -.L107: .string "envpath_release" -.L108: .string "erf" -.L109: .string "erff" -.L110: .string "erfl" -.L111: .string "ether_ntoa" -.L112: .string "exec" -.L113: .string "exit" -.L114: .string "exp" -.L115: .string "expf" -.L116: .string "expl" -.L117: .string "explicit_bzero" -.L118: .string "fabs" -.L119: .string "fabsf" -.L120: .string "fabsl" -.L121: .string "fclose" -.L122: .string "fcntl" -.L123: .string "fdopen" -.L124: .string "feof" -.L125: .string "ferror" -.L126: .string "fflush" -.L127: .string "ffs" -.L128: .string "ffsl" -.L129: .string "ffsll" -.L130: .string "fgetc" -.L131: .string "fgetpos" -.L132: .string "fgets" -.L133: .string "fileno" -.L134: .string "floor" -.L135: .string "floorf" -.L136: .string "floorl" -.L137: .string "fls" -.L138: .string "flsl" -.L139: .string "flsll" -.L140: .string "fma" -.L141: .string "fmaf" -.L142: .string "fmod" -.L143: .string "fmodf" -.L144: .string "fmodl" -.L145: .string "fopen" -.L146: .string "fprintf" -.L147: .string "fputc" -.L148: .string "fputs" -.L149: .string "fread" -.L150: .string "free" -.L151: .string "freeaddrinfo" -.L152: .string "freopen" -.L153: .string "frexp" -.L154: .string "frexpf" -.L155: .string "frexpl" -.L156: .string "fscanf" -.L157: .string "fseek" -.L158: .string "fsetpos" -.L159: .string "fstat" -.L160: .string "fstatfs" -.L161: .string "fsync" -.L162: .string "ftell" -.L163: .string "ftruncate" -.L164: .string "fwrite" -.L165: .string "gai_strerror" -.L166: .string "gamma" -.L167: .string "getaddrinfo" -.L168: .string "getcwd" -.L169: .string "getenv" -.L170: .string "gethostbyaddr" -.L171: .string "gethostbyaddr_r" -.L172: .string "gethostbyname" -.L173: .string "gethostbyname_r" -.L174: .string "gethostname" -.L175: .string "getnameinfo" -.L176: .string "getopt" -.L177: .string "getoptargp" -.L178: .string "getoptindp" -.L179: .string "getoptoptp" -.L180: .string "getpeername" -.L181: .string "getpid" -.L182: .string "getprotobyname" -.L183: .string "getrandom" -.L184: .string "gets" -.L185: .string "gets_s" -.L186: .string "getservbyname" -.L187: .string "getservbyname_r" -.L188: .string "getsockname" -.L189: .string "getsockopt" -.L190: .string "gettimeofday" -.L191: .string "gmtime" -.L192: .string "gmtime_r" -.L193: .string "h_errno" -.L194: .string "htonl" -.L195: .string "htons" -.L196: .string "hypot" -.L197: .string "ilogb" -.L198: .string "ilogbf" -.L199: .string "imaxabs" -.L200: .string "in6addr_any" -.L201: .string "inet_addr" -.L202: .string "inet_aton" -.L203: .string "inet_ntoa" -.L204: .string "inet_ntop" -.L205: .string "inet_pton" -.L206: .string "ioctl" -.L207: .string "isatty" -.L208: .string "itoa" -.L209: .string "kill" -.L210: .string "labs" -.L211: .string "ldexp" -.L212: .string "ldexpf" -.L213: .string "ldexpl" -.L214: .string "ldiv" -.L215: .string "lgamma" -.L216: .string "lgamma_r" -.L217: .string "listen" -.L218: .string "llabs" -.L219: .string "lldiv" -.L220: .string "localeconv" -.L221: .string "log" -.L222: .string "log10" -.L223: .string "log10f" -.L224: .string "log10l" -.L225: .string "log2" -.L226: .string "log2f" -.L227: .string "log2l" -.L228: .string "logf" -.L229: .string "logl" -.L230: .string "lseek" -.L231: .string "malloc" -.L232: .string "match" -.L233: .string "meadow_mappings" -.L234: .string "memalign" -.L235: .string "memccpy" -.L236: .string "memchr" -.L237: .string "memcmp" -.L238: .string "memcpy" -.L239: .string "memmove" -.L240: .string "memrchr" -.L241: .string "memset" -.L242: .string "mkdir" -.L243: .string "mkfifo" -.L244: .string "mkfifo2" -.L245: .string "mkstemp" -.L246: .string "mktemp" -.L247: .string "mktime" -.L248: .string "mmap" -.L249: .string "modf" -.L250: .string "modff" -.L251: .string "modfl" -.L252: .string "mono_main" -.L253: .string "mono_should_run" -.L254: .string "mount" -.L255: .string "munmap" -.L256: .string "nanosleep" -.L257: .string "nrand" -.L258: .string "ntohl" -.L259: .string "ntohs" -.L260: .string "open" -.L261: .string "opendir" -.L262: .string "optarg" -.L263: .string "optind" -.L264: .string "optopt" -.L265: .string "perror" -.L266: .string "pipe" -.L267: .string "pipe2" -.L268: .string "poll" -.L269: .string "posix_spawnattr_dump" -.L270: .string "posix_spawnattr_getflags" -.L271: .string "posix_spawnattr_getschedparam" -.L272: .string "posix_spawnattr_getschedpolicy" -.L273: .string "posix_spawnattr_getsigmask" -.L274: .string "posix_spawnattr_init" -.L275: .string "posix_spawnattr_setflags" -.L276: .string "posix_spawnattr_setschedparam" -.L277: .string "posix_spawnattr_setschedpolicy" -.L278: .string "posix_spawnattr_setsigmask" -.L279: .string "pow" -.L280: .string "powf" -.L281: .string "powl" -.L282: .string "ppoll" -.L283: .string "prctl" -.L284: .string "pread" -.L285: .string "printf" -.L286: .string "pselect" -.L287: .string "psiginfo" -.L288: .string "psignal" -.L289: .string "pthread_attr_destroy" -.L290: .string "pthread_attr_getinheritsched" -.L291: .string "pthread_attr_getschedparam" -.L292: .string "pthread_attr_getschedpolicy" -.L293: .string "pthread_attr_getstack" -.L294: .string "pthread_attr_getstacksize" -.L295: .string "pthread_attr_init" -.L296: .string "pthread_attr_setinheritsched" -.L297: .string "pthread_attr_setschedparam" -.L298: .string "pthread_attr_setschedpolicy" -.L299: .string "pthread_attr_setstack" -.L300: .string "pthread_attr_setstacksize" -.L301: .string "pthread_barrier_destroy" -.L302: .string "pthread_barrier_init" -.L303: .string "pthread_barrier_wait" -.L304: .string "pthread_barrierattr_destroy" -.L305: .string "pthread_barrierattr_getpshared" -.L306: .string "pthread_barrierattr_init" -.L307: .string "pthread_barrierattr_setpshared" -.L308: .string "pthread_cancel" -.L309: .string "pthread_cleanup_pop" -.L310: .string "pthread_cleanup_push" -.L311: .string "pthread_cond_broadcast" -.L312: .string "pthread_cond_destroy" -.L313: .string "pthread_cond_init" -.L314: .string "pthread_cond_signal" -.L315: .string "pthread_cond_timedwait" -.L316: .string "pthread_cond_wait" -.L317: .string "pthread_condattr_destroy" -.L318: .string "pthread_condattr_init" -.L319: .string "pthread_create" -.L320: .string "pthread_detach" -.L321: .string "pthread_exit" -.L322: .string "pthread_get_stackaddr_np" -.L323: .string "pthread_get_stacksize_np" -.L324: .string "pthread_getschedparam" -.L325: .string "pthread_getspecific" -.L326: .string "pthread_join" -.L327: .string "pthread_key_create" -.L328: .string "pthread_key_delete" -.L329: .string "pthread_kill" -.L330: .string "pthread_mutex_consistent" -.L331: .string "pthread_mutex_destroy" -.L332: .string "pthread_mutex_init" -.L333: .string "pthread_mutex_lock" -.L334: .string "pthread_mutex_timedlock" -.L335: .string "pthread_mutex_trylock" -.L336: .string "pthread_mutex_unlock" -.L337: .string "pthread_mutexattr_destroy" -.L338: .string "pthread_mutexattr_getprotocol" -.L339: .string "pthread_mutexattr_getpshared" -.L340: .string "pthread_mutexattr_getrobust" -.L341: .string "pthread_mutexattr_gettype" -.L342: .string "pthread_mutexattr_init" -.L343: .string "pthread_mutexattr_setprotocol" -.L344: .string "pthread_mutexattr_setpshared" -.L345: .string "pthread_mutexattr_setrobust" -.L346: .string "pthread_mutexattr_settype" -.L347: .string "pthread_once" -.L348: .string "pthread_rwlock_destroy" -.L349: .string "pthread_rwlock_init" -.L350: .string "pthread_rwlock_rdlock" -.L351: .string "pthread_rwlock_timedrdlock" -.L352: .string "pthread_rwlock_timedwrlock" -.L353: .string "pthread_rwlock_tryrdlock" -.L354: .string "pthread_rwlock_trywrlock" -.L355: .string "pthread_rwlock_unlock" -.L356: .string "pthread_rwlock_wrlock" -.L357: .string "pthread_setcancelstate" -.L358: .string "pthread_setcanceltype" -.L359: .string "pthread_setschedparam" -.L360: .string "pthread_setschedprio" -.L361: .string "pthread_setspecific" -.L362: .string "pthread_sigmask" -.L363: .string "pthread_startup" -.L364: .string "pthread_testcancel" -.L365: .string "pthread_yield" -.L366: .string "putenv" -.L367: .string "puts" -.L368: .string "pwrite" -.L369: .string "qsort" -.L370: .string "raise" -.L371: .string "rand" -.L372: .string "random" -.L373: .string "read" -.L374: .string "readdir" -.L375: .string "readdir_r" -.L376: .string "readv" -.L377: .string "realloc" -.L378: .string "recv" -.L379: .string "recvfrom" -.L380: .string "recvmsg" -.L381: .string "remove" -.L382: .string "rename" -.L383: .string "rewinddir" -.L384: .string "rint" -.L385: .string "rintf" -.L386: .string "rintl" -.L387: .string "rmdir" -.L388: .string "round" -.L389: .string "roundf" -.L390: .string "roundl" -.L391: .string "scalbn" -.L392: .string "scalbnf" -.L393: .string "scanf" -.L394: .string "seekdir" -.L395: .string "select" -.L396: .string "sem_destroy" -.L397: .string "sem_getprotocol" -.L398: .string "sem_getvalue" -.L399: .string "sem_init" -.L400: .string "sem_post" -.L401: .string "sem_setprotocol" -.L402: .string "sem_timedwait" -.L403: .string "sem_trywait" -.L404: .string "sem_wait" -.L405: .string "send" -.L406: .string "sendfile" -.L407: .string "sendmsg" -.L408: .string "sendto" -.L409: .string "set_errno" -.L410: .string "setbuf" -.L411: .string "setenv" -.L412: .string "sethostname" -.L413: .string "setlocale" -.L414: .string "setlogmask" -.L415: .string "setsockopt" -.L416: .string "settimeofday" -.L417: .string "setvbuf" -.L418: .string "shutdown" -.L419: .string "sigaction" -.L420: .string "sigaddset" -.L421: .string "sigdelset" -.L422: .string "sigemptyset" -.L423: .string "sigfillset" -.L424: .string "sighold" -.L425: .string "sigignore" -.L426: .string "sigismember" -.L427: .string "signal" -.L428: .string "sigpause" -.L429: .string "sigpending" -.L430: .string "sigprocmask" -.L431: .string "sigqueue" -.L432: .string "sigrelse" -.L433: .string "sigset" -.L434: .string "sigsuspend" -.L435: .string "sigtimedwait" -.L436: .string "sigwait" -.L437: .string "sigwaitinfo" -.L438: .string "sin" -.L439: .string "sinf" -.L440: .string "sinh" -.L441: .string "sinhf" -.L442: .string "sinhl" -.L443: .string "sinl" -.L444: .string "sleep" -.L445: .string "snprintf" -.L446: .string "socket" -.L447: .string "sprintf" -.L448: .string "sqrt" -.L449: .string "sqrtf" -.L450: .string "sqrtl" -.L451: .string "srand" -.L452: .string "sscanf" -.L453: .string "stat" -.L454: .string "statfs" -.L455: .string "stpcpy" -.L456: .string "stpncpy" -.L457: .string "strcasecmp" -.L458: .string "strcasestr" -.L459: .string "strcat" -.L460: .string "strchr" -.L461: .string "strcmp" -.L462: .string "strcoll" -.L463: .string "strcpy" -.L464: .string "strcspn" -.L465: .string "strdup" -.L466: .string "stream_semgive" -.L467: .string "stream_semtake" -.L468: .string "strerror" -.L469: .string "strerror_r" -.L470: .string "strftime" -.L471: .string "strlen" -.L472: .string "strncasecmp" -.L473: .string "strncat" -.L474: .string "strncmp" -.L475: .string "strncpy" -.L476: .string "strndup" -.L477: .string "strnlen" -.L478: .string "strpbrk" -.L479: .string "strrchr" -.L480: .string "strsep" -.L481: .string "strsignal" -.L482: .string "strspn" -.L483: .string "strstr" -.L484: .string "strtod" -.L485: .string "strtof" -.L486: .string "strtoimax" -.L487: .string "strtok" -.L488: .string "strtok_r" -.L489: .string "strtol" -.L490: .string "strtold" -.L491: .string "strtoll" -.L492: .string "strtoul" -.L493: .string "strtoull" -.L494: .string "strtoumax" -.L495: .string "strxfrm" -.L496: .string "swab" -.L497: .string "sysconf" -.L498: .string "syslog" -.L499: .string "tan" -.L500: .string "tanf" -.L501: .string "tanh" -.L502: .string "tanhf" -.L503: .string "tanhl" -.L504: .string "tanl" -.L505: .string "tcdrain" -.L506: .string "tcflow" -.L507: .string "tcflush" -.L508: .string "tcgetattr" -.L509: .string "tcsetattr" -.L510: .string "tea_decrypt" -.L511: .string "tea_encrypt" -.L512: .string "telldir" -.L513: .string "tempnam" -.L514: .string "tgamma" -.L515: .string "time" -.L516: .string "tmpnam" -.L517: .string "trunc" -.L518: .string "truncate" -.L519: .string "truncf" -.L520: .string "truncl" -.L521: .string "uadd32x64" -.L522: .string "uadd64" -.L523: .string "ub32sqrtub16" -.L524: .string "umul32" -.L525: .string "umul32x64" -.L526: .string "umul64" -.L527: .string "uname" -.L528: .string "ungetc" -.L529: .string "unlink" -.L530: .string "unsetenv" -.L531: .string "usleep" -.L532: .string "usub64" -.L533: .string "usub64x32" -.L534: .string "vasprintf" -.L535: .string "vdprintf" -.L536: .string "vfork" -.L537: .string "vfprintf" -.L538: .string "vfscanf" -.L539: .string "vprintf" -.L540: .string "vsnprintf" -.L541: .string "vsprintf" -.L542: .string "vsscanf" -.L543: .string "vsyslog" -.L544: .string "waitpid" -.L545: .string "write" -.L546: .string "writev" -.L547: .string "xorshift128" -.L548: .string "zalloc" - .size globalNames, . - globalNames - - .align 4 - .global nGlobals - .type nGlobals, "object" -nGlobals: - .word 549 - .size nGlobals, . - nGlobals - - .global globalTable - .type globalTable, "object" -globalTable: - .word .L0, _ZdlPvj - .word .L1, __cos - .word .L2, __cxa_pure_virtual - .word .L3, __dso_handle - .word .L4, __dtoa_engine - .word .L5, __sin - .word .L6, __swap_uint32 - .word .L7, __swap_uint64 - .word .L8, __ultoa_invert - .word .L9, _exit - .word .L10, abort - .word .L11, abs - .word .L12, accept - .word .L13, access - .word .L14, acos - .word .L15, acosf - .word .L16, acosh - .word .L17, acoshf - .word .L18, acoshl - .word .L19, acosl - .word .L20, add_file_action - .word .L21, asin - .word .L22, asinf - .word .L23, asinh - .word .L24, asinhf - .word .L25, asinhl - .word .L26, asinl - .word .L27, asprintf - .word .L28, atan - .word .L29, atan2 - .word .L30, atan2f - .word .L31, atan2l - .word .L32, atanf - .word .L33, atanh - .word .L34, atanhf - .word .L35, atanhl - .word .L36, atanl - .word .L37, b16atan2 - .word .L38, b16cos - .word .L39, b16sin - .word .L40, basename - .word .L41, bind - .word .L42, boardctl - .word .L43, bsearch - .word .L44, cabs - .word .L45, cacheflush - .word .L46, calloc - .word .L47, cbrtf - .word .L48, ceil - .word .L49, ceilf - .word .L50, ceill - .word .L51, cfgetspeed - .word .L52, cfmakeraw - .word .L53, cfsetspeed - .word .L54, chdir - .word .L55, cimag - .word .L56, clearenv - .word .L57, clearerr - .word .L58, clock - .word .L59, close - .word .L60, closedir - .word .L61, connect - .word .L62, copysign - .word .L63, copysignf - .word .L64, copysignl - .word .L65, cos - .word .L66, cosf - .word .L67, cosh - .word .L68, coshf - .word .L69, coshl - .word .L70, cosl - .word .L71, crc16 - .word .L72, crc16part - .word .L73, crc32 - .word .L74, crc32part - .word .L75, crc64 - .word .L76, crc64part - .word .L77, crc8 - .word .L78, crc8ccitt - .word .L79, crc8part - .word .L80, creal - .word .L81, daemon - .word .L82, difftime - .word .L83, dirname - .word .L84, div - .word .L85, dlclose - .word .L86, dlerror - .word .L87, dlopen - .word .L88, dlsym - .word .L89, dlsymtab - .word .L90, dns_add_nameserver - .word .L91, dns_bind - .word .L92, dns_find_answer - .word .L93, dns_foreach_nameserver - .word .L94, dns_initialize - .word .L95, dns_notify_nameserver - .word .L96, dns_query - .word .L97, dns_register_notify - .word .L98, dns_save_answer - .word .L99, dns_semgive - .word .L100, dns_semtake - .word .L101, dns_unregister_notify - .word .L102, dprintf - .word .L103, dup - .word .L104, dup2 - .word .L105, envpath_init - .word .L106, envpath_next - .word .L107, envpath_release - .word .L108, erf - .word .L109, erff - .word .L110, erfl - .word .L111, ether_ntoa - .word .L112, exec - .word .L113, exit - .word .L114, exp - .word .L115, expf - .word .L116, expl - .word .L117, explicit_bzero - .word .L118, fabs - .word .L119, fabsf - .word .L120, fabsl - .word .L121, fclose - .word .L122, fcntl - .word .L123, fdopen - .word .L124, feof - .word .L125, ferror - .word .L126, fflush - .word .L127, ffs - .word .L128, ffsl - .word .L129, ffsll - .word .L130, fgetc - .word .L131, fgetpos - .word .L132, fgets - .word .L133, fileno - .word .L134, floor - .word .L135, floorf - .word .L136, floorl - .word .L137, fls - .word .L138, flsl - .word .L139, flsll - .word .L140, fma - .word .L141, fmaf - .word .L142, fmod - .word .L143, fmodf - .word .L144, fmodl - .word .L145, fopen - .word .L146, fprintf - .word .L147, fputc - .word .L148, fputs - .word .L149, fread - .word .L150, free - .word .L151, freeaddrinfo - .word .L152, freopen - .word .L153, frexp - .word .L154, frexpf - .word .L155, frexpl - .word .L156, fscanf - .word .L157, fseek - .word .L158, fsetpos - .word .L159, fstat - .word .L160, fstatfs - .word .L161, fsync - .word .L162, ftell - .word .L163, ftruncate - .word .L164, fwrite - .word .L165, gai_strerror - .word .L166, gamma - .word .L167, getaddrinfo - .word .L168, getcwd - .word .L169, getenv - .word .L170, gethostbyaddr - .word .L171, gethostbyaddr_r - .word .L172, gethostbyname - .word .L173, gethostbyname_r - .word .L174, gethostname - .word .L175, getnameinfo - .word .L176, getopt - .word .L177, getoptargp - .word .L178, getoptindp - .word .L179, getoptoptp - .word .L180, getpeername - .word .L181, getpid - .word .L182, getprotobyname - .word .L183, getrandom - .word .L184, gets - .word .L185, gets_s - .word .L186, getservbyname - .word .L187, getservbyname_r - .word .L188, getsockname - .word .L189, getsockopt - .word .L190, gettimeofday - .word .L191, gmtime - .word .L192, gmtime_r - .word .L193, h_errno - .word .L194, htonl - .word .L195, htons - .word .L196, hypot - .word .L197, ilogb - .word .L198, ilogbf - .word .L199, imaxabs - .word .L200, in6addr_any - .word .L201, inet_addr - .word .L202, inet_aton - .word .L203, inet_ntoa - .word .L204, inet_ntop - .word .L205, inet_pton - .word .L206, ioctl - .word .L207, isatty - .word .L208, itoa - .word .L209, kill - .word .L210, labs - .word .L211, ldexp - .word .L212, ldexpf - .word .L213, ldexpl - .word .L214, ldiv - .word .L215, lgamma - .word .L216, lgamma_r - .word .L217, listen - .word .L218, llabs - .word .L219, lldiv - .word .L220, localeconv - .word .L221, log - .word .L222, log10 - .word .L223, log10f - .word .L224, log10l - .word .L225, log2 - .word .L226, log2f - .word .L227, log2l - .word .L228, logf - .word .L229, logl - .word .L230, lseek - .word .L231, malloc - .word .L232, match - .word .L233, meadow_mappings - .word .L234, memalign - .word .L235, memccpy - .word .L236, memchr - .word .L237, memcmp - .word .L238, memcpy - .word .L239, memmove - .word .L240, memrchr - .word .L241, memset - .word .L242, mkdir - .word .L243, mkfifo - .word .L244, mkfifo2 - .word .L245, mkstemp - .word .L246, mktemp - .word .L247, mktime - .word .L248, mmap - .word .L249, modf - .word .L250, modff - .word .L251, modfl - .word .L252, mono_main - .word .L253, mono_should_run - .word .L254, mount - .word .L255, munmap - .word .L256, nanosleep - .word .L257, nrand - .word .L258, ntohl - .word .L259, ntohs - .word .L260, open - .word .L261, opendir - .word .L262, optarg - .word .L263, optind - .word .L264, optopt - .word .L265, perror - .word .L266, pipe - .word .L267, pipe2 - .word .L268, poll - .word .L269, posix_spawnattr_dump - .word .L270, posix_spawnattr_getflags - .word .L271, posix_spawnattr_getschedparam - .word .L272, posix_spawnattr_getschedpolicy - .word .L273, posix_spawnattr_getsigmask - .word .L274, posix_spawnattr_init - .word .L275, posix_spawnattr_setflags - .word .L276, posix_spawnattr_setschedparam - .word .L277, posix_spawnattr_setschedpolicy - .word .L278, posix_spawnattr_setsigmask - .word .L279, pow - .word .L280, powf - .word .L281, powl - .word .L282, ppoll - .word .L283, prctl - .word .L284, pread - .word .L285, printf - .word .L286, pselect - .word .L287, psiginfo - .word .L288, psignal - .word .L289, pthread_attr_destroy - .word .L290, pthread_attr_getinheritsched - .word .L291, pthread_attr_getschedparam - .word .L292, pthread_attr_getschedpolicy - .word .L293, pthread_attr_getstack - .word .L294, pthread_attr_getstacksize - .word .L295, pthread_attr_init - .word .L296, pthread_attr_setinheritsched - .word .L297, pthread_attr_setschedparam - .word .L298, pthread_attr_setschedpolicy - .word .L299, pthread_attr_setstack - .word .L300, pthread_attr_setstacksize - .word .L301, pthread_barrier_destroy - .word .L302, pthread_barrier_init - .word .L303, pthread_barrier_wait - .word .L304, pthread_barrierattr_destroy - .word .L305, pthread_barrierattr_getpshared - .word .L306, pthread_barrierattr_init - .word .L307, pthread_barrierattr_setpshared - .word .L308, pthread_cancel - .word .L309, pthread_cleanup_pop - .word .L310, pthread_cleanup_push - .word .L311, pthread_cond_broadcast - .word .L312, pthread_cond_destroy - .word .L313, pthread_cond_init - .word .L314, pthread_cond_signal - .word .L315, pthread_cond_timedwait - .word .L316, pthread_cond_wait - .word .L317, pthread_condattr_destroy - .word .L318, pthread_condattr_init - .word .L319, pthread_create - .word .L320, pthread_detach - .word .L321, pthread_exit - .word .L322, pthread_get_stackaddr_np - .word .L323, pthread_get_stacksize_np - .word .L324, pthread_getschedparam - .word .L325, pthread_getspecific - .word .L326, pthread_join - .word .L327, pthread_key_create - .word .L328, pthread_key_delete - .word .L329, pthread_kill - .word .L330, pthread_mutex_consistent - .word .L331, pthread_mutex_destroy - .word .L332, pthread_mutex_init - .word .L333, pthread_mutex_lock - .word .L334, pthread_mutex_timedlock - .word .L335, pthread_mutex_trylock - .word .L336, pthread_mutex_unlock - .word .L337, pthread_mutexattr_destroy - .word .L338, pthread_mutexattr_getprotocol - .word .L339, pthread_mutexattr_getpshared - .word .L340, pthread_mutexattr_getrobust - .word .L341, pthread_mutexattr_gettype - .word .L342, pthread_mutexattr_init - .word .L343, pthread_mutexattr_setprotocol - .word .L344, pthread_mutexattr_setpshared - .word .L345, pthread_mutexattr_setrobust - .word .L346, pthread_mutexattr_settype - .word .L347, pthread_once - .word .L348, pthread_rwlock_destroy - .word .L349, pthread_rwlock_init - .word .L350, pthread_rwlock_rdlock - .word .L351, pthread_rwlock_timedrdlock - .word .L352, pthread_rwlock_timedwrlock - .word .L353, pthread_rwlock_tryrdlock - .word .L354, pthread_rwlock_trywrlock - .word .L355, pthread_rwlock_unlock - .word .L356, pthread_rwlock_wrlock - .word .L357, pthread_setcancelstate - .word .L358, pthread_setcanceltype - .word .L359, pthread_setschedparam - .word .L360, pthread_setschedprio - .word .L361, pthread_setspecific - .word .L362, pthread_sigmask - .word .L363, pthread_startup - .word .L364, pthread_testcancel - .word .L365, pthread_yield - .word .L366, putenv - .word .L367, puts - .word .L368, pwrite - .word .L369, qsort - .word .L370, raise - .word .L371, rand - .word .L372, random - .word .L373, read - .word .L374, readdir - .word .L375, readdir_r - .word .L376, readv - .word .L377, realloc - .word .L378, recv - .word .L379, recvfrom - .word .L380, recvmsg - .word .L381, remove - .word .L382, rename - .word .L383, rewinddir - .word .L384, rint - .word .L385, rintf - .word .L386, rintl - .word .L387, rmdir - .word .L388, round - .word .L389, roundf - .word .L390, roundl - .word .L391, scalbn - .word .L392, scalbnf - .word .L393, scanf - .word .L394, seekdir - .word .L395, select - .word .L396, sem_destroy - .word .L397, sem_getprotocol - .word .L398, sem_getvalue - .word .L399, sem_init - .word .L400, sem_post - .word .L401, sem_setprotocol - .word .L402, sem_timedwait - .word .L403, sem_trywait - .word .L404, sem_wait - .word .L405, send - .word .L406, sendfile - .word .L407, sendmsg - .word .L408, sendto - .word .L409, set_errno - .word .L410, setbuf - .word .L411, setenv - .word .L412, sethostname - .word .L413, setlocale - .word .L414, setlogmask - .word .L415, setsockopt - .word .L416, settimeofday - .word .L417, setvbuf - .word .L418, shutdown - .word .L419, sigaction - .word .L420, sigaddset - .word .L421, sigdelset - .word .L422, sigemptyset - .word .L423, sigfillset - .word .L424, sighold - .word .L425, sigignore - .word .L426, sigismember - .word .L427, signal - .word .L428, sigpause - .word .L429, sigpending - .word .L430, sigprocmask - .word .L431, sigqueue - .word .L432, sigrelse - .word .L433, sigset - .word .L434, sigsuspend - .word .L435, sigtimedwait - .word .L436, sigwait - .word .L437, sigwaitinfo - .word .L438, sin - .word .L439, sinf - .word .L440, sinh - .word .L441, sinhf - .word .L442, sinhl - .word .L443, sinl - .word .L444, sleep - .word .L445, snprintf - .word .L446, socket - .word .L447, sprintf - .word .L448, sqrt - .word .L449, sqrtf - .word .L450, sqrtl - .word .L451, srand - .word .L452, sscanf - .word .L453, stat - .word .L454, statfs - .word .L455, stpcpy - .word .L456, stpncpy - .word .L457, strcasecmp - .word .L458, strcasestr - .word .L459, strcat - .word .L460, strchr - .word .L461, strcmp - .word .L462, strcoll - .word .L463, strcpy - .word .L464, strcspn - .word .L465, strdup - .word .L466, stream_semgive - .word .L467, stream_semtake - .word .L468, strerror - .word .L469, strerror_r - .word .L470, strftime - .word .L471, strlen - .word .L472, strncasecmp - .word .L473, strncat - .word .L474, strncmp - .word .L475, strncpy - .word .L476, strndup - .word .L477, strnlen - .word .L478, strpbrk - .word .L479, strrchr - .word .L480, strsep - .word .L481, strsignal - .word .L482, strspn - .word .L483, strstr - .word .L484, strtod - .word .L485, strtof - .word .L486, strtoimax - .word .L487, strtok - .word .L488, strtok_r - .word .L489, strtol - .word .L490, strtold - .word .L491, strtoll - .word .L492, strtoul - .word .L493, strtoull - .word .L494, strtoumax - .word .L495, strxfrm - .word .L496, swab - .word .L497, sysconf - .word .L498, syslog - .word .L499, tan - .word .L500, tanf - .word .L501, tanh - .word .L502, tanhf - .word .L503, tanhl - .word .L504, tanl - .word .L505, tcdrain - .word .L506, tcflow - .word .L507, tcflush - .word .L508, tcgetattr - .word .L509, tcsetattr - .word .L510, tea_decrypt - .word .L511, tea_encrypt - .word .L512, telldir - .word .L513, tempnam - .word .L514, tgamma - .word .L515, time - .word .L516, tmpnam - .word .L517, trunc - .word .L518, truncate - .word .L519, truncf - .word .L520, truncl - .word .L521, uadd32x64 - .word .L522, uadd64 - .word .L523, ub32sqrtub16 - .word .L524, umul32 - .word .L525, umul32x64 - .word .L526, umul64 - .word .L527, uname - .word .L528, ungetc - .word .L529, unlink - .word .L530, unsetenv - .word .L531, usleep - .word .L532, usub64 - .word .L533, usub64x32 - .word .L534, vasprintf - .word .L535, vdprintf - .word .L536, vfork - .word .L537, vfprintf - .word .L538, vfscanf - .word .L539, vprintf - .word .L540, vsnprintf - .word .L541, vsprintf - .word .L542, vsscanf - .word .L543, vsyslog - .word .L544, waitpid - .word .L545, write - .word .L546, writev - .word .L547, xorshift128 - .word .L548, zalloc - .size globalTable, . - globalTable diff --git a/libs/libc/modlib/modlib_x64_globals.S b/libs/libc/modlib/modlib_x64_globals.S deleted file mode 100644 index c222918417..0000000000 --- a/libs/libc/modlib/modlib_x64_globals.S +++ /dev/null @@ -1,565 +0,0 @@ - .data - .align 8 - .global globalNames - -globalNames: -.L0: .string "accept4" -.L1: .string "clearenv" -.L2: .string "cmd_alias" -.L3: .string "cmd_arp" -.L4: .string "cmd_basename" -.L5: .string "cmd_break" -.L6: .string "cmd_cat" -.L7: .string "cmd_cd" -.L8: .string "cmd_cmp" -.L9: .string "cmd_cp" -.L10: .string "cmd_date" -.L11: .string "cmd_dd" -.L12: .string "cmd_dirname" -.L13: .string "cmd_dmesg" -.L14: .string "cmd_echo" -.L15: .string "cmd_exec" -.L16: .string "cmd_hexdump" -.L17: .string "cmd_insmod" -.L18: .string "cmd_kill" -.L19: .string "cmd_lbracket" -.L20: .string "cmd_losetup" -.L21: .string "cmd_ls" -.L22: .string "cmd_mkdir" -.L23: .string "cmd_mkfifo" -.L24: .string "cmd_mkrd" -.L25: .string "cmd_mount" -.L26: .string "cmd_mv" -.L27: .string "cmd_nslookup" -.L28: .string "cmd_poweroff" -.L29: .string "cmd_printf" -.L30: .string "cmd_pwd" -.L31: .string "cmd_rm" -.L32: .string "cmd_rmdir" -.L33: .string "cmd_rmmod" -.L34: .string "cmd_set" -.L35: .string "cmd_sleep" -.L36: .string "cmd_source" -.L37: .string "cmd_test" -.L38: .string "cmd_time" -.L39: .string "cmd_truncate" -.L40: .string "cmd_umount" -.L41: .string "cmd_unalias" -.L42: .string "cmd_uname" -.L43: .string "cmd_unset" -.L44: .string "cmd_uptime" -.L45: .string "cmd_usleep" -.L46: .string "cmd_xd" -.L47: .string "cmsg_append" -.L48: .string "dir_allocate" -.L49: .string "exec_builtin" -.L50: .string "icmp_alloc" -.L51: .string "icmp_chksum_iob" -.L52: .string "icmp_findconn" -.L53: .string "icmp_free" -.L54: .string "icmp_input" -.L55: .string "icmp_ioctl" -.L56: .string "icmp_nextconn" -.L57: .string "icmp_poll" -.L58: .string "icmp_pollsetup" -.L59: .string "icmp_pollteardown" -.L60: .string "icmp_recvmsg" -.L61: .string "icmp_reply" -.L62: .string "icmp_sendmsg" -.L63: .string "icmpv6_advertise" -.L64: .string "icmpv6_alloc" -.L65: .string "icmpv6_autoconfig" -.L66: .string "icmpv6_chksum" -.L67: .string "icmpv6_foreach" -.L68: .string "icmpv6_free" -.L69: .string "icmpv6_input" -.L70: .string "icmpv6_ioctl" -.L71: .string "icmpv6_linkipaddr" -.L72: .string "icmpv6_neighbor" -.L73: .string "icmpv6_nextconn" -.L74: .string "icmpv6_notify" -.L75: .string "icmpv6_poll" -.L76: .string "icmpv6_pollsetup" -.L77: .string "icmpv6_pollteardown" -.L78: .string "icmpv6_radvertise" -.L79: .string "icmpv6_recvmsg" -.L80: .string "icmpv6_reply" -.L81: .string "icmpv6_rnotify" -.L82: .string "icmpv6_rsolicit" -.L83: .string "icmpv6_rwait" -.L84: .string "icmpv6_rwait_cancel" -.L85: .string "icmpv6_rwait_setup" -.L86: .string "icmpv6_sendmsg" -.L87: .string "icmpv6_setaddresses" -.L88: .string "icmpv6_solicit" -.L89: .string "icmpv6_wait" -.L90: .string "icmpv6_wait_cancel" -.L91: .string "icmpv6_wait_setup" -.L92: .string "inet_close" -.L93: .string "insmod" -.L94: .string "ipv4_build_header" -.L95: .string "ipv4_chksum" -.L96: .string "ipv4_getpeername" -.L97: .string "ipv4_getsockname" -.L98: .string "ipv4_getsockopt" -.L99: .string "ipv4_input" -.L100: .string "ipv4_setsockopt" -.L101: .string "ipv4_upperlayer_chksum" -.L102: .string "ipv6_build_header" -.L103: .string "ipv6_getpeername" -.L104: .string "ipv6_getsockname" -.L105: .string "ipv6_getsockopt" -.L106: .string "ipv6_input" -.L107: .string "ipv6_setsockopt" -.L108: .string "ipv6_upperlayer_chksum" -.L109: .string "kill" -.L110: .string "kthread_create" -.L111: .string "loop_register" -.L112: .string "losetup" -.L113: .string "loteardown" -.L114: .string "lstat" -.L115: .string "mkrd" -.L116: .string "modhandle" -.L117: .string "modsym" -.L118: .string "mount" -.L119: .string "neighbor_add" -.L120: .string "neighbor_ethernet_out" -.L121: .string "neighbor_findentry" -.L122: .string "neighbor_lookup" -.L123: .string "neighbor_out" -.L124: .string "netdown_notifier_signal" -.L125: .string "oneshot_register" -.L126: .string "open_blockdriver" -.L127: .string "panic_notifier_call_chain" -.L128: .string "poll_notify" -.L129: .string "pthread_cancel" -.L130: .string "pthread_completejoin" -.L131: .string "pthread_createjoininfo" -.L132: .string "pthread_destroyjoin" -.L133: .string "pthread_detach" -.L134: .string "pthread_findjoininfo" -.L135: .string "pthread_mutex_inconsistent" -.L136: .string "pthread_release" -.L137: .string "pthread_sem_give" -.L138: .string "pthread_setup_scheduler" -.L139: .string "ramdisk_register" -.L140: .string "reboot_notifier_call_chain" -.L141: .string "recv" -.L142: .string "recvmsg" -.L143: .string "rmmod" -.L144: .string "romfs_checkmount" -.L145: .string "romfs_datastart" -.L146: .string "romfs_filecacheread" -.L147: .string "romfs_fileconfigure" -.L148: .string "romfs_finddirentry" -.L149: .string "romfs_freenode" -.L150: .string "romfs_fsconfigure" -.L151: .string "romfs_hwconfigure" -.L152: .string "romfs_hwread" -.L153: .string "romfs_img" -.L154: .string "romfs_img_len" -.L155: .string "romfs_parsedirentry" -.L156: .string "romfs_parsefilename" -.L157: .string "rtc_initialize" -.L158: .string "sem_clockwait" -.L159: .string "sem_destroy" -.L160: .string "sem_post" -.L161: .string "sem_timedwait" -.L162: .string "sem_trywait" -.L163: .string "sem_wait" -.L164: .string "send" -.L165: .string "setenv" -.L166: .string "sh_main" -.L167: .string "sigpending" -.L168: .string "sigprocmask" -.L169: .string "sigtimedwait" -.L170: .string "sotest_main" -.L171: .string "sync" -.L172: .string "sysinfo" -.L173: .string "tcpip_hdrsize" -.L174: .string "tls_init_info" -.L175: .string "unsetenv" -.L176: .string "waitpid" -.L177: .string "work_cancel" -.L178: .string "work_notifier_signal" -.L179: .string "work_queue" -.L180: .string "work_start_highpri" -.L181: .string "work_start_lowpri" - .size globalNames, . - globalNames - - .align 8 - .global nGlobals - .type nGlobals, "object" -nGlobals: - .word 182 - .size nGlobals, . - nGlobals - - .align 8 - .global globalTable - .type globalTable, "object" -globalTable: - .weak accept4 - .weak clearenv - .weak cmd_alias - .weak cmd_arp - .weak cmd_basename - .weak cmd_break - .weak cmd_cat - .weak cmd_cd - .weak cmd_cmp - .weak cmd_cp - .weak cmd_date - .weak cmd_dd - .weak cmd_dirname - .weak cmd_dmesg - .weak cmd_echo - .weak cmd_exec - .weak cmd_hexdump - .weak cmd_insmod - .weak cmd_kill - .weak cmd_lbracket - .weak cmd_losetup - .weak cmd_ls - .weak cmd_mkdir - .weak cmd_mkfifo - .weak cmd_mkrd - .weak cmd_mount - .weak cmd_mv - .weak cmd_nslookup - .weak cmd_poweroff - .weak cmd_printf - .weak cmd_pwd - .weak cmd_rm - .weak cmd_rmdir - .weak cmd_rmmod - .weak cmd_set - .weak cmd_sleep - .weak cmd_source - .weak cmd_test - .weak cmd_time - .weak cmd_truncate - .weak cmd_umount - .weak cmd_unalias - .weak cmd_uname - .weak cmd_unset - .weak cmd_uptime - .weak cmd_usleep - .weak cmd_xd - .weak cmsg_append - .weak dir_allocate - .weak exec_builtin - .weak icmp_alloc - .weak icmp_chksum_iob - .weak icmp_findconn - .weak icmp_free - .weak icmp_input - .weak icmp_ioctl - .weak icmp_nextconn - .weak icmp_poll - .weak icmp_pollsetup - .weak icmp_pollteardown - .weak icmp_recvmsg - .weak icmp_reply - .weak icmp_sendmsg - .weak icmpv6_advertise - .weak icmpv6_alloc - .weak icmpv6_autoconfig - .weak icmpv6_chksum - .weak icmpv6_foreach - .weak icmpv6_free - .weak icmpv6_input - .weak icmpv6_ioctl - .weak icmpv6_linkipaddr - .weak icmpv6_neighbor - .weak icmpv6_nextconn - .weak icmpv6_notify - .weak icmpv6_poll - .weak icmpv6_pollsetup - .weak icmpv6_pollteardown - .weak icmpv6_radvertise - .weak icmpv6_recvmsg - .weak icmpv6_reply - .weak icmpv6_rnotify - .weak icmpv6_rsolicit - .weak icmpv6_rwait - .weak icmpv6_rwait_cancel - .weak icmpv6_rwait_setup - .weak icmpv6_sendmsg - .weak icmpv6_setaddresses - .weak icmpv6_solicit - .weak icmpv6_wait - .weak icmpv6_wait_cancel - .weak icmpv6_wait_setup - .weak inet_close - .weak insmod - .weak ipv4_build_header - .weak ipv4_chksum - .weak ipv4_getpeername - .weak ipv4_getsockname - .weak ipv4_getsockopt - .weak ipv4_input - .weak ipv4_setsockopt - .weak ipv4_upperlayer_chksum - .weak ipv6_build_header - .weak ipv6_getpeername - .weak ipv6_getsockname - .weak ipv6_getsockopt - .weak ipv6_input - .weak ipv6_setsockopt - .weak ipv6_upperlayer_chksum - .weak kill - .weak kthread_create - .weak loop_register - .weak losetup - .weak loteardown - .weak lstat - .weak mkrd - .weak modhandle - .weak modsym - .weak mount - .weak neighbor_add - .weak neighbor_ethernet_out - .weak neighbor_findentry - .weak neighbor_lookup - .weak neighbor_out - .weak netdown_notifier_signal - .weak oneshot_register - .weak open_blockdriver - .weak panic_notifier_call_chain - .weak poll_notify - .weak pthread_cancel - .weak pthread_completejoin - .weak pthread_createjoininfo - .weak pthread_destroyjoin - .weak pthread_detach - .weak pthread_findjoininfo - .weak pthread_mutex_inconsistent - .weak pthread_release - .weak pthread_sem_give - .weak pthread_setup_scheduler - .weak ramdisk_register - .weak reboot_notifier_call_chain - .weak recv - .weak recvmsg - .weak rmmod - .weak romfs_checkmount - .weak romfs_datastart - .weak romfs_filecacheread - .weak romfs_fileconfigure - .weak romfs_finddirentry - .weak romfs_freenode - .weak romfs_fsconfigure - .weak romfs_hwconfigure - .weak romfs_hwread - .weak romfs_img - .weak romfs_img_len - .weak romfs_parsedirentry - .weak romfs_parsefilename - .weak rtc_initialize - .weak sem_clockwait - .weak sem_destroy - .weak sem_post - .weak sem_timedwait - .weak sem_trywait - .weak sem_wait - .weak send - .weak setenv - .weak sh_main - .weak sigpending - .weak sigprocmask - .weak sigtimedwait - .weak sotest_main - .weak sync - .weak sysinfo - .weak tcpip_hdrsize - .weak tls_init_info - .weak unsetenv - .weak waitpid - .weak work_cancel - .weak work_notifier_signal - .weak work_queue - .weak work_start_highpri - .weak work_start_lowpri - .quad .L0, accept4 - .quad .L1, clearenv - .quad .L2, cmd_alias - .quad .L3, cmd_arp - .quad .L4, cmd_basename - .quad .L5, cmd_break - .quad .L6, cmd_cat - .quad .L7, cmd_cd - .quad .L8, cmd_cmp - .quad .L9, cmd_cp - .quad .L10, cmd_date - .quad .L11, cmd_dd - .quad .L12, cmd_dirname - .quad .L13, cmd_dmesg - .quad .L14, cmd_echo - .quad .L15, cmd_exec - .quad .L16, cmd_hexdump - .quad .L17, cmd_insmod - .quad .L18, cmd_kill - .quad .L19, cmd_lbracket - .quad .L20, cmd_losetup - .quad .L21, cmd_ls - .quad .L22, cmd_mkdir - .quad .L23, cmd_mkfifo - .quad .L24, cmd_mkrd - .quad .L25, cmd_mount - .quad .L26, cmd_mv - .quad .L27, cmd_nslookup - .quad .L28, cmd_poweroff - .quad .L29, cmd_printf - .quad .L30, cmd_pwd - .quad .L31, cmd_rm - .quad .L32, cmd_rmdir - .quad .L33, cmd_rmmod - .quad .L34, cmd_set - .quad .L35, cmd_sleep - .quad .L36, cmd_source - .quad .L37, cmd_test - .quad .L38, cmd_time - .quad .L39, cmd_truncate - .quad .L40, cmd_umount - .quad .L41, cmd_unalias - .quad .L42, cmd_uname - .quad .L43, cmd_unset - .quad .L44, cmd_uptime - .quad .L45, cmd_usleep - .quad .L46, cmd_xd - .quad .L47, cmsg_append - .quad .L48, dir_allocate - .quad .L49, exec_builtin - .quad .L50, icmp_alloc - .quad .L51, icmp_chksum_iob - .quad .L52, icmp_findconn - .quad .L53, icmp_free - .quad .L54, icmp_input - .quad .L55, icmp_ioctl - .quad .L56, icmp_nextconn - .quad .L57, icmp_poll - .quad .L58, icmp_pollsetup - .quad .L59, icmp_pollteardown - .quad .L60, icmp_recvmsg - .quad .L61, icmp_reply - .quad .L62, icmp_sendmsg - .quad .L63, icmpv6_advertise - .quad .L64, icmpv6_alloc - .quad .L65, icmpv6_autoconfig - .quad .L66, icmpv6_chksum - .quad .L67, icmpv6_foreach - .quad .L68, icmpv6_free - .quad .L69, icmpv6_input - .quad .L70, icmpv6_ioctl - .quad .L71, icmpv6_linkipaddr - .quad .L72, icmpv6_neighbor - .quad .L73, icmpv6_nextconn - .quad .L74, icmpv6_notify - .quad .L75, icmpv6_poll - .quad .L76, icmpv6_pollsetup - .quad .L77, icmpv6_pollteardown - .quad .L78, icmpv6_radvertise - .quad .L79, icmpv6_recvmsg - .quad .L80, icmpv6_reply - .quad .L81, icmpv6_rnotify - .quad .L82, icmpv6_rsolicit - .quad .L83, icmpv6_rwait - .quad .L84, icmpv6_rwait_cancel - .quad .L85, icmpv6_rwait_setup - .quad .L86, icmpv6_sendmsg - .quad .L87, icmpv6_setaddresses - .quad .L88, icmpv6_solicit - .quad .L89, icmpv6_wait - .quad .L90, icmpv6_wait_cancel - .quad .L91, icmpv6_wait_setup - .quad .L92, inet_close - .quad .L93, insmod - .quad .L94, ipv4_build_header - .quad .L95, ipv4_chksum - .quad .L96, ipv4_getpeername - .quad .L97, ipv4_getsockname - .quad .L98, ipv4_getsockopt - .quad .L99, ipv4_input - .quad .L100, ipv4_setsockopt - .quad .L101, ipv4_upperlayer_chksum - .quad .L102, ipv6_build_header - .quad .L103, ipv6_getpeername - .quad .L104, ipv6_getsockname - .quad .L105, ipv6_getsockopt - .quad .L106, ipv6_input - .quad .L107, ipv6_setsockopt - .quad .L108, ipv6_upperlayer_chksum - .quad .L109, kill - .quad .L110, kthread_create - .quad .L111, loop_register - .quad .L112, losetup - .quad .L113, loteardown - .quad .L114, lstat - .quad .L115, mkrd - .quad .L116, modhandle - .quad .L117, modsym - .quad .L118, mount - .quad .L119, neighbor_add - .quad .L120, neighbor_ethernet_out - .quad .L121, neighbor_findentry - .quad .L122, neighbor_lookup - .quad .L123, neighbor_out - .quad .L124, netdown_notifier_signal - .quad .L125, oneshot_register - .quad .L126, open_blockdriver - .quad .L127, panic_notifier_call_chain - .quad .L128, poll_notify - .quad .L129, pthread_cancel - .quad .L130, pthread_completejoin - .quad .L131, pthread_createjoininfo - .quad .L132, pthread_destroyjoin - .quad .L133, pthread_detach - .quad .L134, pthread_findjoininfo - .quad .L135, pthread_mutex_inconsistent - .quad .L136, pthread_release - .quad .L137, pthread_sem_give - .quad .L138, pthread_setup_scheduler - .quad .L139, ramdisk_register - .quad .L140, reboot_notifier_call_chain - .quad .L141, recv - .quad .L142, recvmsg - .quad .L143, rmmod - .quad .L144, romfs_checkmount - .quad .L145, romfs_datastart - .quad .L146, romfs_filecacheread - .quad .L147, romfs_fileconfigure - .quad .L148, romfs_finddirentry - .quad .L149, romfs_freenode - .quad .L150, romfs_fsconfigure - .quad .L151, romfs_hwconfigure - .quad .L152, romfs_hwread - .quad .L153, romfs_img - .quad .L154, romfs_img_len - .quad .L155, romfs_parsedirentry - .quad .L156, romfs_parsefilename - .quad .L157, rtc_initialize - .quad .L158, sem_clockwait - .quad .L159, sem_destroy - .quad .L160, sem_post - .quad .L161, sem_timedwait - .quad .L162, sem_trywait - .quad .L163, sem_wait - .quad .L164, send - .quad .L165, setenv - .quad .L166, sh_main - .quad .L167, sigpending - .quad .L168, sigprocmask - .quad .L169, sigtimedwait - .quad .L170, sotest_main - .quad .L171, sync - .quad .L172, sysinfo - .quad .L173, tcpip_hdrsize - .quad .L174, tls_init_info - .quad .L175, unsetenv - .quad .L176, waitpid - .quad .L177, work_cancel - .quad .L178, work_notifier_signal - .quad .L179, work_queue - .quad .L180, work_start_highpri - .quad .L181, work_start_lowpri - .size globalTable, . - globalTable