#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA) && defined(GOS))
#error Meh...
#endif

//DATA not M cannot work on libc wbecause it's loaded in high memory

// FILE* is S
// locale_t needs special handling, with to_locale / from_locale (and is a / A)
// struct utimbuf is: LL
// struct timespec is: LL
// struct timeval is: LL
// struct itimerval is LLLL
// struct tm is: iiiiiiiiilt
// struct tms is: llll
// struct rusage is LLLLLLLLLLLLLLLLLL (2 timeval + 14 longs)
// time_t is: L
// socklen_t is u
// struct sockaddr is fine, no wrap needed
// wctype_t is h (used with locale_t)

// a64l
GO(abort, vEv)
GO(abs, iEi)
GOW(accept, iEipp)
GOW(accept4, iEippi)
GOW(access, iEpi)
// acct
//GOW(addmntent, iEpp)
// addseverity
// adjtime  // Weak
// adjtimex // Weak
// __adjtimex
// advance  // Weak
// __aeabi_assert
// __aeabi_atexit
// __aeabi_errno_addr
// __aeabi_localeconv
// __aeabi_MB_CUR_MAX
// __aeabi_memclr
// __aeabi_memclr4
// __aeabi_memclr8
// __aeabi_memcpy
// __aeabi_memcpy4
// __aeabi_memcpy8
// __aeabi_memmove
// __aeabi_memmove4
// __aeabi_memmove8
// __aeabi_memset
// __aeabi_memset4
// __aeabi_memset8
//DATAV(__after_morecore_hook, 4)
GO(alarm, uEu)
GO2(aligned_alloc, pELL, memalign)
GO(alphasort, iEpp)
GOM(alphasort64, iEEpp)
//DATA(argp_err_exit_status, 4)
// argp_error   // Weak
// argp_failure // Weak
// argp_help    // Weak
// argp_parse   // Weak
// argp_program_bug_address // type B
// argp_program_version // type B
// argp_program_version_hook    // type B
// argp_state_help  // Weak
// argp_usage   // Weak
// argz_add // Weak
// argz_add_sep // Weak
// argz_append  // Weak
// __argz_count
// argz_count   // Weak
// argz_create  // Weak
//GOW(argz_create_sep, iEpipp)
// argz_delete
// argz_extract // Weak
//GOW(argz_insert, iEpppp)
// __argz_next
//GOW(argz_next, pEpLp)
// argz_replace // Weak
// __argz_stringify
//GOW(argz_stringify, vEpLi)
GOM(asctime, pEriiiiiiiiilt_)   //%noE
GOW(asctime_r, pEriiiiiiiiilt_p)
GOWM(asprintf, iEEppV)        //%%
//GOM(__asprintf, iEEppV)      //%%
GOM(__asprintf_chk, iEEpipV) //%%
// __assert
GO(__assert_fail, vEppip)
//GO(__assert_perror_fail, vEipup)
GO(atof, dEp)
GO(atoi, iEp)
GO2(atol, lEp, atoi)
GO(atoll, IEp)
// authdes_create
// authdes_getucred
// authdes_pk_create
// _authenticate
// authnone_create
// authunix_create
// authunix_create_default
GOWM(backtrace, iEEpi)
//GO(__backtrace, iEpi)
//GO(__backtrace_symbols, pEpi)
GOWM(backtrace_symbols, pEEpi)
//GO(__backtrace_symbols_fd, vEpii)
//GOW(backtrace_symbols_fd, vEpii)
GO(basename, pEp)
GOW(bcmp, iEppL)
//GO(bcopy, vEppL)
// bdflush
GOW(bind, iEipu)
// bindresvport
GOW(bindtextdomain, tEpp)
GOW(bind_textdomain_codeset, tEpp)
//GOW(brk, iEp)
// __bsd_getpgrp
// bsd_signal   // Weak
GOM(bsearch, pEEppLLp) //%%
GOW(btowc, uEi)
GOW(bzero, vEpL)
GO(__bzero, vEpL)
GOW(calloc, pELL)
// callrpc
//GOW(canonicalize_file_name, pEp)
GO(capget, iFpp)
GO(capset, iFpp)
//GO(catclose, iEp)
//GO(catgets, pEpiip)
//GO(catopen, pEpi)
// cbc_crypt
GO(cfgetispeed, uEp)
GO(cfgetospeed, uEp)
//GO(cfmakeraw, vEp)
//GOW(cfree, vEp)
GO(cfsetispeed, iEpu)
GO(cfsetospeed, iEpu)
GO(cfsetspeed, iEpi)
GOW(chdir, iEp)
//DATA(__check_rhosts_file, 4)
// chflags
// __chk_fail
GOW(chmod, iEpu)
GOW(chown, iEpuu)
GO(chroot, iEp)
GOW(clearenv, iEv)
GO(clearerr, vES)
//GO(clearerr_unlocked, vEp)
// clnt_broadcast
// clnt_create
// clnt_pcreateerror
// clnt_perrno
// clnt_perror
// clntraw_create
// clnt_spcreateerror
// clnt_sperrno
// clnt_sperror
// clnttcp_create
// clntudp_bufcreate
// clntudp_create
// clntunix_create
GO(clock, lEv)
// clone    // Weak
// __clone
GOWM(close, iEEi)   //%%
// __close  // Weak
GOW(closedir, iEp)
GO(closelog, vEv)
GO(close_range, iEuui)
GOM(__cmsg_nxthdr, pEpp)    //%noE
//GO(confstr, uEipu)
// __confstr_chk
GOW(connect, iEipu)
GOW(__connect, iEipu)
// copysign // Weak
// copysignf    // Weak
// copysignl    // Weak
GOW(creat, iEpu)
GO(creat64, iEpu)
// create_module    // Weak
GO(ctermid, tEp)
GOM(ctime, pErl_)   //%noE
GO2(__ctime64, pEp, ctime)
GO(ctime_r, pErl_p)
DATAM(__ctype_b, 4)
GOM(__ctype_b_loc, pEEv)
GOW(__ctype_get_mb_cur_max, LEv)
DATAM(__ctype_tolower, 4)
GOM(__ctype_tolower_loc, pEEv)
DATAM(__ctype_toupper, 4)
GOM(__ctype_toupper_loc, pEEv)
// __curbrk // type B
GO(cuserid, tEp)
GOM(__cxa_atexit, iEEppp) //%%
GOM(atexit, iEEp)           //%% just in case
GOM(__cxa_finalize, vEEp) //%%
DATAM(__cpu_model, 16)
GOM(__cxa_thread_atexit_impl, iEEppp) //%%
// __cyg_profile_func_enter
// __cyg_profile_func_exit
// daemon
DATAV(daylight, 4)
// __daylight   // type B
GOW(dcgettext, tEppi)
GO(__dcgettext, tEppi)
GOW(dcngettext, tEpppLi)
// __default_morecore
// __default_rt_sa_restorer_v1
// __default_rt_sa_restorer_v2
// __default_sa_restorer_v1
// __default_sa_restorer_v2
// delete_module
// des_setparity
GOW(dgettext, pEpp)
GO(__dgettext, pEpp)
GO(difftime, dEll)
GO(dirfd, iEp)
GO(dirname, tEp)
GOS(div, pEpii) //%%,noE
// _dl_addr
GOW2(dl_iterate_phdr, iEEpp, my_dl_iterate_phdr) //%%
// _dl_mcount_wrapper
// _dl_mcount_wrapper_check
// _dl_open_hook    // type B
// _dl_starting_up // Weak
// _dl_sym
// _dl_vsym
//GOW(dngettext, pEpppu)
//GOM(dprintf, iEEipV)
GOM(__dprintf_chk, iEEiipV)	//%%
GO(drand48, dEv)
// drand48_r
GOW(dup, iEi)
GOW(dup2, iEii)
GO(__dup2, iEii)
GO(dup3, iEiiO)
//GOW(duplocale, pEp)
GO(__duplocale, aEa)
// dysize
GOW(eaccess, iEpi)
// ecb_crypt
// ecvt
//GO(ecvt_r, iEdipppL)
// endaliasent
// endfsent
GO(endgrent, vEv)
GO(endhostent, vFv)
GOW(endmntent, iES)
// __endmntent
// endnetent
// endnetgrent
GO(endprotoent, vEv)
GO(endpwent, vEv)
// endrpcent
GO(endservent, vEv)
GO(endspent, vEv)
// endttyent
// endusershell
GOW(endutent, vEv)
// endutxent
DATAM(environ, 4)
DATAM(_environ, 4)
DATAM(__environ, 4)    // type B
// envz_add
// envz_entry
// envz_get
// envz_merge
// envz_remove
// envz_strip
GOM(epoll_create, iEEi)     //%% not needed, but used in syscall
GOM(epoll_create1, iEEO)    //%%
GOM(epoll_ctl, iEEiiip)     //%% align epool_event structure
// epoll_pwait
GOM(epoll_wait, iEEipii)    //%% need realign of epoll_event structure
// erand48
// erand48_r    // Weak
//GO(err, vEippppppppp)
// errno    // type B
GOM(__errno_location, pEEv)
//GOW(error, vEiippppppppp)  // Simple attempt: there is a vararg, but the alignment will/may be off if it tries some Double in the "printf" part
// error_at_line    // Weak
// error_message_count  // type B
// error_one_per_line   // type B
// error_print_progname // type B
//GO(errx, vEippppppppp)
//GO(ether_aton, pEp)
//GO(ether_aton_r, pEpp)
//GO(ether_hostton, iEpp)
//GO(ether_line, iEppp)
//GO(ether_ntoa, pEp)
//GO(ether_ntoa_r, pEpp)
//GO(ether_ntohost, iEpp)
//GOW(euidaccess, iEpi)
GO(eventfd, iEui)
//GO(eventfd_read, iEip)
//GO(eventfd_write, iEiU)
GO2(execl, iEEpV, my32_execv)
//GO2(execle, iEEpV, my32_execve)  // Nope! This one needs wrapping, because is char*, char*, ..., char*[]
GO2(execlp, iEpV, my32_execvp)
GOWM(execv, iEEpp)      //%%
GOM(execve, iEEppp)     //%% and this one too...
GOWM(execvp, iEEpp)     //%%
GOWM(execvpe, iEEppp)   //%%
GO2(exit, vFEi, my_exit)
GO(_exit, vEi)
GOW(_Exit, vEi)
GOM(__explicit_bzero_chk, vEEpuu)    //%% not always defined
GO(faccessat, iEipii)
// fattach
//GO(__fbufsize, uEp)
GOW(fchdir, iEi)
// fchflags
GOW(fchmod, iEiu)
GO(fchmodat, iEipui)
GOW(fchown, iEiuu)
//GO(fchownat, iEipuii)
GO(fclose, iES)
GOW(fcloseall, iEv)
GOM(fcntl, iEEiiN)   //%% this also use a vararg for 3rd argument
GOM(__fcntl, iEEiiN) //%%
GO2(__fcntl_time64, iEiiN, my_fcntl)
GOM(fcntl64, iEEiiN) //%%
//GO(fcvt, pEdipp)
//GO(fcvt_r, iEdipppL)
GO(fdatasync, iEi)
// fdetach
GO(fdopen, SEip)
GOW(fdopendir, pEi)
GOW(feof, iES)
//GO(feof_unlocked, iEp)
GOW(ferror, iES)
//GO(ferror_unlocked, iEp)
//GO(fexecve, iEipp)  //TODO: Check if needed to be wrapped, and target checked for x86 / native?
GOW(fflush, iES)
GO(fflush_unlocked, iES)
GO(ffs, iEi)
// __ffs
GOW(ffsl, iEl)
GO(ffsll, iEI)
GOW(fgetc, iES)
GOW(fgetc_unlocked, iES)
// fgetgrent
// fgetgrent_r  // Weak
GO(fgetpos, iESBliu_)
GO(fgetpos64, iESp)
// fgetpwent
// fgetpwent_r  // Weak
GOW(fgets, pEpiS)
GO(__fgets_chk, pEpLiS)
// fgetspent
// fgetspent_r  // Weak
GOW(fgets_unlocked, pEpiS)
// __fgets_unlocked_chk
//GOW(fgetwc, iEp)
//GOW(fgetwc_unlocked, iEp)
//GO(fgetws, pEpip)
// __fgetws_chk
//GO(fgetws_unlocked, pEpip)
// __fgetws_unlocked_chk
GO(fgetxattr, iEippL)
GO(fileno, iES)
GOW(fileno_unlocked, iES)
GOW(finite, iEd)
GO(__finite, iEd)
GOW(finitef, iEf)
// __finitef
// finitel  // Weak
// __finitel
// __flbf
GO(flistxattr, iEipL)
GOW(flock, iEii)
GOW(flockfile, vFS)
GOW(_flushlbf, vEv)
//GO(fmemopen, pEpup)
// fmtmsg
GO(fnmatch, iEppi)
GO2(fopen, SEEpp, my_fopen)           //%%
GOW2(fopen64, SEEpp, my_fopen64)         //%%
//GOM(fopencookie, pEEpppppp) //%% last 4p are a struct with 4 callbacks...
GOWM(fork, iEEv)             //%%
GOM(__fork, iEEv)           //%%
// __fortify_fail
GOW(fpathconf, lEii)
//GO(__fpending, uEp)
GOM(fprintf, iEESpV) //%%
GOM(__fprintf_chk, iEESipV) //%%
// __fpu_control    // type B
//GO(__fpurge, vEp)
GOW(fputc, iEiS)
//GO(fputc_unlocked, iEip)
GOW(fputs, iEpS)    // Weak
//GO(fputs_unlocked, iEpp)
GO(fputwc, uEiS)
//GO(fputwc_unlocked, iEip)
//GO(fputws, iEpp)
//GO(fputws_unlocked, iEpp)
GOW(fread, LEpLLS)
//GO(__freadable, iEp)
GO(__fread_chk, uEpLLLS)
//GO(__freading, iEp)
GO(fread_unlocked, LEpLLS)
//GO(__fread_unlocked_chk, uEpuuup)
GO(free, vEp)
GOM(freeaddrinfo, vEEp)
//DATAV(__free_hook, 4)
GO(freeifaddrs, vEp)
GOW(freelocale, vEA)
GO(__freelocale, vEA)
GO(fremovexattr, iEip)
GO(freopen, SEppS)
GO(freopen64, SEppS)
GOW(frexp, dFdp)
// frexpf   // Weak
#ifdef HAVE_LD80BITS
GOW(frexpl, DFDp)
#else
GOW2(frexpl, KFKp, frexp)
#endif
GOM(fscanf, iEESpV)
GO(fseek, iESli)
GO(fseeko, iESli)
GO(fseeko64, iESIi)
GO(__fsetlocking, iESi)
GO(fsetpos, iEpBlii_)
//GO(fsetpos64, iEpp)
GO(fsetxattr, iEippLi)
GOM(fstat, iEip)    //%%,noE
GOM(fstat64, iEip)  //%%,noE
GOM(__fstat64_time64, iFEip)
GOM(fstatat, iEEippi)
GOM(fstatat64, iEEippi)
GO2(__fstatat64_time64, iEippi, fstatat)
GOWM(fstatfs, iEip) //%%,noE
GOWM(fstatfs64, iEip)    //%%,noE
GOM(fstatvfs, iEEip)
GOWM(fstatvfs64, iEEip)
GOW(fsync, iEi)
GOWM(ftell, lEES)
GO(ftello, lES)
GO(ftello64, IES)
GO(ftime, iErLWww_)
GO(ftok, iEpi)
GOW(ftruncate, iEil)
GOW(ftruncate64, iEiI)
//GOW(ftrylockfile, iEp)
//GOM(fts_children, pEEpi) //%%
GO(fts_close, iEp)
GOM(fts_open, pEEpip)
GO(fts_read, pEp)
GO(fts_set, iEppi)
GOM(ftw, iEEppi)         //%%
GOM(ftw64, iEEppi)       //%%
GOW(funlockfile, vFS)
GOM(futimens, iEEip)
GO2(__futimens64, iEip, futimens)
GOWM(futimes, iEEip)
//GO(futimesat, iEippp)
// fwide
//GOWM(fwprintf, iEEppV)   //%%
//GOM(__fwprintf_chk, iEEpvpV) //%%
//GO(__fwritable, iEp)
GOW(fwrite, LEpLLS)
GO(fwrite_unlocked, LEpLLS)
//GO(__fwriting, iEp)
// fwscanf
GOM(__fxstat, iEEiip)       //%%
GOM(__fxstat64, iEEiip)     //%% need reaalign of struct stat64
//GOM(__fxstatat, iEEiippi)   //%%
GOM(__fxstatat64, iEEiippi) //%% struct stat64 again
// __gai_sigqueue
GO(gai_strerror, tEi)
// __gconv_get_alias_db
// __gconv_get_cache
// __gconv_get_modules_db
// gcvt
GOM(getaddrinfo, iEEpppp)
// getaliasbyname
// getaliasbyname_r
// getaliasent
// getaliasent_r
// get_avphys_pages // Weak
GOW(getc, iES)
GOW(getchar, iEv)
GO(getchar_unlocked, iEv)
GOM(getcontext, iEEp)         //%%
//GOW(getc_unlocked, iEp)
GO(get_current_dir_name, pEv)
GOW(getcwd, tEpL)
//GO(__getcwd_chk, pEpLL)
//GO(getdate, pEp)
// getdate_err  // type B
// getdate_r    // Weak
GOW(getdelim, iEbp_bL_iS)
GOW(__getdelim, iEbp_bL_iS)
// getdirentries
// getdirentries64
//GO(getdomainname, iEpu)
// __getdomainname_chk
GOW(getdtablesize, iEv)
GOW(getegid, uEv)
GO(getenv, tEp)
GOW(geteuid, uEv)
// getfsent
// getfsfile
// getfsspec
GOW(getgid, uEv)
//GO(getgrent, pEv)
// getgrent_r
//GO(getgrgid, pEu)
GOM(getgrgid_r, iEEuppLp)
GOM(getgrnam, pEEp)
GOM(getgrnam_r, iEEpppLp)
GO(getgrouplist, iEpipp)
GOW(getgroups, iEip)
GO(__getgroups_chk, iEipL)
GOM(gethostbyaddr, pFEpui)
GOM(gethostbyaddr_r, iFEpuippupp)
GOM(gethostbyname, pFEp)
//GO(gethostbyname2, pFpi)
GOM(gethostbyname2_r, iFEpippupp)
GOM(gethostbyname_r, iFEpppupp)
//GO(gethostent, pFv)
//GO(gethostent_r, iFppupp)
GO(gethostid, LFv)
GOW(gethostname, iEpL)
// __gethostname_chk
GOM(getifaddrs, iEEbp_)
// getipv4sourcefilter
//GOW(getitimer, iEip)
// get_kernel_syms  // Weak
GOW(getline, iEbp_bL_S)
GO(getloadavg, iEpi)
GO(getlogin, pEv)
GO(getlogin_r, iEpL)
// __getlogin_r_chk
GOM(getmntent, pEES)
// __getmntent_r
GOW(getmntent_r, pESBppppii_pi)
// getmsg
// get_myaddress
GO(getnameinfo, iEpupupui)
// getnetbyaddr
// getnetbyaddr_r
// getnetbyname
// getnetbyname_r
// getnetent
// getnetent_r
// getnetgrent
// getnetgrent_r    // Weak
// getnetname
GOW(get_nprocs, iEv)
//GOW(get_nprocs_conf, iEv)
//GOM(getopt, iEipp)             //%noE
GOM(getopt_long, iEipppp)      //%noE
//GOM(getopt_long_only, iEipppp) //%noE
GOW(getpagesize, iEv)
GO(__getpagesize, iEv)
GO(getpass, tEp)
GOW(getpeername, iEipp)
GOW(getpgid, iEi)
// __getpgid
GO(getpgrp, iEv)
// get_phys_pages   // Weak
GO(getpid, iEv)
GO(__getpid, uEv)
// getpmsg
GOW(getppid, iEv)
GO(getpriority, iEuu)
GO(getrandom, iEpLu)
GOM(getprotobyname, pEEp)
GOM(getprotobyname_r, iEEpppup)
//GO(getprotobynumber, pEi)
GOM(getprotobynumber_r, iEEippup)
//GO(getprotoent, pEv)
//GO(getprotoent_r, iEppup)
GOW(getpt, iEv)
// getpublickey
// getpw    // Weak
GOM(getpwent, pEEv)
// getpwent_r
GOM(getpwnam, pEEp)
GOM(getpwnam_r, iEEpppLp)
GOM(getpwuid, pEEu)
GOM(getpwuid_r, iEEuppLp)
GOW(getresgid, iEppp)
GOW(getresuid, iEppp)
GOM(getrlimit, iEEup)
GO(getrlimit64, iEup)
// getrpcbyname
// getrpcbyname_r
// getrpcbynumber
// getrpcbynumber_r
// getrpcent
// getrpcent_r
// getrpcport
GOW(getrusage, iEiBLLLLLLLLLLLLLLLLLL_)
GO2(__getrusage64, iEiBUUUULLLLLLLLLLLLLL_, getrusage)
//GOW(gets, pEp)
// __gets_chk
// getsecretkey
GOM(getservbyname, pEEpp)
//GO(getservbyname_r, iEppppup)
//GO(getservbyport, pEip)
//GO(getservbyport_r, iEipppup)
// getservent
//GO(getservent_r, iEppup)
GO(getsid, iEi)
GOW(getsockname, iEipp)
GOW(getsockopt, iEiiipp)    // might need wrapping!
GO2(__getsockopt64, iEiiipp, getsockopt)
// getsourcefilter
//GO(getspent, pEv)
// getspent_r
//GO(getspnam, pEp)
// getspnam_r
// getsubopt
GOW(gettext, pEp)
GOW(gettid, iEv)
GOW(gettimeofday, iEBll_p)
//GO(__gettimeofday, iEpp)
GO2(__gettimeofday64, iEpp, gettimeofday)
// getttyent
// getttynam
GOW(getuid, uEv)
// getusershell
//GOW(getutent, pEv)
//GOW(getutent_r, iEpp)
//GOW(getutid, pEp)
//GOW(getutid_r, iEppp)
//GOW(getutline, pEp)
//GOW(getutline_r, iEppp)
// getutmp
// getutmpx
// getutxent
// getutxid
// getutxline
// getw
GO2(getwc, uES, fgetwc)
GO(getwchar, uEv)
GO(getwchar_unlocked, uEv)
//GOW(getwc_unlocked, iEp)
//GO(getwd, pEp)
// __getwd_chk
GO(getxattr, iEpppL)
GOM(glob, iEEpipp)             //%%
GOM(glob64, iEEpipp)           //%%
GOM(globfree, vEEp)             //%%
GOM(globfree64, vEEp)           //%%
// glob_pattern_p   // Weak
GOM(gmtime, pEEp)
GOM(__gmtime64, pEEp)
GO2(__gmtime_r, pEpp, my32_gmtime_r)
GOWM(gmtime_r, pEEpp)
GO(gnu_dev_major, uEU)
GO(gnu_dev_makedev, UEuu)
GO(gnu_dev_minor, uEU)
GOW(gnu_get_libc_release, tEv)
GOW(gnu_get_libc_version, tEv)
// __gnu_mcount_nc
// __gnu_Unwind_Find_exidx
GO(grantpt, iEi)
// group_member // Weak
// gsignal  // Weak
// gtty
GOW(hasmntopt, pErppppii_p)
// hcreate
// hcreate_r
// hdestroy // Weak
// hdestroy_r
//DATA(h_errlist, 4)
// h_errno  // type B
GOM(__h_errno_location, pFEv)
//GO(herror, vFp)
// h_nerr   // type R
// host2netname
// hsearch
// hsearch_r
//GO(hstrerror, pFi)
GO(htonl, uEu)
GO(htons, WEW)
GO(iconv, LELbp_bL_bp_bL_)
//GO(iconv_canonicalize, pEp)
GO(iconv_close, iEp)
GO(iconv_open, pEpp)
//GO(if_freenameindex, vEp)
GOW(if_indextoname, pEup)
//GO(if_nameindex, pEv)
GO(if_nametoindex, uEp)
// imaxabs  // Weak
GOWS(imaxdiv, pEpII) //%%
DATAM(in6addr_any, 16)  // type R
DATAM(in6addr_loopback, 16) // type R
// inb  // Weak
//GOW(index, pEpi)
// inet6_opt_append
// inet6_opt_find
// inet6_opt_finish
// inet6_opt_get_val
// inet6_opt_init
// inet6_option_alloc
// inet6_option_append
// inet6_option_find
// inet6_option_init
// inet6_option_next
// inet6_option_space
// inet6_opt_next
// inet6_opt_set_val
// inet6_rth_add
// inet6_rth_getaddr
// inet6_rth_init
// inet6_rth_reverse
// inet6_rth_segments
// inet6_rth_space
GO(inet_addr, uEp)
GOW(inet_aton, iEpp)
// inet_lnaof
// inet_makeaddr
// inet_netof
//GO(inet_network, iEp)
// inet_nsap_addr
//GO(inet_nsap_ntoa, pEipp)
GO(inet_ntoa, tEu)
GO(inet_ntop, pEippu)
GO(inet_pton, iEipp)
//GO(initgroups, iEpi)
// init_module
// initstate    // Weak
GOW(initstate_r, iEupuBpppiiip_)
// inl  // Weak
GO(innetgr, iEpppp)
GO(inotify_add_watch, iEipu)
GO(inotify_init, iEv)
GO(inotify_init1, iEi)
GO(inotify_rm_watch, iEii)
// insque
// __internal_endnetgrent
// __internal_getnetgrent_r
// __internal_setnetgrent
// inw  // Weak
//DATA(_IO_2_1_stderr_, 152)  //sizeof(struct _IO_FILE_plus)
//DATA(_IO_2_1_stdin_, 152)
//DATA(_IO_2_1_stdout_, 152)
//GO(_IO_adjust_column, uEupi)
// _IO_adjust_wcolumn
GOM(ioctl, iEEiLp)   //the vararg is just to have optional arg of various type, but only 1 arg
GO2(__ioctl_time64, iEiLp, ioctl)
//GO(_IO_default_doallocate, iES)
//GO(_IO_default_finish, vESi)
//GO(_IO_default_pbackfail, iESi)
//GO(_IO_default_uflow, iES)
//GO(_IO_default_xsgetn, LESpL)
//GO(_IO_default_xsputn, LESpL)
//GO(_IO_doallocbuf, vES)
//GO(_IO_do_write, iESpL)
// _IO_fclose
// _IO_fdopen
// _IO_feof
// _IO_ferror
// _IO_fflush
// _IO_fgetpos
// _IO_fgetpos64
// _IO_fgets
//GO(_IO_file_attach, pESi)
//GO(_IO_file_close, iES)
//GO(_IO_file_close_it, iES)
//GO(_IO_file_doallocate, iES)
// _IO_file_finish
//GO(_IO_file_fopen, pESppi)
//GO(_IO_file_init, vES)
//DATA(_IO_file_jumps, 4)
//GO(_IO_file_open, pESpiiii)
//GO(_IO_file_overflow, iESi)
//GO(_IO_file_read, lESpl)
//GO(_IO_file_seek, IESIi)
//GO(_IO_file_seekoff, IESIii)
//GO(_IO_file_setbuf, pESpl)
//GOM(_IO_file_stat, iEESp)
//GO(_IO_file_sync, iES)
//GO(_IO_file_underflow, iES)
//GO(_IO_file_write, lESpl)
//GO(_IO_file_xsputn, LESpL)
//GO(_IO_flockfile, vES)
//GO(_IO_flush_all, iEv)
//GO(_IO_flush_all_linebuffered, vEv)
// _IO_fopen
// _IO_fprintf  // Weak
// _IO_fputs
// _IO_fread
//GO(_IO_free_backup_area, vES)
// _IO_free_wbackup_area
// _IO_fsetpos
// _IO_fsetpos64
// _IO_ftell
// _IO_ftrylockfile
//GO(_IO_funlockfile, vES)
// _IO_fwrite
GO(_IO_getc, iES)
// _IO_getline
//GO(_IO_getline_info, LESpLiip)
// _IO_gets
//GO(_IO_init, vESi)
//GO(_IO_init_marker, vEpS)
// _IO_init_wmarker
// _IO_iter_begin
// _IO_iter_end
// _IO_iter_file
// _IO_iter_next
// _IO_least_wmarker
//GO(_IO_link_in, vEp)
//DATA(_IO_list_all, 4)
// _IO_list_lock
// _IO_list_resetlock
// _IO_list_unlock
//GO(_IO_marker_delta, iEp)
//GO(_IO_marker_difference, iEpp)
//GO(_IO_padn, iEpii)
//GO(_IO_peekc_locked, iEp)
GOW(ioperm, iELLi)
GOW(iopl, iEi)
// _IO_popen
// _IO_printf
//GO(_IO_proc_close, iES)
//GO(_IO_proc_open, pESpp)
GO(_IO_putc, iEiS)
// _IO_puts
//GO(_IO_remove_marker, vEp)
//GO(_IO_seekmark, iESpi)
//GO(_IO_seekoff, IESIii)
//GO(_IO_seekpos, IESIi)
// _IO_seekwmark
//GO(_IO_setb, vESppi)
// _IO_setbuffer
// _IO_setvbuf
//GO(_IO_sgetn, uEppu)
// _IO_sprintf
//GO(_IO_sputbackc, iESi)
// _IO_sputbackwc
// _IO_sscanf
//GO(_IO_str_init_readonly, vEppi)
//GO(_IO_str_init_static, vEppup)
//GO(_IO_str_overflow, iESi)
//GO(_IO_str_pbackfail, iESi)
//GO(_IO_str_seekoff, UESUii)
//GO(_IO_str_underflow, iES)
//GO(_IO_sungetc, iEp)
// _IO_sungetwc
//GO(_IO_switch_to_get_mode, iEp)
// _IO_switch_to_main_wget_area
// _IO_switch_to_wbackup_area
// _IO_switch_to_wget_mode
// _IO_ungetc
//GO(_IO_un_link, vEp)
//GO(_IO_unsave_markers, vEp)
// _IO_unsave_wmarkers
//GOM(_IO_vfprintf, iEEpppp) //%%
//GOM(_IO_vfscanf, iEEppp)   //%%
// _IO_vsprintf
// _IO_wdefault_doallocate
// _IO_wdefault_finish
// _IO_wdefault_pbackfail
// _IO_wdefault_uflow
// _IO_wdefault_xsgetn
// _IO_wdefault_xsputn
// _IO_wdoallocbuf
// _IO_wdo_write
//DATA(_IO_wfile_jumps, 4)
// _IO_wfile_overflow
// _IO_wfile_seekoff
// _IO_wfile_sync
// _IO_wfile_underflow
// _IO_wfile_xsputn
// _IO_wmarker_delta
// _IO_wsetb
// iruserok
// iruserok_af
GO(isalnum, iEi)
// __isalnum_l
// isalnum_l    // Weak
GO(isalpha, iEi)
// __isalpha_l
// isalpha_l    // Weak
GO(isascii, iEi)
// __isascii_l  // Weak
// isastream
GOW(isatty, iEi)
GO(isblank, iEi)
// __isblank_l
// isblank_l    // Weak
GO(iscntrl, iEi)
// __iscntrl_l
// iscntrl_l    // Weak
// isctype  // Weak
// __isctype
GO(isdigit, iEi)
// __isdigit_l
// isdigit_l    // Weak
// isfdtype
GO(isgraph, iEi)
// __isgraph_l
// isgraph_l    // Weak
GOW(isinf, iEd)
GO(__isinf, iEd)
GOW(isinff, iEf)
GO(__isinff, iEf)
// isinfl   // Weak
// __isinfl
GO(islower, iEi)
// __islower_l
// islower_l    // Weak
GOW(isnan, iEd)
GO(__isnan, iEd)
GOW(isnanf, iEf)
GO(__isnanf, iEf)
// isnanl   // Weak
// __isnanl
GO2(__isoc99_fscanf, iEESpV, my32_fscanf)
// __isoc99_fwscanf
// __isoc99_scanf
GOM(__isoc99_sscanf, iEEppV)  //%%
GOM(__isoc99_swscanf, iEEppV)   //%%
GOM(__isoc99_vfscanf, iEEppp) //%%
// __isoc99_vfwscanf
// __isoc99_vscanf
GOM(__isoc99_vsscanf, iEEppp) //%%
// __isoc99_vswscanf
// __isoc99_vwscanf
// __isoc99_wscanf
GO2(__isoc23_fscanf, iEESpV, my32_fscanf)
GO2(__isoc23_sscanf, iEEppV, my32_sscanf)
GO2(__isoc23_vsscanf, iEEppp, my32_vsscanf)
GO2(__isoc23_wcstol, lEpBp_i, my32_wcstol)
GO2(__isoc23_strtoll, IEpBp_i, strtoll)
GO2(__isoc23_strtoull, UEpBp_i, strtoull)
GO2(__isoc23_strtol, lEpBp_i, my32_strtol)
GO2(__isoc23_strtoul, LEpBp_i, my32_strtoul)
GO(isprint, iEi)
// __isprint_l
// isprint_l    // Weak
GO(ispunct, iEi)
// __ispunct_l
// ispunct_l    // Weak
GO(isspace, iEi)
// __isspace_l
// isspace_l    // Weak
GO(isupper, iEi)
// __isupper_l
// isupper_l    // Weak
GOW(iswalnum, iEu)
// __iswalnum_l
//GOW(iswalnum_l, iEua)
GOW(iswalpha, iEu)
// __iswalpha_l
//GOW(iswalpha_l, iEua)
GOW(iswblank, iEu)
// __iswblank_l
GOW(iswblank_l, iEua)
GOW(iswcntrl, iEu)
// __iswcntrl_l
GOW(iswcntrl_l, iEua)
GOW(iswctype, iEuL)
// __iswctype
GO(__iswctype_l, iEuLa)
// iswctype_l   // Weak
GOW(iswdigit, iEu)
// __iswdigit_l
//GOW(iswdigit_l, iEua)
GOW(iswgraph, iEu)
// __iswgraph_l
//GOW(iswgraph_l, iEua)
GOW(iswlower, iEu)
// __iswlower_l
//GOW(iswlower_l, iEua)
GOW(iswprint, iEu)
// __iswprint_l
//GOW(iswprint_l, iEua)
GOW(iswpunct, iEu)
// __iswpunct_l
//GOW(iswpunct_l, iEua)
GOW(iswspace, iEu)
// __iswspace_l
//GOW(iswspace_l, iEua)
GOW(iswupper, iEu)
// __iswupper_l
//GOW(iswupper_l, iEua)
GOW(iswxdigit, iEu)
// __iswxdigit_l
//GOW(iswxdigit_l, iEua)
GO(isxdigit, iEi)
// __isxdigit_l
// isxdigit_l   // Weak
// _itoa_lower_digits   // type R
// __ivaliduser
GO(jrand48, lEp)
// jrand48_r    // Weak
// key_decryptsession
// key_decryptsession_pk
// __key_decryptsession_pk_LOCAL    // type B
// key_encryptsession
// key_encryptsession_pk
// __key_encryptsession_pk_LOCAL    // type B
// key_gendes
// __key_gendes_LOCAL   // type B
// key_get_conv
// key_secretkey_is_set
// key_setnet
// key_setsecret
GOW(kill, iEii)
GO(killpg, iEii)
// klogctl
// l64a
GO(labs, lEl)
// lchmod
GOW(lchown, iEpuu)
// lckpwdf  // Weak
// lcong48
// lcong48_r    // Weak
GOW(ldexp, dFdi)
GOW(ldexpf, fFfi)
#ifdef HAVE_LD80BITS
GOW(ldexpl, DFDi)
#else
GOW2(ldexpl, KFKi, ldexp)
#endif
GOS(ldiv, pEEpii)               //%% return a struct, so address of stuct is on the stack, as a shadow 1st element
GOM(lfind, pEEppbL_Lp)            //%%
GO(lgetxattr, iEpppL)
GOM(__libc_alloca_cutoff, iEEL) //%%
// __libc_allocate_rtsig
// __libc_allocate_rtsig_private
GO2(__libc_calloc, pELL, calloc)
// __libc_clntudp_bufcreate
GO(__libc_current_sigrtmax, iEv)
// __libc_current_sigrtmax_private
GO(__libc_current_sigrtmin, iEv)
// __libc_current_sigrtmin_private
//GOM(__libc_dlclose, iEEp)       //%%
// __libc_dl_error_tsd
//GOM(__libc_dlopen_mode, pEEpi)  //%%
//GOM(__libc_dlsym, pEEpp)        //%%
// __libc_fatal
// __libc_fork
GO2(__libc_free, vEp, free)
// __libc_freeres
GOM(__libc_init_first, vEEipV)  //%%
DATAM(_libc_intl_domainname, 4)    // type R
//GO2(__libc_open, iEEpOu, my_open)
// __libc_longjmp
// __libc_mallinfo
GO2(__libc_malloc, pEL, malloc)
// __libc_mallopt
GO2(__libc_memalign, pELL, memalign)
// __libc_pthread_init
GO2(__libc_pvalloc, pEL, pvalloc)
// __libc_pwrite
//GO2(__libc_read, lEipL, my_read) //%%,noE
GO2(__libc_realloc, pEpL, realloc)
// __libc_sa_len
// __libc_siglongjmp
GOM(__libc_start_main, iEEpippppp) //%%
GO2(__libc_sigaction, iEEipp, my32_sigaction) //%%
// __libc_system
// __libc_thread_freeres
GO2(__libc_valloc, pEL, valloc)
GOW(link, iEpp)
//GO(linkat, iEipipi)
GOW(listen, iEii)
GO(listxattr, iEppL)
// llabs
// lldiv
GO(llistxattr, iEppL)
// llseek   // Weak
// loc1 // type B
// loc2 // type B
GOWM(localeconv, pEEv)
GOM(localtime, pEEp)
GOM(__localtime64, pEEp)
GOWM(localtime_r, pEEpp)
GO(lockf, iEiil)
GO(lockf64, iEiiI)
// locs // type B
GOM(longjmp, vEEpi)         //%%
GOM(_longjmp, vEEpi)        //%%
GOM(__longjmp_chk, vEEpi)   //%%
GO(lrand48, lEv)
// lrand48_r
GO(lremovexattr, iEpp)
GOM(lsearch, pEEppbL_Lp)      //%%
GOW(lseek, lEili)
// __lseek  // Weak
GOW(lseek64, IEiIi)
GO(lsetxattr, iEpppLi)
//GO(lutimes, iEpp)
GOM(__lxstat, iEEipp)       //%%
GOM(__lxstat64, iEEipp)     //%%
GO(madvise, iEpLi)
GOWM(makecontext, vEEppiV)   //%%
GOW(mallinfo, pEv)
GOM(malloc, pEL)            //%%,noE
// malloc_get_state // Weak
//DATAV(__malloc_hook, 4)
//DATAV(__malloc_initialize_hook, 4)
// malloc_set_state // Weak
// malloc_stats // Weak
GOW(malloc_trim, iEL)
GOW(malloc_usable_size, LEp)
GOW(mallopt, iEii)  // Weak
// mallwatch    // type B
//GO(mblen, iEpL)
//GOW(mbrlen, LEpLp)
//GO(__mbrlen, LEpLp)
GOW(mbrtowc, LEppLp)
GO(__mbrtowc, LEppLp)
GOW(mbsinit, iEp)
GOW(mbsnrtowcs, LEpbp_LLp)
// __mbsnrtowcs_chk
GOW(mbsrtowcs, LEpbp_Lp)
// __mbsrtowcs_chk
GO(mbstowcs, LEppL)
GO(__mbstowcs_chk, LEppLL)
GO(mbtowc, iEppL)
// mcheck
// mcheck_check_all
// mcheck_pedantic
// _mcleanup
//GOWM(mcount, vEpp)   //%%,noE
// _mcount
GOW(memalign, pELL)
//DATAV(__memalign_hook, 4)
GOW(memccpy, pEppiL)
GO(memchr, pEpiL)
GO(memcmp, iEppL)
GO(memcpy, pEppL)
GO(__memcpy_chk, pEppLL)
// memfrob
GO(memfd_create, iEpu)
GO(memmem, pEpLpL)
GO(memmove, pEppL)
GO(__memmove_chk, pEppLL)
GO(mempcpy, pEppL)
GO(__mempcpy, pEppL)
// __mempcpy_chk
// __mempcpy_small
GOW(memrchr, pEpiL)
GO(memset, pEpiL)
GO(__memset_chk, pEpiLL)
GO(mincore, iEpLp)
GOW(mkdir, iEpu)
GO(mkdirat, iEipu)
GO(mkdtemp, pEp)
GO(mkfifo, iEpu)
//GO(mkfifoat, iEipu)
GO(mkostemp, iEpi)
GO(mkostemp64, iEpi)
GO(mkstemp, iEp)
GO(mkstemp64, iEp)
//GO(mktemp, pEp)
GO(mktime, LEbiiiiiiiiilt_)
GO2(__mktime64, LEp, mktime)
GO(mlock, iEpL)
GO(mlockall, iEi)
GOM(mmap, pEEpLiiil)    //%%
GOM(mmap64, pEEpLiiiI)  //%%
// modf // Weak
// modff    // Weak
// modfl    // Weak
// moncontrol   // Weak
// monstartup   // Weak
// __monstartup
//DATA(__morecore, 4)
GOW(mount, iEpppLp)
// mprobe
GOM(mprotect, iEEpLi)   //%%
// mrand48
// mrand48_r
GOWM(mremap, pEEpLLiN)	//%% 5th hidden paramerer "void* new_addr" if flags is MREMAP_FIXED
//GO(msgctl, iEiip)
//GOW(msgget, iEpi)
//GOW(msgrcv, lEipLli)
//GOW(msgsnd, iEipLi)
GOW(msync, iEpLi)
GO(mtrace, vFv)
GO(munlock, iEpL)
GO(munlockall, iEv)
GOM(munmap, iEEpL)       //%%
GO(muntrace, vFv)
GOWM(nanosleep, iErLL_BLL_)	 //%%,noE
GO2(__nanosleep64, iEpp, nanosleep)
// __nanosleep  // Weak
// netname2host
// netname2user
GOW(newlocale, aEipa)
GO(__newlocale, aEipa)
// nfsservctl
GOM(nftw, iEEppii)       //%%
GOM(nftw64, iEEppii)     //%%
//GOW(ngettext, pEppu)
GO(nice, iEi)
// _nl_default_dirname   // type R
// _nl_domain_bindings   // type B
GO(nl_langinfo, tEi)
GO(__nl_langinfo_l, tEia)
//GOW(nl_langinfo_l, pEup)
//DATAB(_nl_msg_cat_cntr, 4) // type B
// nrand48
// nrand48_r    // Weak
// __nss_configure_lookup
// __nss_database_lookup
// __nss_disable_nscd
// _nss_files_parse_grent
// _nss_files_parse_pwent
// _nss_files_parse_spent
// __nss_group_lookup
// __nss_group_lookup2
// __nss_hostname_digits_dots
// __nss_hosts_lookup
// __nss_hosts_lookup2
// __nss_lookup_function
// __nss_next
// __nss_next2
// __nss_passwd_lookup
// __nss_passwd_lookup2
// __nss_services_lookup2
GOW(ntohl, uEu)
GOW(ntohs, WEW)
// ntp_adjtime  // Weak
// ntp_gettime
// _null_auth   // type B
// _obstack_allocated_p
//DATAM(obstack_alloc_failed_handler, 4)
//GOM(_obstack_begin, iEpLLpp) //%%,noE
// _obstack_begin_1
//DATA(obstack_exit_failure, 4)
//GOM(_obstack_free, vEpp)     //%%,noE
//GOM(obstack_free, vEpp)      //%%,noE
// _obstack_memory_used
GOM(_obstack_newchunk, vEEpi)
// obstack_printf   // Weak
// __obstack_printf_chk
GOWM(obstack_vprintf, iEEpppp)  //%%
// __obstack_vprintf_chk
//GOWM(on_exit, iEEpp)  //%%
//GO2(__on_exit, iEEpp, my_on_exit)   //%%
GOWM(open, iEEpON)    //%%
GOW2(__open, iEEpON, my32_open)  //%%
GO(__open_2, iEpO)
GOWM(open64, iEEpON)  //%%
// __open64 // Weak
GO(__open64_2, iEpO)
//GOW(openat, iEipON)
GO(__openat_2, iEipO)
GOW(openat64, iEipON)
//GO(__openat64_2, iEipON)
// __open_catalog
GOW(opendir, pEp)
GO(openlog, vEpii)
GOW(open_memstream, SEpp)
// open_wmemstream
//DATAB(optarg, 4)
//DATA(opterr, 4)
DATA(optind, 4)
//DATA(optopt, 4)
// outb // Weak
// outl // Weak
// outw // Weak
//GO(__overflow, iEpi)
GO(parse_printf_format, uEpup)
// passwd2des
GOW(pathconf, lEpi)
GOW(pause, iEv)
GO(pclose, iES)
GO(perror, vEp)
GOW(personality, iFL)
GOW(pipe, iEp)
// __pipe
GOW(pipe2, iEpO) // assuming this works the same as pipe, so pointer for array of 2 int
// pivot_root
// pmap_getmaps
// pmap_getport
// pmap_rmtcall
// pmap_set
// pmap_unset
GOW(poll, iEpLi)    // poll have an array of struct as 1st argument
GO(__poll, iEpLi)
GO(popen, SEpp)
GO(posix_fadvise, iEilli)
GO(posix_fadvise64, iEiIIi)
GO(posix_fallocate, iEill)
GO(posix_fallocate64, iEiII)
GO(posix_madvise, iEpLi)
GOW(posix_memalign, iEBp_LL)
// posix_openpt // Weak
GOM(posix_spawn, iEEpppppp) //%%
GO(posix_spawnattr_destroy, iFp)
// posix_spawnattr_getflags
// posix_spawnattr_getpgroup
// posix_spawnattr_getschedparam
// posix_spawnattr_getschedpolicy
// posix_spawnattr_getsigdefault
// posix_spawnattr_getsigmask
GO(posix_spawnattr_init, iFp)
GOW(posix_spawnattr_setflags, iFpw)
// posix_spawnattr_setpgroup
// posix_spawnattr_setschedparam
// posix_spawnattr_setschedpolicy
GOW(posix_spawnattr_setsigdefault, iFpp)
// posix_spawnattr_setsigmask
GOM(posix_spawn_file_actions_addclose, iEEpi)   //%%
GOM(posix_spawn_file_actions_adddup2, iEEpii)   //%%
GOM(posix_spawn_file_actions_addopen, iEEpipOi) //%%
GOM(posix_spawn_file_actions_destroy, iEEp) //%%
GOM(posix_spawn_file_actions_init, iEEp)    //%%
GOM(posix_spawnp, iEEpppppp) //%%
GO(ppoll, iEpurLL_p)
GO(__ppoll_chk, iEpurLL_pL)
GOWM(prctl, iEEiLLLL)
GOWM(__prctl_time64, iEEiLLLL)
GOW(pread, lEipLl)
GOW(pread64, lEipLI)
// __pread64    // Weak
// __pread64_chk
//GOM(preadv64, lEEipiI)  //%% not always present
// __pread_chk
GOM(printf, iEEpV) //%%
GOM(__printf_chk, iEEipV) //%%
//GO(__printf_fp, iEppp)  // does this needs aligment?
// printf_size
// printf_size_info
// profil   // Weak
// __profile_frequency
DATAM(__progname, 4)
DATAM(__progname_full, 4)
DATAM(program_invocation_name, 4)
DATAM(program_invocation_short_name, 4)
GOW(pselect, iEippprLL_p)
// psignal
//GO(ptrace, iEiupp)  // will that work???
//GO(ptsname, pEi)
GOW(ptsname_r, iEipu)
// __ptsname_r_chk
GOW(putc, iEiS)
GO(putchar, iEi)
GO(putchar_unlocked, iEi)
//GO(putc_unlocked, iEip)
GO(putenv, iEp)
// putgrent
// putmsg
// putpmsg
// putpwent
GOW(puts, iEp)
// putspent
//GOW(pututline, pEp)
// pututxline
// putw
GO(putwc, uEiS)
// putwchar
GO(putwchar_unlocked, uEi)
//GO(putwc_unlocked, iEip)
// pvalloc  // Weak
// pwrite   // Weak
GOW(pwrite64, lEipLI)
// __pwrite64   // Weak
//GOM(pwritev64, lEEipiI)  //%% not always present
// qecvt
#ifdef HAVE_LD80BITS
//GO(qecvt_r, iEDipppL)
#else
//GO(qecvt_r, iEKipppL)
#endif
// qfcvt
#ifdef HAVE_LD80BITS
//GO(qfcvt_r, iEDipppL)
#else
//GO(qfcvt_r, iEKipppL)
#endif
// qgcvt
GOM(qsort, vEEpLLp) //%%
//GOM(qsort_r, vEEpLLpp) //%%
// query_module // Weak
//GO(quotactl, iEipip)
GO(raise, iEi)
GO(rand, iEv)
GOW(random, lEv)
GOW(random_r, iEbpppiiip_p)
GO(rand_r, iEp)
GOW(rawmemchr, pEpi)
GO(__rawmemchr, pEpi)
// rcmd
// rcmd_af
// __rcmd_errstr    // type B
GOM(read, lEipL) //%%,noE
//GOW(__read, lEipL)
// readahead    // Weak
GO(__read_chk, lEipLL)
GOWM(readdir, pEEp)  //%%
GO(readdir64, pEp)  // check if alignement is correct
//GOM(readdir_r, iEEppp)  //%% should also be weak
GO2(readlink, lEEppL, my_readlink) //%%
GOM(readlinkat, iEEippL)
// __readlinkat_chk
// __readlink_chk
GOM(readv, lEEipi)
GO(realloc, pEpL)
//DATAV(__realloc_hook, 4)
GOM(realpath, pEEpp) //%%
GO2(__realpath_chk, pEEppi, my32_realpath)
// reboot
// re_comp  // Weak
// re_compile_fastmap   // Weak
//GOW(re_compile_pattern, pEpup)
GO(recv, lEipLi)
GO(__recv_chk, iEipLLi)
GOW(recvfrom, lEipLipp)
// __recvfrom_chk
GOM(recvmmsg, iEEipuurLL_)
GOWM(recvmsg, lEEipi)
GO2(__recvmsg64, lEEipi, my32_recvmsg)
// re_exec  // Weak
GOWM(regcomp, iEEppi)
GOWM(regerror, uEEippu)
GOM(regexec, iEEppupi)
GOWM(regfree, vEEp)
GOM(__register_atfork, iEEpppp) //%%
// register_printf_function // Weak
// registerrpc
// remap_file_pages // Weak
//GOW(re_match, iEppiip)
// re_match_2   // Weak
GO(remove, iEp)
GO(removexattr, iEpp)
// remque
GO(rename, iEpp)
GO(renameat, iEipip)
//GO(renameat2, iEipipu)
// _res // type B
//GOW(re_search, iEppiiip)
//GOW(re_search_2, iEppipiiipi)
// re_set_registers // Weak
GOW(re_set_syntax, LEL)
// _res_hconf   // type B
GO(__res_iclose, vEpi)
GO(__res_init, iEv)
//GO(__res_maybe_init, iEpi)
GO(__res_nclose, vEp)
GO(__res_ninit, iEp)
//DATA(__resp, 4)
// __res_randomid
GOM(__res_state, pEEv)
//DATA(re_syntax_options, 4)    // type B
// revoke
GO(rewind, vES)
GO(rewinddir, vEp)
// rexec
// rexec_af
// rexecoptions // type B
GOW(rindex, pEpi)
GOW(rmdir, iEp)
GO(readdir64_r, iEppBp_)
// rpc_createerr    // type B
// _rpc_dtablesize
// __rpc_thread_createerr
// __rpc_thread_svc_fdset
// __rpc_thread_svc_max_pollfd
// __rpc_thread_svc_pollfd
//GO(rpmatch, iEp)
// rresvport
// rresvport_af
// rtime
// ruserok
// ruserok_af
// ruserpass
GOW(sbrk, pEl)
GO(__sbrk, pEl)
// scalbn   // Weak
// scalbnf  // Weak
// scalbnl  // Weak
GOM(scandir, iEEpppp) //%%
GOM(scandir64, iEEpppp) //%%
//GO2(scanf, iEpp, vscanf)
//GO(__sched_cpualloc, pEu)   //TODO: check, return cpu_set_t* : should this be aligned/changed?
GO(__sched_cpucount, iEup)
//GO(__sched_cpufree, vEp)
GOM(sched_getaffinity, iEEiLp)
GOM(sched_getcpu, iEEv)
GO(__sched_getparam, iEip)
GOW(sched_getparam, iEip)
GO(__sched_get_priority_max, iEi)
GOW(sched_get_priority_max, iEi)
GO(__sched_get_priority_min, iEi)
GOW(sched_get_priority_min, iEi)
GO(__sched_getscheduler, iEi)
GOW(sched_getscheduler, iEi)
//GOW(sched_rr_get_interval, iEip)
GOM(sched_setaffinity, iEEiLp)
//GOW(sched_setparam, iEip)
GO(__sched_setscheduler, iEiip)
GOW(sched_setscheduler, iEiip)
GO(__sched_yield, iEv)
GOW(sched_yield, iEv)
GO2(__secure_getenv, tEp, secure_getenv)
GO(secure_getenv, tEp)
// seed48
// seed48_r // Weak
GO(seekdir, vEpL)
GOW(select, iEippprLL_)
GO(__select, iEippprLL_)
GO2(__select64, iEipppp, select)
GO(semctl, iEiiiN)
GOW(semget, iEiii)
GOW(semop, iEipL)
//GO(semtimedop, iEipup)
GOW(send, lEipLi)
// __send   // Weak
GO(sendfile, lEiibl_L)
GO(sendfile64, lEiipL)
GOWM(sendmsg, lEEipi)
GO2(__sendmsg64, lEEipi, my32_sendmsg)
GOM(sendmmsg, iEEipuu)
GOW(sendto, lEipLipu)
// setaliasent
GOW(setbuf, vESp)
//GOW(setbuffer, vEppL)
GOM(setcontext, iEEp) //%%
// setdomainname
GO(setegid, iEu)
GOW(setenv, iEppi)
// _seterr_reply
GO(seteuid, iEu)
// setfsent
// setfsgid
// setfsuid
GOW(setgid, iEu)
GO(setgrent, vEv)
GO(setgroups, iEup)
GO(sethostent, vFi)
// sethostid
//GO(sethostname, iEpu)
// setipv4sourcefilter
GOW(setitimer, iEirLLLL_BLLLL_)
GOM(setjmp, iEEp) //%%
GOM(_setjmp, iEEp) //%%
GO(setlinebuf, vES)
GO(setlocale, tEip)
// setlogin
GO(setlogmask, iEi)
GOW(setmntent, SEpp)
// __setmntent
// setnetent
// setnetgrent
GO(setns, iEii)
GOW(setpgid, iEii)
// __setpgid
GO(setpgrp, iEv)
GO(setpriority, iEuui)
GO(setprotoent, vEi)
GO(setpwent, vEv)
GOW(setregid, iEuu)
GOW(setresgid, iEuuu)
GOW(setresuid, iEuuu)
GOW(setreuid, iEuu)
GOM(setrlimit, iEEup)
GO(setrlimit64, iEup)
// setrpcent
// setservent
GOW(setsid, iEv)
GOW(setsockopt, iEiiipu)
GO2(__setsockopt64, iEiiipu, setsockopt)
// setsourcefilter
GO(setspent, vEv)
// setstate // Weak
//GOW(setstate_r, iEpp)
//GOW(settimeofday, iEpp)
// setttyent
GOW(setuid, iEu)
// setusershell
GOW(setutent, vEv)
// setutxent
GOW(setvbuf, iESpiL)
GO(setxattr, iEpppLi)
// sgetspent
// sgetspent_r  // Weak
#ifdef WINLATOR_GLIBC
GOW(shmat, pEipi)
GOW(shmdt, iEp)
#else
GOWM(shmat, pEEipi)
GOWM(shmdt, iEEp)
#endif
GOW(shmctl, iEiip) // this probably needs some wrapping
GO2(__shmctl64, iEiip, shmctl)
GOW(shmget, iEiLi)
GOW(shutdown, iEii)
GOWM(sigaction, iEEipp)    //%%
//GOWM(__sigaction, iEEipp)  //%%
GO(sigaddset, iEpi)
// __sigaddset
GOWM(sigaltstack, iEEpp)   //%%
// sigandset
GOW(sigblock, iEi)
GO(sigdelset, iEpi)
// __sigdelset
GO(sigemptyset, iEp)
GO(sigfillset, iEp)
GO(siggetmask, iEv)
// sighold
// sigignore
GO(siginterrupt, iEii)  // no need to wrap this one?
GO(sigisemptyset, iFp)
GO(sigismember, iEpi)
// __sigismember
GOM(siglongjmp, vEEip) //%%
GOW2(signal, pEEip, my_signal)
GO(signalfd, iFipi)
GO(__signbit, iEd)
GO(__signbitf, iEf)
// sigorset
// sigpause // Weak
// __sigpause
//GO(sigpending, iEp)
GOW(sigprocmask, iEipp)
// sigqueue // Weak
// sigrelse
// sigreturn    // Weak
GOM(sigset, pEEip) //%%
GOM(__sigsetjmp, iEEp) //%%
GOW(sigsetmask, iEi)
// sigstack
GOW(sigsuspend, iEp)
// __sigsuspend
GOW(sigtimedwait, iEpprLL_)
//GOW(sigvec, iEipp)
GOW(sigwait, iEpp)
//GOW(sigwaitinfo, iEpp)
GOW(sleep, uEu)
GOM(snprintf, iEEpLpV) //%%
GOM(__snprintf_chk, iEEpLiipV) //%%
//GOM(__snprintf, iEEpLpV) //%%
// sockatmark
GOW(socket, iEiii)
GOW(socketpair, iEiiip)
GO(splice, iEipipLu)
GOM(sprintf, iEEppV) //%%
GOM(__sprintf_chk, iEEpiipV) //%%
// sprofil  // Weak
GOW(srand, vEu)
GO(srand48, vEl)
// srand48_r    // Weak
GOW(srandom, vEu)
//GOW(srandom_r, iEup)
GOM(sscanf, iEEppV) //%%
// ssignal  // Weak
// sstk
GOM(__stack_chk_fail, vEEv) //%%
GOM(lstat64, iEpp)	//%%,noE
GOM(__lstat64_time64, iEEpp)
GOM(stat64, iEpp)	//%%,noE
GOM(__stat64_time64, iEEpp)
GOM(stat, iEpp) //%%,noE
GOWM(statfs, iEpp)  //%%,noE
// __statfs
GOWM(statfs64, iEpp)     //%%,noE
GOM(statvfs, iEEpp)
GOWM(statvfs64, iEEpp)
GOM(statx, iEEipiup)
DATAM(stderr, 4)
DATAM(stdin, 4)
DATAM(stdout, 4)
// step // Weak
// stime
GO(stpcpy, pEpp)
// __stpcpy
GO(__stpcpy_chk, pEppL)
// __stpcpy_small
GOW(stpncpy, pEppL)
//GO(__stpncpy, pEppL)
//GO(__stpncpy_chk, pEppLL)
GOW(strcasecmp, iEpp)
//GO(__strcasecmp, iEpp)
// __strcasecmp_l
// strcasecmp_l // Weak
GOW(strcasestr, pEpp)
GO(__strcasestr, pEpp)
GO(strcat, pEpp)
GO(__strcat_chk, pEppL)
GO(strchr, pEpi)
GOW(strchrnul, pEpi)
GO(strcmp, iEpp)
GO(strcoll, iEpp)
GO(__strcoll_l, iEppa)
//GOW(strcoll_l, iEppp)
GO(strcpy, pEpp)
GO(__strcpy_chk, pEppL)
// __strcpy_small
GO(strcspn, LEpp)
// __strcspn_c1
// __strcspn_c2
// __strcspn_c3
GOW(strdup, pEp)
GO(__strdup, pEp)
GO(strerror, tEi)
GO(strerror_l, pEia)
GO(__strerror_r, tEipL)
GOW(strerror_r, tEipL)
//GO(strfmon, lEpLpppppppppp) //vaarg, probably needs align, there are just double...
// __strfmon_l
// strfmon_l    // Weak
// strfry
GO(strftime, LEpLpriiiiiiiiilt_)
GO(__strftime_l, LEpLpriiiiiiiiilt_a)
GOW(strftime_l, LEpLpriiiiiiiiilt_a)
GO(strlen, LEp)
GOW(strncasecmp, iEppL)
// __strncasecmp_l
// strncasecmp_l    // Weak
GO(strlcat, pEppL)
GO(strlcpy, pEppL)
GO(strncat, pEppL)
GO(__strncat_chk, pEppLL)
GO(strncmp, iEppL)
GO(strncpy, pEppL)
GO(__strncpy_chk, pEppLL)
GOW(strndup, pEpL)
GO(__strndup, pEpL)
GO(strnlen, LEpL)
GO(strpbrk, pEpp)
// __strpbrk_c2
// __strpbrk_c3
GO(strptime, pEppriiiiiiiiilt_)
// strptime_l   // Weak
GO(strrchr, pEpi)
//GOW(strsep, pEpp)
// __strsep_1c
// __strsep_2c
// __strsep_3c
// __strsep_g
GO(strsignal, tEi)
GO(strspn, LEpp)
// __strspn_c1
// __strspn_c2
// __strspn_c3
GO(strstr, pEpp)
GO(strtod, dEpBp_)
GO(__strtod_internal, dEpBp_i)
GO(__strtod_l, dEpBp_a)
GOW(strtod_l, dEpBp_a)
GO(strtof, fEpBp_)
GO(__strtof_internal, fEpBp_p)
GO(__strtof_l, fEpBp_a)
//GOW(strtof_l, fEppu)
//GO(strtoimax, IEppi)
GO(strtok, pEpp)
GO(__strtok_r, pEppbp_)
GOW(strtok_r, pEppbp_)
// __strtok_r_1c
GOM(strtol, lEpBp_i)    //%%,noE
#ifdef HAVE_LD80BITS
//GO(strtold, DEpp)
//GO(__strtold_internal, DEppi)
GO(__strtold_l, DEpBp_a)
GOW(strtold_l, DEpBp_a)
#else
//GO(strtold, KEpp)
//GO2(__strtold_internal, KEppi, __strtod_internal)
GO2(__strtold_l, KEpBp_a, __strtod_l)
GOW2(strtold_l, KEpBp_a, strtod_l)
#endif
GO2(__strtol_internal, lEpBp_i, my32_strtol)    //%%,noE
GO(strtoll, IEpBp_i)
//GO(__strtol_l, lEppiip)
//GOW(strtol_l, lEppiip)
GO(__strtoll_internal, IEpBp_ii)
GO(__strtoll_l, IEpBp_ia)
GO2(__isoc23_strtoll_l, IEpBp_ia, __strtoll_l)
GOW(strtoll_l, IEpBp_ia)
GOW(strtoq, IEppi)  // is that ok?
GOM(strtoul, LEpBp_i)   //%%,noE
GO2(__strtoul_internal, LEpBp_ii, my32_strtoul) //%%,noE
GO(strtoull, UEpBp_i)
//GO(__strtoul_l, uEppip)
//GOW(strtoul_l, LEppip)
GO(__strtoull_internal, UEpBp_ii)
GO(__strtoull_l, UEpBp_ia)
GO2(__isoc23_strtoull_l, UEpBp_ia, __strtoull_l)
GOW(strtoull_l, UEpBp_ia)
//GO(strtoumax, UEppi)
GOW(strtouq, UEppi) // ok?
GOW(strverscmp, iEpp)
// __strverscmp
GO(strxfrm, uEppL)
GO(__strxfrm_l, LEppLa)
//GO(strxfrm_l, uEppup)
// stty
// svcauthdes_stats // type B
// svcerr_auth
// svcerr_decode
// svcerr_noproc
// svcerr_noprog
// svcerr_progvers
// svcerr_systemerr
// svcerr_weakauth
// svc_exit
// svcfd_create
// svc_fdset    // type B
// svc_getreq
// svc_getreq_common
// svc_getreq_poll
// svc_getreqset
// svc_max_pollfd   // type B
// svc_pollfd   // type B
// svcraw_create
// svc_register
// svc_run
// svc_sendreply
// svctcp_create
// svcudp_bufcreate
// svcudp_create
// svcudp_enablecache
// svcunix_create
// svcunixfd_create
// svc_unregister
//GO(swab, vEppi)
GOM(swapcontext, iEEpp) //%%
// swapoff  // Weak
// swapon   // Weak
GOM(swprintf, iEEpLpV) //%%
GOM(__swprintf_chk, iEEpLiLpV) //%%
GOM(swscanf, iEEppV)
GOW(symlink, iEpp)
GO(symlinkat, iEpip)
GO(sync, vEv)
GO(syncfs, iEi)
// sync_file_range
GOM(syscall, lEEuV) //%%
GOW2(sysconf, lEEi, my_sysconf)
GO2(__sysconf, lEEi, my_sysconf)
// sysctl   // Weak
//GO(__sysctl, iEp)
//DATA(_sys_errlist, 4)
//DATA(sys_errlist, 4)
GOM(sysinfo, iEp)   //%noE
GOM(syslog, vEEipV)
GOM(__syslog_chk, vEEiipV)
//DATA(_sys_nerr, 4)    // type R
//DATA(sys_nerr, 4) // type R
//DATA(sys_sigabbrev, 4)
//DATA(_sys_siglist, 4)
//DATA(sys_siglist, 4)
GOW(system, iEp)          // Need to wrap to use box86 if needed?
GO2(__sysv_signal, pEEip, my___sysv_signal) //%%
//GOWM(sysv_signal, pEEip)  //%%
GOW(tcdrain, iEi)
GO(tcflow, iEii)
GO(tcflush, iEii)
GOW(tcgetattr, iEip)
GO(tcgetpgrp, iEi)
// tcgetsid
GO(tcsendbreak, iEii)
GO(tcsetattr, iEiip)
GO(tcsetpgrp, iEii)
// tdelete  // Weak
// tdestroy // Weak
// tee
GO(telldir, lEp)
GO(tempnam, pEpp)
GOW(textdomain, tEp)
// tfind    // Weak
GO(time, LEBL_)
GO2(__time64, IEp, time)
GOM(timegm, lEEriiiiiiiiilt_)   //%%
// timelocal    // Weak
GO(timerfd_create, iEii)
//GO(timerfd_gettime, iEip)
GO(timerfd_settime, iEiirLL_BLL_)
GOW(times, iEBllll_)
DATAM(timezone, 4)
DATAM(__timezone, 4)   // type B
GO(tmpfile, pEv)
GO(tmpfile64, pEv)
GO(tmpnam, pEp)
//GO(tmpnam_r, pEp)
GO(toascii, iEi)
// __toascii_l  // Weak
GO(tolower, iEi)
// _tolower
// __tolower_l
GOW(tolower_l, iEip)
GO(toupper, iEi)
// _toupper
// __toupper_l
GOW(toupper_l, iEip)
// towctrans    // Weak
// __towctrans
// __towctrans_l
// towctrans_l  // Weak
GO(towlower, uEu)
GO(__towlower_l, uEua)
GOW(towlower_l, uEua)
GO(towupper, uEu)
GO(__towupper_l, uEua)
GOW(towupper_l, uEua)
// tr_break
GOW(truncate, iEpu)
GO(truncate64, iESU)
// tsearch  // Weak
//GO(ttyname, pEi)
//GOW(ttyname_r, iEipu)
// __ttyname_r_chk
// ttyslot
// twalk    // Weak
DATAM(tzname, 4)
//DATA(__tzname, 4)
GOWM(tzset, vEv)    //%%,noE
// ualarm
GO(__uflow, iES)
// ulckpwdf // Weak
// ulimit   // Weak
GOW(umask, uEu)
GOW(umount, iEp)
GOW(umount2, iEpi)
GOWM(uname, iEp) //%%,noE
//GO(__underflow, iEp)
GOW(ungetc, iEiS)
GO(ungetwc, uEuS)
GOW(unlink, iEp)
GO(unlinkat, iEipi)
GO(unlockpt, iEi)
GOW(unsetenv, iEp)
// unshare
//GOW(updwtmp, vEpp)
// updwtmpx
// uselib
GOW(uselocale, aEa)
GO(__uselocale, aEa)
// user2netname
GO(usleep, iEu)
// ustat
GO(utime, iEprll_)
GOM(utimensat, iEippi)  //%noE
GOWM(utimes, iEEpp)
//GOW(utmpname, iEp)
// utmpxname
GOW(valloc, pEL)
GOM(vasprintf, iEEppp) //%%
GOM(__vasprintf_chk, iEEpipp) //%%
// vdprintf // Weak
// __vdprintf_chk
//GOM(verr, vEEpV) //%%
// verrx
//GO(versionsort, iEpp)
//GO(versionsort64, iEpp) //need to align dirent64?
GOWM(vfork, iEEv) //%%
// __vfork
GOM(vfprintf, iEESpp) //%%
GOM(__vfprintf_chk, iEESipp) //%%
//GOWM(vfscanf, iEEppp)  //%%
// __vfscanf
//GOWM(vfwprintf, iEEppp)    //%%
//GO2(__vfwprintf_chk, iEEpvpp, my_vfwprintf)
//GOW(vfwscanf, iEppp)
// vhangup
// vlimit
// vmsplice
GOM(vprintf, iEEpp)               //%%
GOM(__vprintf_chk, iEEipp)        //%%
// vscanf   // Weak
GOWM(vsnprintf, iEEpLpp)         //%%
GOWM(__vsnprintf, iEEpLpp)       //%%
GOM(__vsnprintf_chk, iEEpLiipp)  //%%
GOWM(vsprintf, iEEppp)            //%%
GOM(__vsprintf_chk, iEEpiLpp)     //%%
GOM(vsscanf, iEEppp) //%%
// __vsscanf    // Weak
GOWM(vswprintf, iEEpLpp)         //%%
GOWM(__vswprintf, iEEpLpp)         //%%
GOWM(__vswprintf_chk, iEEpLiLppp) //%%
GOM(vswscanf, iEEppp)
GOM(vsyslog, vEEipp)
GOM(__vsyslog_chk, vEEiipp)
// vtimes
//GOM(vwarn, vEEppp) //%%
// vwarnx
//GOM(vwprintf, iEEpp) //%%
//GO2(__vwprintf_chk, iEEvpp, my_vwprintf)
//GO(vwscanf, iEpp)
GOW(wait, iEp)
//GOW(__wait, iEp)
//GOW(wait3, iEpip)
//GOW(wait4, iEipip)
GOWM(waitid, iEEuupi)
GOW(waitpid, iEipi)
GOW(__waitpid, lElpi)
//GO(warn, vEppppppppp)
//GO(warnx, vEppppppppp)
//GOW(wcpcpy, pEpp)
// __wcpcpy_chk
//GOW(wcpncpy, pEpp)
// __wcpncpy_chk
GOW(wcrtomb, LEpip)
// __wcrtomb_chk
GOW(wcscasecmp, iEpp)
// __wcscasecmp_l
//GOW(wcscasecmp_l, iEppp)
GOW(wcscat, pEpp)
GO(__wcscat_chk, pEppL)
GO(wcschr, pEpi)
// wcschrnul    // Weak
GO(wcscmp, iEpp)
GOW(wcscoll, iEpp)
GO(__wcscoll_l, iEppa)
GOW(wcscoll_l, iEppa)
GO(wcscpy, pEpp)
GO(__wcscpy_chk, pEppL)
//GO(wcscspn, uEpp)
GO(wcsdup, pEp)
GO(wcsftime, LEpLpriiiiiiiiilt_)
GO(__wcsftime_l, LEpLppa)
GOW(wcsftime_l, LEpLppa)
GOW(wcslen, LEp)
GOW(wcsncasecmp, iEppL)
// __wcsncasecmp_l
//GOW(wcsncasecmp_l, iEppup)
GO(wcsncat, pEppL)
GO(__wcsncat_chk, pEppLL)
GO(wcsncmp, iEppL)
GOW(wcsncpy, pEppL)
GO(__wcsncpy_chk, pEppLL)
GOW(wcsnlen, LEpL)
GOW(wcsnrtombs, LEpBp_LLp)
// __wcsnrtombs_chk
GO(wcspbrk, pEpp)
GO(wcsrchr, pEpi)
//GOW(wcsrtombs, uEppup)
// __wcsrtombs_chk
//GO(wcsspn, uEpp)
GO(wcsstr, pEpp)
GO(wcstod, dEpBp_)
//GO(__wcstod_internal, dEppi)
// __wcstod_l
// wcstod_l // Weak
GO(wcstof, fEpBp_)
// __wcstof_internal
// __wcstof_l
// wcstof_l // Weak
// wcstoimax
GO(wcstok, pEppBp_)
GOM(wcstol, lEpBp_i)    //%noE
//GO(wcstold, DEpp)
// __wcstold_internal
// __wcstold_l
// wcstold_l    // Weak
//GO(__wcstol_internal, iEppii)
GO(wcstoll, IEpBp_i)
// __wcstol_l
// wcstol_l // Weak
// __wcstoll_internal
// __wcstoll_l
// wcstoll_l    // Weak
GO(wcstombs, LEppL)
// __wcstombs_chk
// wcstoq   // Weak
GOM(wcstoul, LEpBp_i)    //%noE
//GO(__wcstoul_internal, LEppii)
GO(wcstoull, UEpBp_i)
// __wcstoul_l
// wcstoul_l    // Weak
// __wcstoull_internal
// __wcstoull_l
// wcstoull_l   // Weak
// wcstoumax
// wcstouq  // Weak
// wcswcs   // Weak
//GO(wcswidth, iEpu)
GO(wcsxfrm, LEppL)
//GOW(wcsxfrm_l, uEppup)
GO(__wcsxfrm_l, LEppLa)
GO(wctob, iEu)
GO(wctomb, iEpi)
//GO(__wctomb_chk, iEpuL)
// wctrans  // Weak
// __wctrans_l
// wctrans_l    // Weak
GOW(wctype, uEp)
GO(__wctype_l, hEpa)
GOW(wctype_l, hEpa)
GO(wcwidth, iEu)
GO(wcslcat, LFppL)
GO(wcslcpy, LFppL)
GOW(wmemchr, pEpiL)
GO(wmemcmp, iEppL)
GOW(wmemcpy, pEppL)
GO(__wmemcpy_chk, pEppLL)
GOW(wmemmove, pEppL)
// __wmemmove_chk
// wmempcpy // Weak
// __wmempcpy_chk
GO(wmemset, pEpiL)
// __wmemset_chk
//GO(wordexp, iEppi)
//GO(wordfree, vEp)
// __woverflow
GOM(wprintf, iEEpV) //%%
//GOM(__wprintf_chk, iEEipV) //%%
GOWM(write, lEEipL)
//GOW(__write, lEipL)
GOWM(writev, lEEipi)
// wscanf
// __wuflow
// __wunderflow
// xdecrypt
// xdr_accepted_reply
// xdr_array
// xdr_authdes_cred
// xdr_authdes_verf
// xdr_authunix_parms
GO(xdr_bool, iEpp)
// xdr_bytes
// xdr_callhdr
// xdr_callmsg
// xdr_char
// xdr_cryptkeyarg
// xdr_cryptkeyarg2
// xdr_cryptkeyres
// xdr_des_block
// xdr_double
// xdr_enum
// xdr_float
// xdr_free
// xdr_getcredres
// xdr_hyper
GO(xdr_int, iEpp)
// xdr_int16_t
// xdr_int32_t
// xdr_int64_t
// xdr_int8_t
// xdr_keybuf
// xdr_key_netstarg
// xdr_key_netstres
// xdr_keystatus
// xdr_long
// xdr_longlong_t
// xdrmem_create
// xdr_netnamestr
GO(xdr_netobj, iEpbup_)
// xdr_opaque
// xdr_opaque_auth
// xdr_pmap
// xdr_pmaplist
// xdr_pointer
// xdr_quad_t
// xdrrec_create
// xdrrec_endofrecord
// xdrrec_eof
// xdrrec_skiprecord
// xdr_reference
// xdr_rejected_reply
// xdr_replymsg
// xdr_rmtcall_args
// xdr_rmtcallres
// xdr_short
// xdr_sizeof
// xdrstdio_create
// xdr_string
// xdr_u_char
// xdr_u_hyper
GO(xdr_u_int, iEpp)
// xdr_uint16_t
// xdr_uint32_t
// xdr_uint64_t
// xdr_uint8_t
// xdr_u_long
// xdr_u_longlong_t
// xdr_union
// xdr_unixcred
// xdr_u_quad_t
// xdr_u_short
// xdr_vector
GO(xdr_void, iEv)
// xdr_wrapstring
// xencrypt
GOM(__xmknod, iEEipup)
//GO(__xmknodat, iEiipip)
GO(__xpg_basename, tEp)
// __xpg_sigpause   // Weak
GO(__xpg_strerror_r, tEipu)
// xprt_register
// xprt_unregister
GOM(__xstat, iEEipp) //%%
GOM(__xstat64, iEEipp) //%%

