Package: eglibc Version: 2.10.2-6 Severity: normalWhile trying to debug bug #570689, I noticed some inconsistencies how functions epoll_create1 and epoll_create2 are handled on sparc and alpha architectures:
1. In contrast to all other architectures, <sys/epoll.h> declares epoll_create2() rather epoll_create1(). However, this function is not defined anywhere:
$ cat tmp.c #include <sys/epoll.h>
int main(int argc, char **argv) { epoll_create2(42, EPOLL_CLOEXEC); return 0; }$ gcc -Wall tmp.c /tmp/ccymThnY.o: In function `main':
tmp.c:(.text+0x14): undefined reference to `epoll_create2' collect2: ld returned 1 exit status2. Conversely, the epoll_create1 symbol is defined, but not declared anywhere within headers:
$ cat tmp.c #include <sys/epoll.h>
int main(int argc, char **argv) { epoll_create1(EPOLL_CLOEXEC); return 0; }$ gcc -Wall tmp.c tmp.c: In function ‘main’:
tmp.c:4: warning: implicit declaration of function ‘epoll_create1’ $ nm -D a.out | grep epoll U epoll_create13. epoll_create1() always fails with errno=ENOSYS (which is fine per se), but on sparc __stub_epoll_create1 is not defined. (It *is* defined on alpha, however.)
-- Jakub Wilk
signature.asc
Description: Digital signature