Re: Re: [UnixOS2] libc
Ilya Zakharevich <[email protected]> Tue, 15 Jul 2003 11:52:30 -0700
| Newsgroups | gmane.comp.ide.emx.devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Jul 15, 2003 at 05:08:05PM +0200, Stefan Neis wrote:
> > b) have the list of implemented functions in one bulk;
>
> Since you insist on getting it by mail, here it is (output of
> nm cExt.a and slightly edited - I considered to sort it alphabetically,
> but that would break the logical grouping...)
>
> strunvis strvis strvisx unvis vis basename dirname _tolower _toupper
> isalnum isalpha isascii isblank iscntrl isdigit isgraph islower isprint
> ispunct isspace isupper isxdigit toascii tolower toupper perror strerror
> rename setbuffer setlinebuf arc4random arc4random_addrandom
> arc4random_stir
> daemon cgetcap cgetclose cgetent cgetfirst cgetmatch cgetnext cgetnum
> cgetset cgetstr cgetustr getenv putenv setenv unsetenv getopt_long
> getopt_long_only getsubopt heapsort mergesort qabs qdiv strtoq strtouq
> radixsort sradixsort drand48 erand48 jrand48 lcong48 lrand48 mrand48
> nrand48 seed48 srand48 initstate random setstate srandom srandomdev valloc
> alarm ualarm alphasort scandir dlclose dlerror dlopen dlsym fts_children
> fts_close fts_open fts_read fts_set getwd glob globfree lockf ftok msgctl
> msgget msgrcv msgsnd nice poll group_from_gid user_from_uid realpath
> insque
> lfind lsearch remque tdelete tfind tsearch twalk getmode shmat shmctl
> shmdt
> shmget closelog openlog setlogmask syslog vsyslog dbopen hcreate hdestroy
> hsearch dbm_clearerr dbm_close dbm_delete dbm_dirfno dbm_error dbm_fetch
> dbm_firstkey dbm_nextkey dbm_open dbm_rdonly dbm_store dbmclose dbminit
> delete fetch firstkey nextkey store mpool_close mpool_delete mpool_filter
> mpool_get mpool_new mpool_open mpool_put mpool_sync regcomp catclose
> catgets
> catopen bm_comp bm_exec bm_free strlcpy strmode strsep memcasecmp
> strcasecmp
> strncasecmp strtoll strtoull getitimer setitimer getdomainname
> setdomainname inet_addr inet_aton xdr_authunix_parms authnone_create
> authunix_create authunix_create_default bindresvport clnt_create
> clnt_pcreateerror clnt_perrno clnt_perror clnt_spcreateerror clnt_sperrno
> clnt_sperror clntraw_create callrpc clnttcp_create clntudp_bufcreate
> clntudp_create endrpcent getrpcbyname getrpcbynumber getrpcent setrpcent
> getrpcport get_myaddress pmap_set pmap_unset pmap_getmaps pmap_getport
> xdr_pmap xdr_pmaplist clnt_broadcast pmap_rmtcall xdr_rmtcall_args
> xdr_rmtcallres xdr_callmsg xdr_callhdr xdr_des_block xdr_opaque_auth
> xdr_replymsg svc_getreq svc_getreqset svc_getreqset2 svc_register
> svc_sendreply svc_unregister svcerr_auth svcerr_decode svcerr_noproc
> svcerr_noprog svcerr_progvers svcerr_systemerr svcerr_weakauth
> xprt_register xprt_unregister svcraw_create svc_run registerrpc
> svcfd_create svctcp_create svcudp_bufcreate svcudp_create xdr_bool
> xdr_bytes xdr_char xdr_enum xdr_free xdr_int xdr_int16_t xdr_int32_t
> xdr_long xdr_netobj xdr_opaque xdr_short xdr_string xdr_u_char xdr_u_int
> xdr_u_int16_t xdr_u_int32_t xdr_u_long xdr_u_short xdr_union xdr_void
> xdr_wrapstring xdr_array xdr_vector xdr_double xdr_float xdrmem_create
> xdrrec_create xdrrec_endofrecord xdrrec_eof xdrrec_skiprecord xdr_pointer
> xdr_reference xdrstdio_create xdr_domainname xdr_keydat xdr_mapname
> xdr_peername xdr_valdat xdr_ypbind_binding xdr_ypbind_resp
> xdr_ypbind_resptype xdr_ypbind_setdom xdr_ypmaplist xdr_ypreq_key
> xdr_ypreq_nokey xdr_ypresp_all xdr_ypresp_key_val xdr_ypresp_maplist
> xdr_ypresp_master xdr_ypresp_order xdr_ypresp_val xdr_ypstat yperr_string
> yp_match yp_next ypprot_err xdr_ypresp_all_seq yp_all yp_bind yp_unbind
> yp_first yp_get_default_domain yp_maplist yp_master yp_order sys_nerr
> exit_server list_named_pipes mkfifo remove_mkfifo madvise mmap mprotect
> msync munmap getpagesize getpriority getrlimit getrusage sethostid
> setpriority setrlimit vlimit killpg psignal sigaddset sigblock sigdelset
> sigemptyset sigfillset siginterrupt sigismember sigpause sigsetmask sigvec
> strsignal sys_signame fchmod fstat lchmod lstat stat statfs chflags chown
> endgrent fchflags fchown geteuid getgrent initgroups issetugid lchown
> mknod
> readlink setegid seteuid setgrent setregid setreuid vfork sync confstr
> fpathconf getdtablesize pathconf sysconf sysctl uname wait3 wait4 abs atan
> atanf ceil ceilf ceill copysign copysignf cos cosf div fabs fabsl finite
> finitef floor floorf floorl fpgetmask fpgetround fpgetsticky fpsetmask
> fpsetround fpsetsticky frexpl ilogb ilogbf labs ldiv logb logbf modf rint
> rintf scalbn scalbnf significand significandf sin sinf sqrtl tan tanf
> acosh1p acoshl asinhl atanhl coshm1 drand exp10 exp10l log1p log1pf pow2
> pvec sincos asinh cbrt cbrtf erf erfc erfcf erff expm1 expm1f fabsf frexp
> ldexp frexpf isinf isnan isinff isnanf ldexpf modff nextafter nextafterf
> tanh tanhf acos acosh asin atan2 atanh cosh sinh acosf asinf atan2f atanhf
> coshf exp expf sinhf fmod fmodf cabs hypot cabsf hypotf j0 j1 jn y0 y1 yn
> gamma gamma_r lgamma lgamma_r log log10 acoshf asinhf gammaf gammaf_r j0f
> j1f jnf lgammaf lgammaf_r log10f logf y0f y1f ynf pow powf drem remainder
> dremf remainderf scalb scalbf sqrt sqrtf
>
> > c) have the list of limitations (comparing to BSD) in one bulk;
> - Not all functions are well tested
> - Emulating links via extended attributes is not yet incorporated.
> - None else known.
I see no reason to include things about which "nothing is known".
> Note: mathematical functions are essentially the same as on EMX, however
> there are occasional fixes to the BSD sources, so I believe it's easier
> to simply compile current BSD sources of "libm" into EMX than to monitor
> changes and copy and paste them one by one into EMX.
Of course it is easier. But I do not think that this is a viable
approach. Even for the functions with no architecture dependence,
somebody need to analyse the diffs. Functions without
architecture-dependence which were NOT available on OS/2 do not need a
lot of discussion.
IMO, functions with OS/2 specific code should be discussed one-by-one
(or at least group-by-group).
> Does this huge list help in any way?
Of course. Without this list it was absolutely unclear what you were
talking about...
Ilya
P.S. To speed up the discussion, this list should be broken into two
parts: functions which were available as functions or macros in
EMX, and the rest.