// forcing a custom __gmon_start__ that does nothing
GOM(__gmon_start__, vEEv) //%%

GOM(_Jv_RegisterClasses, vEv)   //%%,noE dummy

GOM(__fdelt_chk, LEL) //%%,noE

GOM(getauxval, LEEL)  //%% implemented since glibc 2.16

//GOM(prlimit64, lEpupp)       //%%,noE
GOM(process_vm_readv, lEEipLpLL)
GOM(process_vm_writev, lEEipLpLL)
GOM(reallocarray, pEpLL)     //%%,noE
//GOM(__open_nocancel, iEEpOV) //%%
//GO2(__read_nocancel, lEipL, read)
GO2(__close_nocancel, iEi, close)

GOM(mkstemps64, iEEpi)   //%% not always implemented
GO(getentropy, iEpL)

// not found (libitm???), but it seems OK to declare dummies:

GOWM(_ZGTtdlPv, vFp)    //%noE
GOWM(_ZGTtnaX, pFL) //%noE
GOWM(_ZGTtnam, pFL) //%noE
GOWM(_ZGTtnaj, pFu) //%noE
GOWM(_ITM_RU1, uEp)          //%%,noE
GOWM(_ITM_RU4, uEp)          //%%,noE
GOWM(_ITM_RU8, UEp)          //%%,noE
GOWM(_ITM_memcpyRtWn, vEppu) //%%,noE register(2)
GOWM(_ITM_memcpyRnWt, vEppu) //%%,noE register(2)
GOWM(_ITM_addUserCommitAction, vEEpup)
GOWM(_ITM_registerTMCloneTable, vEEpu)  //%%
GOWM(_ITM_deregisterTMCloneTable, vEEp) //%%

