[uClibc] Functions listed by SuSv3 but not (yet) included in uClibc
Alexander van Heukelum
heukelum at freemail.nl
Mon Mar 8 21:56:09 UTC 2004
Hi Erik, Manuel,
[snip](including "audit the headers" part)[/snip]
> > ndbm.h: [all=9] dbm_*
> You can use gdbm.
Ok, but they are still missing from uClibc.
> > string.h: strerror_r
> There is a complication with strerror_r. The glibc extension function
> of the same name has a diffferent prototype and behavior. See the
> comments in string.h. The current workaround is to redirect strerror_r
> to either _susv3_strerror_r or _glibc_strerror_r, depending on the
> feature test macros.
Hmm, if I understand it right this problem can also be solved by having
a susv3-compatible strerror_r with it's proper name, and, in case
compatiblity with glibc is required, define a macro strerror_r that
redirects to _glibc_strerror_r.
> > setjmp.h: setsigjmp
> Only visible with the appropriate feature test macros. See setjmp.h
> and the (conditional)
> # define sigsetjmp(env, savemask) __sigsetjmp (env, savemask)
Does susv3 allow this? Why? (read: I don't like this! ;) )
> > monetary.h: strfmon
> Ugh... I've looked at strfmon. Does anyone actually use it?
I don't think so, but it is in the Standard...
> Would you mind emailing me your complete list?
I also cleaned up the scripts and attached them. Cleaning up scripts
helped to spot a few errors... I omitted all symbols from time.h and
ucontext.h, there were two false positives (mktemp and mkstemp), and the
interface strerror_r has been moved to optional interfaces, because it
depends on TSF. Oh, and I missed 20 mathematical interfaces...
The result (which I believe is correct): mandatory interfaces: 40,
optional interfaces: 144 and mathematical interfaces: 203.
Greetings,
Alexander
Here is the updated shortlist, followed by the long list...
Omissions from mandatory interfaces: (includes XSI, CX, LEGACY)
---------------------------------------------------------------
ndbm.h: [all=9] dbm_*
stdlib.h: _Exit, a64l, ecvt, fcvt, l64a, lcong48, lldiv, posix_openpt
utmpx.h: [all=6] *utx*
ucontext.h: [all=4] *context
nl_types.h: [all] catclose, catgets, catopen
unistd.h: getwd, ualarm
fmtmsg.h: fmtmsg
inttypes.h: imaxdiv
monetary.h: strfmon
setjmp.h: setsigjmp
sys/select.h: pselect
sys/socket.h: sockatmark
sys/wait.h: waitid
time.h: getdate
Unimplemented optional interfaces:
----------------------------------
trace.h: (depends on TRC) [all=50] posix_trace_*
pthread.h: (depends on THR) pthread_cleanup_{push,pop};
pthread_attr_{g,s}etstack (depend on TSA TSS);
[7] pthread_barrier* (depend on BAR);
pthread_condattr_{g,s}et_clock (depend on CS);
pthread_getcpuclockid (depends on TCT);
pthread_mutex{,attr}_{g,s}etprioceiling (depend on TPP);
pthread_mutexattr_{g,s}etprotocol (depend on TPP|TPI);
pthread_rwlock_timed{rd,rw}lock (depend on TMO);
pthread_setschedprio (depends on TPS);
[5] pthread_spin_* (depend on SPI)
spawn.h: (depends on SPN) [all=21] posix_spawn*
mqueue.h: (depends on MSG) [all=10] mq_*
time.h: clock_getcpuclockid (depends on CPT); clock_getres,
clock_settime, clock_nanosleep (depends on CS);
[5] timer_* (depend on TMR);
aio.h: (depends on AIO) [all=8] aio_*, lio_*
stropts.h: (depends on XSR) isastream, {g,s}et{,p}msg, fattach, fdetach
sys/mman.h: posix_madvice (depends on ADV); posix_mem_offset,
posix_typed_mem_getinfo, posix_typed_mem_open (depend on TYM);
shm_open, shm_unlink (depend on SHM)
fcntl.h: posix_fadvice, posix_fallocate (depend on ADV)
signal.h: sigqueue (depends on RTS)
stdlib.h: posix_memalign (depends on ADV)
string.h: strerror_r (depends on TSF)
Unimplemented mathematical interfaces:
--------------------------------------
math.h: [127] many
complex.h: [65] all, except cabs
fenv.h: [11] all
Full list of omissions from mandatory interfaces:
-------------------------------------------------
-- ndbm.h --
dbm_clearerr (XSI)
dbm_close (XSI)
dbm_delete (XSI)
dbm_error (XSI)
dbm_fetch (XSI)
dbm_firstkey (XSI)
dbm_nextkey (XSI)
dbm_open (XSI)
dbm_store (XSI)
-- (9) --
-- stdlib.h --
_Exit (-)
a64l (XSI)
ecvt (XSI&LEGACY)
fcvt (XSI&LEGACY)
l64a (XSI)
lcong48 (XSI)
lldiv (-)
posix_openpt (XSI)
-- (8) --
-- utmpx.h --
endutxent (XSI)
getutxent (XSI)
getutxid (XSI)
getutxline (XSI)
pututxline (XSI)
setutxent (XSI)
-- (6) --
-- ucontext.h --
getcontext (XSI)
makecontext (XSI)
setcontext (XSI)
swapcontext (XSI)
-- (4) --
-- nl_types.h --
catclose (XSI)
catgets (XSI)
catopen (XSI)
-- (3) --
-- unistd.h --
getwd (XSI&LEGACY)
ualarm (XSI)
-- (2) --
-- inttypes.h --
imaxdiv (-)
-- (1) --
-- fmtmsg.h --
fmtmsg (XSI)
-- (1) --
-- setjmp.h --
sigsetjmp (CX)
-- (1) --
-- monetary.h --
strfmon (XSI)
-- (1) --
-- sys/select.h --
pselect (-)
-- (1) --
-- sys/socket.h --
sockatmark (-)
-- (1) --
-- sys/wait.h --
waitid (XSI)
-- (1) --
-- time.h --
getdate (XSI)
-- (1) --
Full list of unimplemented optional interfaces:
-----------------------------------------------
-- trace.h --
posix_trace_attr_destroy (TRC)
posix_trace_attr_getclockres (TRC)
posix_trace_attr_getcreatetime (TRC)
posix_trace_attr_getgenversion (TRC)
posix_trace_attr_getinherited (TRC&TRI)
posix_trace_attr_getlogfullpolicy (TRC&TRL)
posix_trace_attr_getlogsize (TRC&TRL)
posix_trace_attr_getmaxdatasize (TRC)
posix_trace_attr_getmaxsystemeventsize (TRC)
posix_trace_attr_getmaxusereventsize (TRC)
posix_trace_attr_getname (TRC)
posix_trace_attr_getstreamfullpolicy (TRC)
posix_trace_attr_getstreamsize (TRC)
posix_trace_attr_init (TRC)
posix_trace_attr_setinherited (TRC&TRI)
posix_trace_attr_setlogfullpolicy (TRC&TRL)
posix_trace_attr_setlogsize (TRC&TRL)
posix_trace_attr_setmaxdatasize (TRC)
posix_trace_attr_setname (TRC)
posix_trace_attr_setstreamfullpolicy (TRC)
posix_trace_attr_setstreamsize (TRC)
posix_trace_clear (TRC)
posix_trace_close (TRC&TRL)
posix_trace_create (TRC)
posix_trace_create_withlog (TRC&TRL)
posix_trace_event (TRC)
posix_trace_eventid_equal (TRC)
posix_trace_eventid_get_name (TRC)
posix_trace_eventid_open (TRC)
posix_trace_eventset_add (TRC&TEF)
posix_trace_eventset_del (TRC&TEF)
posix_trace_eventset_empty (TRC&TEF)
posix_trace_eventset_fill (TRC&TEF)
posix_trace_eventset_ismember (TRC&TEF)
posix_trace_eventtypelist_getnext_id (TRC)
posix_trace_eventtypelist_rewind (TRC)
posix_trace_flush (TRC&TRL)
posix_trace_get_attr (TRC)
posix_trace_get_filter (TRC&TEF)
posix_trace_get_status (TRC)
posix_trace_getnext_event (TRC)
posix_trace_open (TRC&TRL)
posix_trace_rewind (TRC&TRL)
posix_trace_set_filter (TRC&TEF)
posix_trace_shutdown (TRC)
posix_trace_start (TRC)
posix_trace_stop (TRC)
posix_trace_timedgetnext_event (TRC&TMO)
posix_trace_trid_eventid_open (TRC&TEF)
posix_trace_trygetnext_event (TRC)
-- (50) --
-- pthread.h --
pthread_attr_getstack (THR&TSA&TSS)
pthread_attr_setstack (THR&TSA&TSS)
pthread_barrier_destroy (THR&BAR)
pthread_barrier_init (THR&BAR)
pthread_barrier_wait (THR&BAR)
pthread_barrierattr_destroy (THR&BAR)
pthread_barrierattr_getpshared (THR&BAR&TSH)
pthread_barrierattr_init (THR&BAR)
pthread_barrierattr_setpshared (THR&BAR&TSH)
pthread_cleanup_pop (THR)
pthread_cleanup_push (THR)
pthread_condattr_getclock (THR&CS)
pthread_condattr_setclock (THR&CS)
pthread_getcpuclockid (THR&TCT)
pthread_mutex_getprioceiling (THR&TPP)
pthread_mutex_setprioceiling (THR&TPP)
pthread_mutexattr_getprioceiling (THR&TPP)
pthread_mutexattr_getprotocol (THR&TPP|TPI)
pthread_mutexattr_setprioceiling (THR&TPP)
pthread_mutexattr_setprotocol (THR&TPP|TPI)
pthread_rwlock_timedrdlock (THR&TMO)
pthread_rwlock_timedwrlock (THR&TMO)
pthread_setschedprio (THR&TPS)
pthread_spin_destroy (THR&SPI)
pthread_spin_init (THR&SPI)
pthread_spin_lock (THR&SPI)
pthread_spin_trylock (THR&SPI)
pthread_spin_unlock (THR&SPI)
-- (28) --
-- spawn.h --
posix_spawn (SPN)
posix_spawn_file_actions_addclose (SPN)
posix_spawn_file_actions_adddup2 (SPN)
posix_spawn_file_actions_addopen (SPN)
posix_spawn_file_actions_destroy (SPN)
posix_spawn_file_actions_init (SPN)
posix_spawnattr_destroy (SPN)
posix_spawnattr_getflags (SPN)
posix_spawnattr_getpgroup (SPN)
posix_spawnattr_getschedparam (SPN&PS)
posix_spawnattr_getschedpolicy (SPN&PS)
posix_spawnattr_getsigdefault (SPN)
posix_spawnattr_getsigmask (SPN)
posix_spawnattr_init (SPN)
posix_spawnattr_setflags (SPN)
posix_spawnattr_setpgroup (SPN)
posix_spawnattr_setschedparam (SPN&PS)
posix_spawnattr_setschedpolicy (SPN&PS)
posix_spawnattr_setsigdefault (SPN)
posix_spawnattr_setsigmask (SPN)
posix_spawnp (SPN)
-- (21) --
-- mqueue.h --
mq_close (MSG)
mq_getattr (MSG)
mq_notify (MSG)
mq_open (MSG)
mq_receive (MSG)
mq_send (MSG)
mq_setattr (MSG)
mq_timedreceive (MSG&TMO)
mq_timedsend (MSG&TMO)
mq_unlink (MSG)
-- (10) --
-- time.h --
clock_getcpuclockid (CPT)
clock_getres (TMR)
clock_nanosleep (CS)
clock_settime (TMR)
timer_create (TMR)
timer_delete (TMR)
timer_getoverrun (TMR)
timer_gettime (TMR)
timer_settime (TMR)
-- (9) --
-- aio.h --
aio_cancel (AIO)
aio_error (AIO)
aio_fsync (AIO)
aio_read (AIO)
aio_return (AIO)
aio_suspend (AIO)
aio_write (AIO)
lio_listio (AIO)
-- (8) --
-- stropts.h --
fattach (XSR)
fdetach (XSR)
getmsg (XSR)
getpmsg (XSR)
isastream (XSR)
putmsg (XSR)
putpmsg (XSR)
-- (7) --
-- sys/mman.h --
posix_madvise (MC9&ADV)
posix_mem_offset (MC9&TYM)
posix_typed_mem_get_info (MC9&TYM)
posix_typed_mem_open (MC9&TYM)
shm_open (MC9&SHM)
shm_unlink (MC9&SHM)
-- (6) --
-- fcntl.h --
posix_fadvise (ADV)
posix_fallocate (ADV)
-- (2) --
-- signal.h --
sigqueue (RTS)
-- (1) --
-- stdlib.h --
posix_memalign (ADV)
-- (1) --
-- string.h --
strerror_r (TSF)
-- (1) --
Full list of unimplemented mathematical interfaces:
---------------------------------------------------
-- math.h --
acosf (MATH)
acoshf (MATH)
acoshl (MATH)
acosl (MATH)
asinf (MATH)
asinhf (MATH)
asinhl (MATH)
asinl (MATH)
atan2f (MATH)
atan2l (MATH)
atanf (MATH)
atanhf (MATH)
atanhl (MATH)
atanl (MATH)
cbrtf (MATH)
cbrtl (MATH)
ceill (MATH)
copysignf (MATH)
copysignl (MATH)
cosf (MATH)
coshf (MATH)
coshl (MATH)
cosl (MATH)
erfcf (MATH)
erfcl (MATH)
erff (MATH)
erfl (MATH)
exp2 (MATH)
exp2f (MATH)
exp2l (MATH)
expf (MATH)
expl (MATH)
expm1f (MATH)
expm1l (MATH)
fabsf (MATH)
fabsl (MATH)
fdim (MATH)
fdimf (MATH)
fdiml (MATH)
floorl (MATH)
fma (MATH)
fmaf (MATH)
fmal (MATH)
fmax (MATH)
fmaxf (MATH)
fmaxl (MATH)
fmin (MATH)
fminf (MATH)
fminl (MATH)
fmodf (MATH)
fmodl (MATH)
frexpf (MATH)
frexpl (MATH)
hypotf (MATH)
hypotl (MATH)
ilogbf (MATH)
ilogbl (MATH)
ldexpf (MATH)
ldexpl (MATH)
lgammaf (MATH)
lgammal (MATH)
llrint (MATH)
llrintf (MATH)
llrintl (MATH)
llround (MATH)
llroundf (MATH)
llroundl (MATH)
log10f (MATH)
log10l (MATH)
log1pf (MATH)
log1pl (MATH)
log2 (MATH)
log2f (MATH)
log2l (MATH)
logbf (MATH)
logbl (MATH)
logf (MATH)
logl (MATH)
lrint (MATH)
lrintf (MATH)
lrintl (MATH)
lround (MATH)
lroundf (MATH)
lroundl (MATH)
modff (MATH)
modfl (MATH)
nanl (MATH)
nearbyint (MATH)
nearbyintf (MATH)
nearbyintl (MATH)
nextafterf (MATH)
nextafterl (MATH)
nexttoward (MATH)
nexttowardf (MATH)
nexttowardl (MATH)
powf (MATH)
powl (MATH)
remainderf (MATH)
remainderl (MATH)
remquo (MATH)
remquof (MATH)
remquol (MATH)
rintf (MATH)
rintl (MATH)
round (MATH)
roundf (MATH)
roundl (MATH)
scalbln (MATH)
scalblnf (MATH)
scalblnl (MATH)
scalbnf (MATH)
scalbnl (MATH)
sinf (MATH)
sinhf (MATH)
sinhl (MATH)
sinl (MATH)
sqrtl (MATH)
tanf (MATH)
tanhf (MATH)
tanhl (MATH)
tanl (MATH)
tgamma (MATH)
tgammaf (MATH)
tgammal (MATH)
trunc (MATH)
truncf (MATH)
truncl (MATH)
-- (127) --
-- complex.h --
cabsf (MATH)
cabsl (MATH)
cacos (MATH)
cacosf (MATH)
cacosh (MATH)
cacoshf (MATH)
cacoshl (MATH)
cacosl (MATH)
carg (MATH)
cargf (MATH)
cargl (MATH)
casin (MATH)
casinf (MATH)
casinh (MATH)
casinhf (MATH)
casinhl (MATH)
casinl (MATH)
catan (MATH)
catanf (MATH)
catanh (MATH)
catanhf (MATH)
catanhl (MATH)
catanl (MATH)
ccos (MATH)
ccosf (MATH)
ccosh (MATH)
ccoshf (MATH)
ccoshl (MATH)
ccosl (MATH)
cexp (MATH)
cexpf (MATH)
cexpl (MATH)
cimag (MATH)
cimagf (MATH)
cimagl (MATH)
clog (MATH)
clogf (MATH)
clogl (MATH)
conj (MATH)
conjf (MATH)
conjl (MATH)
cpow (MATH)
cpowf (MATH)
cpowl (MATH)
cproj (MATH)
cprojf (MATH)
cprojl (MATH)
creal (MATH)
crealf (MATH)
creall (MATH)
csin (MATH)
csinf (MATH)
csinh (MATH)
csinhf (MATH)
csinhl (MATH)
csinl (MATH)
csqrt (MATH)
csqrtf (MATH)
csqrtl (MATH)
ctan (MATH)
ctanf (MATH)
ctanh (MATH)
ctanhf (MATH)
ctanhl (MATH)
ctanl (MATH)
-- (65) --
-- fenv.h --
feclearexcept (MATH)
fegetenv (MATH)
fegetexceptflag (MATH)
fegetround (MATH)
feholdexcept (MATH)
feraiseexcept (MATH)
fesetenv (MATH)
fesetexceptflag (MATH)
fesetround (MATH)
fetestexcept (MATH)
feupdateenv (MATH)
-- (11) --
---- (387) ----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: getheaders.tar.bz2
Type: application/octet-stream
Size: 2670 bytes
Desc: not available
Url : http://lists.busybox.net/pipermail/uclibc/attachments/20040308/a9202bbe/attachment.obj
More information about the uClibc
mailing list