This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Make linknamespace tests check only relevant libraries
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: Joseph Myers <joseph at codesourcery dot com>, libc-alpha at sourceware dot org
- Date: Fri, 28 Nov 2014 23:16:59 -0500
- Subject: Re: Make linknamespace tests check only relevant libraries
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot DEB dot 2 dot 10 dot 1411290147140 dot 30652 at digraph dot polyomino dot org dot uk>
On 11/28/2014 08:47 PM, Joseph Myers wrote:
> This patch addresses one known caveat in the linknamespace tests: with
> this patch they will now only look for definitions of symbols in
> relevant libraries, meaning that librt and libpthread are not checked
> for ISO C standards, XPG3 and XPG4.
>
> In particular, this means that if __pthread_initialize_minimal is
> somehow brought in for one of those standards, the definition from
> libc-tls.o will be considered instead of that from libpthread, so
> avoiding bringing in lots of other libpthread symbols. This should
> address some of the failures reported by Carlos in
> <https://sourceware.org/ml/libc-alpha/2014-11/msg00882.html>, where
> __pointer_chk_guard_local brought in __pthread_initialize_minimal.
>
> Tested for x86_64. The removal of one XFAIL for XPG4 actually shows
> up a header bug (shm_open should not be declared for XPG4 - the
> namespace issue was for symbols brought in by shm_open, which is no
> longer found at all now librt isn't searched; I've filed bug 17663 for
> the header bug, though it would show up eventually anyway in the
> course of review of conform/ data against XPG4).
>
> Committed.
I see ~70 less failures, but I still see ~150 failures.
The complete list follows with some excerpts of the failures.
I've sent you the tarball of the failures in a private email.
Some of them are the `profil_counter` failure you noted, but
others remain the __pointer_chk_guard_local inclusion and
subsequent libpthread analysis, which I think is not correct,
but haven't reviewed in detail.
FAIL: conform/POSIX/assert.h/linknamespace
~~~
[initial] __assert_fail -> [libc.a(assert.o)] __fxprintf -> [libc.a(fxprintf.o)] __vfwprintf -> [libc.a(vfwprintf.o)] _IO_fwide -> [libc.a(iofwide.o)] __pointer_chk_guard_local -> [libc.a(libc-start.o)] __pthread_initialize_minimal -> [libpthread.a(nptl-init.o)] __nptl_setxid_error -> [libpthread.a(pthread_create.o)] __resp -> [libc.a(res_libc.o)] __res_iclose -> [libc.a(res_init.o)] fgets_unlocked
...
~~~
FAIL: conform/POSIX/dirent.h/linknamespace
FAIL: conform/POSIX/fcntl.h/linknamespace
FAIL: conform/POSIX/grp.h/linknamespace
FAIL: conform/POSIX/locale.h/linknamespace
FAIL: conform/POSIX/math.h/linknamespace
FAIL: conform/POSIX/pwd.h/linknamespace
FAIL: conform/POSIX/semaphore.h/conform
FAIL: conform/POSIX/setjmp.h/linknamespace
FAIL: conform/POSIX/signal.h/linknamespace
FAIL: conform/POSIX/stdio.h/linknamespace
FAIL: conform/POSIX/stdlib.h/linknamespace
FAIL: conform/POSIX/string.h/linknamespace
FAIL: conform/POSIX/sys/wait.h/linknamespace
FAIL: conform/POSIX/termios.h/linknamespace
FAIL: conform/POSIX2008/arpa/inet.h/linknamespace
~~~
[initial] accept -> [libpthread.a(ptw-accept.o)] __pthread_disable_asynccancel -> [libpthread.a(cancellation.o)] __pthread_unwind -> [libpthread.a(unwind.o)] __pointer_chk_guard_local -> [libc.a(libc-start.o)] __pthread_initialize_minimal -> [libpthread.a(nptl-init.o)] __nptl_setxid_error -> [libpthread.a(pthread_create.o)] __resp -> [libc.a(res_libc.o)] __res_iclose -> [libc.a(res_init.o)] fgets_unlocked
...
~~~
FAIL: conform/POSIX2008/assert.h/linknamespace
FAIL: conform/POSIX2008/complex.h/linknamespace
FAIL: conform/POSIX2008/cpio.h/conform
FAIL: conform/POSIX2008/cpio.h/linknamespace
FAIL: conform/POSIX2008/fnmatch.h/linknamespace
FAIL: conform/POSIX2008/glob.h/linknamespace
FAIL: conform/POSIX2008/iconv.h/linknamespace
FAIL: conform/POSIX2008/langinfo.h/linknamespace
FAIL: conform/POSIX2008/locale.h/linknamespace
FAIL: conform/POSIX2008/math.h/linknamespace
FAIL: conform/POSIX2008/monetary.h/linknamespace
FAIL: conform/POSIX2008/netinet/in.h/linknamespace
FAIL: conform/POSIX2008/nl_types.h/linknamespace
FAIL: conform/POSIX2008/pwd.h/linknamespace
FAIL: conform/POSIX2008/sched.h/linknamespace
FAIL: conform/POSIX2008/semaphore.h/conform
FAIL: conform/POSIX2008/setjmp.h/linknamespace
FAIL: conform/POSIX2008/signal.h/linknamespace
FAIL: conform/POSIX2008/stdio.h/linknamespace
FAIL: conform/POSIX2008/stdlib.h/linknamespace
FAIL: conform/POSIX2008/string.h/linknamespace
FAIL: conform/POSIX2008/stropts.h/linknamespace
FAIL: conform/POSIX2008/sys/socket.h/linknamespace
FAIL: conform/POSIX2008/sys/wait.h/linknamespace
FAIL: conform/POSIX2008/termios.h/linknamespace
FAIL: conform/POSIX2008/tgmath.h/linknamespace
FAIL: conform/POSIX2008/wchar.h/linknamespace
FAIL: conform/POSIX2008/wordexp.h/linknamespace
FAIL: conform/UNIX98/arpa/inet.h/linknamespace
~~~
[initial] accept -> [libpthread.a(ptw-accept.o)] __pthread_disable_asynccancel -> [libpthread.a(cancellation.o)] __pthread_unwind -> [libpthread.a(unwind.o)] __pointer_chk_guard_local -> [libc.a(libc-start.o)] __pthread_initialize_minimal -> [libpthread.a(nptl-init.o)] __nptl_setxid_error -> [libpthread.a(pthread_create.o)] __resp -> [libc.a(res_libc.o)] __res_iclose -> [libc.a(res_init.o)] fgets_unlocked
...
~~~
FAIL: conform/UNIX98/assert.h/linknamespace
FAIL: conform/UNIX98/cpio.h/conform
FAIL: conform/UNIX98/cpio.h/linknamespace
FAIL: conform/UNIX98/dirent.h/linknamespace
FAIL: conform/UNIX98/fcntl.h/linknamespace
FAIL: conform/UNIX98/fmtmsg.h/conform
FAIL: conform/UNIX98/ftw.h/linknamespace
FAIL: conform/UNIX98/iconv.h/linknamespace
FAIL: conform/UNIX98/langinfo.h/linknamespace
FAIL: conform/UNIX98/locale.h/linknamespace
FAIL: conform/UNIX98/math.h/linknamespace
FAIL: conform/UNIX98/monetary.h/linknamespace
FAIL: conform/UNIX98/netinet/in.h/linknamespace
FAIL: conform/UNIX98/nl_types.h/linknamespace
FAIL: conform/UNIX98/semaphore.h/conform
FAIL: conform/UNIX98/setjmp.h/linknamespace
FAIL: conform/UNIX98/signal.h/linknamespace
FAIL: conform/UNIX98/string.h/linknamespace
FAIL: conform/UNIX98/stropts.h/linknamespace
FAIL: conform/UNIX98/sys/msg.h/linknamespace
FAIL: conform/UNIX98/sys/shm.h/linknamespace
FAIL: conform/UNIX98/sys/socket.h/linknamespace
FAIL: conform/UNIX98/sys/wait.h/linknamespace
FAIL: conform/UNIX98/termios.h/linknamespace
FAIL: conform/UNIX98/ucontext.h/linknamespace
FAIL: conform/UNIX98/ulimit.h/linknamespace
FAIL: conform/UNIX98/utmpx.h/linknamespace
FAIL: conform/XOPEN2K/arpa/inet.h/linknamespace
FAIL: conform/XOPEN2K/assert.h/linknamespace
FAIL: conform/XOPEN2K/complex.h/linknamespace
FAIL: conform/XOPEN2K/cpio.h/conform
FAIL: conform/XOPEN2K/cpio.h/linknamespace
FAIL: conform/XOPEN2K/dirent.h/linknamespace
~~~
[initial] closedir -> [libc.a(closedir.o)] __close_nocancel -> [libpthread.a(ptw-close.o)] __pthread_disable_asynccancel -> [libpthread.a(cancellation.o)] __pthread_unwind -> [libpthread.a(unwind.o)] __pointer_chk_guard_local -> [libc.a(libc-start.o)] __pthread_initialize_minimal -> [libpthread.a(nptl-init.o)] __nptl_setxid_error -> [libpthread.a(pthread_create.o)] __resp -> [libc.a(res_libc.o)] __res_iclose -> [libc.a(res_init.o)] fgets_unlocked
...
~~~
FAIL: conform/XOPEN2K/fmtmsg.h/conform
FAIL: conform/XOPEN2K/ftw.h/linknamespace
FAIL: conform/XOPEN2K/iconv.h/linknamespace
FAIL: conform/XOPEN2K/langinfo.h/linknamespace
FAIL: conform/XOPEN2K/locale.h/linknamespace
FAIL: conform/XOPEN2K/math.h/linknamespace
FAIL: conform/XOPEN2K/monetary.h/linknamespace
FAIL: conform/XOPEN2K/netinet/in.h/linknamespace
FAIL: conform/XOPEN2K/nl_types.h/linknamespace
FAIL: conform/XOPEN2K/sched.h/linknamespace
FAIL: conform/XOPEN2K/setjmp.h/linknamespace
FAIL: conform/XOPEN2K/stdio.h/linknamespace
FAIL: conform/XOPEN2K/string.h/linknamespace
FAIL: conform/XOPEN2K/stropts.h/linknamespace
FAIL: conform/XOPEN2K/sys/msg.h/linknamespace
FAIL: conform/XOPEN2K/sys/shm.h/linknamespace
FAIL: conform/XOPEN2K/sys/socket.h/linknamespace
FAIL: conform/XOPEN2K/termios.h/linknamespace
FAIL: conform/XOPEN2K/tgmath.h/linknamespace
FAIL: conform/XOPEN2K/ulimit.h/linknamespace
FAIL: conform/XOPEN2K/utmpx.h/linknamespace
FAIL: conform/XOPEN2K/wchar.h/linknamespace
FAIL: conform/XOPEN2K8/arpa/inet.h/linknamespace
FAIL: conform/XOPEN2K8/assert.h/linknamespace
FAIL: conform/XOPEN2K8/complex.h/linknamespace
FAIL: conform/XOPEN2K8/cpio.h/conform
FAIL: conform/XOPEN2K8/cpio.h/linknamespace
FAIL: conform/XOPEN2K8/fmtmsg.h/conform
FAIL: conform/XOPEN2K8/fnmatch.h/linknamespace
FAIL: conform/XOPEN2K8/ftw.h/linknamespace
FAIL: conform/XOPEN2K8/glob.h/linknamespace
FAIL: conform/XOPEN2K8/iconv.h/linknamespace
~~~
[initial] iconv -> [libc.a(iconv.o)] __gconv -> [libc.a(gconv.o)] __pointer_chk_guard_local -> [libc.a(libc-start.o)] __pthread_initialize_minimal -> [libpthread.a(nptl-init.o)] __nptl_setxid_error -> [libpthread.a(pthread_create.o)] __resp -> [libc.a(res_libc.o)] __res_iclose -> [libc.a(res_init.o)] fgets_unlocked
...
~~~
FAIL: conform/XOPEN2K8/langinfo.h/linknamespace
FAIL: conform/XOPEN2K8/locale.h/linknamespace
FAIL: conform/XOPEN2K8/math.h/linknamespace
FAIL: conform/XOPEN2K8/monetary.h/linknamespace
FAIL: conform/XOPEN2K8/netinet/in.h/linknamespace
FAIL: conform/XOPEN2K8/nl_types.h/linknamespace
FAIL: conform/XOPEN2K8/sched.h/linknamespace
FAIL: conform/XOPEN2K8/semaphore.h/conform
FAIL: conform/XOPEN2K8/setjmp.h/linknamespace
FAIL: conform/XOPEN2K8/signal.h/linknamespace
FAIL: conform/XOPEN2K8/stdio.h/linknamespace
FAIL: conform/XOPEN2K8/stdlib.h/linknamespace
FAIL: conform/XOPEN2K8/string.h/linknamespace
FAIL: conform/XOPEN2K8/stropts.h/linknamespace
FAIL: conform/XOPEN2K8/sys/msg.h/linknamespace
FAIL: conform/XOPEN2K8/sys/shm.h/linknamespace
FAIL: conform/XOPEN2K8/sys/socket.h/linknamespace
FAIL: conform/XOPEN2K8/sys/wait.h/linknamespace
FAIL: conform/XOPEN2K8/termios.h/linknamespace
FAIL: conform/XOPEN2K8/tgmath.h/linknamespace
FAIL: conform/XOPEN2K8/ulimit.h/linknamespace
FAIL: conform/XOPEN2K8/utmpx.h/linknamespace
FAIL: conform/XOPEN2K8/wchar.h/linknamespace
FAIL: conform/XOPEN2K8/wordexp.h/linknamespace
FAIL: conform/XPG3/cpio.h/conform
FAIL: conform/XPG3/cpio.h/linknamespace
FAIL: conform/XPG3/math.h/linknamespace
FAIL: conform/XPG4/cpio.h/conform
FAIL: conform/XPG4/cpio.h/linknamespace
FAIL: conform/XPG4/fmtmsg.h/conform
FAIL: conform/XPG4/math.h/linknamespace
Cheers,
Carlos.