[uClibc] Functions listed by SuSv3 but not (yet) included in uClibc

heukelum heukelum at freemail.nl
Sat Mar 6 16:12:13 UTC 2004


Hi everyone,

I think uClibc is a great project! And, since I found the file
docs/uClibc_vs_SuSv3.txt in the source tarball which mentioned only
fmtmsg as a missing function compared to the SUSv3, I got curious about
the length of the list denoted by "<others?>". So I built the
20040305-snapshot using allyesconfig, extracted the symbols from the
(dynamic) libraries, and compared that list to the SUSv3 header files...

The largest source of omissions was the mathematical interface
(183/355), followed by optional interfaces (134/355). The result: only
38 non-mathematical interfaces are missing compared to the minimal
SUSv3! Naming only one function as missing was over-enthousiastic, but
the result was better than I anticipated.

A compact list of omissions is appended.
I hope this was a helpful exercise ;)

Greetings,
         Alexander

P.S. uClibc was compiled with thread support, but did not provide the
interfaces pthread_cleanup_push and pthread_cleanup_pop.

P.S.2. If "uClibc" is at the start of a sentence, should I write
"MClibc", as "M" is the uppercase representation of $\mu$?


Omissions from obligatory interfaces:
-------------------------------------
stdlib.h: _Exit, a64l, l64a, lcong48, lldiv, mkstemp, posix_openpt;
         mktemp, ecvt, fcvt
ndbm.h: [all=9] dbm_*
utmpx.h: [all=6] *utx* (but functions without "x" do exist!)
nl_types.h: [all] catclose, catgets, catopen
unistd.h: getwd, ualarm
inttypes.h: imaxdiv
fmtmsg.h: fmtmsg
string.h: strerror_r
setjmp.h: setsigjmp
monetary.h: strfmon
sys/select.h: pselect
sys/socket.h: sockatmark
sys/wait.h: waitid


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_*
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)


Unimplemented mathematical interfaces:
--------------------------------------
math.h: [126] many
complex.h: [46] all, except cabs
fenv.h: [11] all



More information about the uClibc mailing list