GOM(__umoddi3, UEUU)        //%%,noE
GOM(__udivdi3, UEUU)        //%%,noE
GOM(__divdi3, IEII)         //%%,noE
GOM(__poll_chk, iEpuiL)     //%%,noE

GO(fallocate64, iEiiII)

//DATAM(__libc_stack_end, 4)

//DATAM(___brk_addr, 4)
DATA(__libc_enable_secure, 4)

GOM(__register_frame_info, vEpp)  //%%,noE faked function
GOM(__deregister_frame_info, pEp) //%%,noE

GO(name_to_handle_at, iEipppi) // only glibc 2.14+, so may not be present...

GOW2(__cxa_pure_virtual, vFEv, my___cxa_pure_virtual)     // create a function to trap pure virtual call

//GOM(modify_ldt, iEEipL) // there is suposedly no glibc wrapper for this one

// duplicated stuffs from libresolv
GOWM(res_query, iEEpiipi)
GOWM(res_search, iEEpiipi)

#ifdef ANDROID
//GOM(__libc_init, vEEpppp)
GO(__errno, pEv)
#else
// Those symbols don't exist in non-Android builds
//GOM(__libc_init,
//GO(__errno,
#endif

GOM(lstat, iEpp)    //%%,noE
//GO(setprogname,
//GO(getprogname,

DATAM(__libc_single_threaded, 4)	//B type
