Message ID | alpine.DEB.2.10.1411272041480.15307@digraph.polyomino.org.uk |
---|---|
State | Committed |
Headers |
Received: (qmail 426 invoked by alias); 27 Nov 2014 20:42:30 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <libc-alpha.sourceware.org> List-Unsubscribe: <mailto:libc-alpha-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 416 invoked by uid 89); 27 Nov 2014 20:42:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Date: Thu, 27 Nov 2014 20:42:24 +0000 From: Joseph Myers <joseph@codesourcery.com> To: <libc-alpha@sourceware.org> Subject: Add more headers to include/ for conform tests Message-ID: <alpine.DEB.2.10.1411272041480.15307@digraph.polyomino.org.uk> User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" |
Commit Message
Joseph Myers
Nov. 27, 2014, 8:42 p.m. UTC
Carlos reported failures in conform/ tests in environments where the compiler used could only find headers in glibc's source and build trees, not any previously installed headers <https://sourceware.org/ml/libc-alpha/2014-09/msg00040.html>. This patch adds wrappers for the affected headers to include/, which is the normal way to make headers visible when building or testing in directories other than the one containing the header (I suppose these headers weren't needed in any such directories except conform/, or other build or test failures would have resulted). I believe the same issue applies at least to regexp.h and re_comp.h - we don't currently have conform/ expectations for those, but when such expectations are added we'll also need to add header wrappers. The semaphore.h wrapper just includes nptl/semaphore.h - there's a question about whether this is logically correct, given the possibility of other thread library implementations. I suggested a couple of possible alternative approaches in <https://sourceware.org/ml/libc-alpha/2014-09/msg00046.html>. Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). I did *not* test a configuration such as that in which Carlos saw failure. 2014-11-27 Joseph Myers <joseph@codesourcery.com> * include/cpio.h: New file. * include/fmtmsg.h: Likewise. * include/semaphore.h: Likewise.
Comments
On 11/27/2014 03:42 PM, Joseph Myers wrote: > Carlos reported failures in conform/ tests in environments where the > compiler used could only find headers in glibc's source and build > trees, not any previously installed headers > <https://sourceware.org/ml/libc-alpha/2014-09/msg00040.html>. > > This patch adds wrappers for the affected headers to include/, which > is the normal way to make headers visible when building or testing in > directories other than the one containing the header (I suppose these > headers weren't needed in any such directories except conform/, or > other build or test failures would have resulted). I believe the same > issue applies at least to regexp.h and re_comp.h - we don't currently > have conform/ expectations for those, but when such expectations are > added we'll also need to add header wrappers. > > The semaphore.h wrapper just includes nptl/semaphore.h - there's a > question about whether this is logically correct, given the > possibility of other thread library implementations. I suggested a > couple of possible alternative approaches in > <https://sourceware.org/ml/libc-alpha/2014-09/msg00046.html>. > > Tested for x86_64 (testsuite, and that installed stripped shared > libraries are unchanged by the patch). I did *not* test a > configuration such as that in which Carlos saw failure. > > 2014-11-27 Joseph Myers <joseph@codesourcery.com> > > * include/cpio.h: New file. > * include/fmtmsg.h: Likewise. > * include/semaphore.h: Likewise. This fixes the failures I see on Fedora 20. Now I have only 200+ linknamespace failures :-) Cheers, Carlos.
On Fri, 28 Nov 2014, Carlos O'Donell wrote:
> Now I have only 200+ linknamespace failures :-)
What are those failures (what error messages where)? At least on
x86_64/x86, all the non-XFAILed tests ought to be passing (though the same
include/ patch may be needed for them).
On 11/28/2014 06:52 PM, Joseph Myers wrote: > On Fri, 28 Nov 2014, Carlos O'Donell wrote: > >> Now I have only 200+ linknamespace failures :-) > > What are those failures (what error messages where)? At least on > x86_64/x86, all the non-XFAILed tests ought to be passing (though the same > include/ patch may be needed for them). As an example on 32-bit ARM: conform/ISO/assert.h/linknamespace.out: [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 [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)] if_nametoindex -> [libc.a(if_index.o)] __netlink_close -> [libc.a(ifaddrs.o)] freeifaddrs [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)] if_nametoindex -> [libc.a(if_index.o)] __netlink_close -> [libc.a(ifaddrs.o)] getifaddrs [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)] if_nametoindex -> [libc.a(if_index.o)] if_freenameindex [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)] if_nametoindex -> [libc.a(if_index.o)] if_indextoname [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)] if_nametoindex -> [libc.a(if_index.o)] if_nameindex [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)] if_nametoindex [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)] __inet_aton -> [libc.a(inet_addr.o)] inet_addr [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)] inet_makeaddr [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)] inet_pton [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)] mmap [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)] mprotect [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)] munmap [initial] __assert_fail -> [libc.a(assert.o)] _dl_pagesize -> [libc.a(dl-support.o)] _dl_nothread_init_static_tls -> [libc.a(dl-reloc.o)] _dl_runtime_profile -> [libc.a(dl-trampoline.o)] _dl_call_pltexit -> [libc.a(dl-runtime.o)] _dl_mcount -> [libc.a(dl-profile.o)] __profil -> [libc.a(profil.o)] profil_counter [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)] pthread_cancel [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)] pthread_cancel -> [libpthread.a(pthread_cancel.o)] pthread_create [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)] pthread_getspecific [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)] pthread_key_create [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)] pthread_key_delete [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)] pthread_mutex_lock [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)] pthread_mutex_trylock [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)] pthread_mutex_unlock [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)] pthread_once [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)] pthread_setspecific [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)] pthread_mutex_lock -> [libpthread.a(pthread_mutex_lock.o)] __pthread_current_priority -> [libpthread.a(tpp.o)] sched_get_priority_max [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)] pthread_mutex_lock -> [libpthread.a(pthread_mutex_lock.o)] __pthread_current_priority -> [libpthread.a(tpp.o)] sched_get_priority_min [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)] __gethostname -> [libc.a(gethostname.o)] uname Cheers, Carlos.
On Fri, 28 Nov 2014, Carlos O'Donell wrote: > On 11/28/2014 06:52 PM, Joseph Myers wrote: > > On Fri, 28 Nov 2014, Carlos O'Donell wrote: > > > >> Now I have only 200+ linknamespace failures :-) > > > > What are those failures (what error messages where)? At least on > > x86_64/x86, all the non-XFAILed tests ought to be passing (though the same > > include/ patch may be needed for them). > > As an example on 32-bit ARM: > > conform/ISO/assert.h/linknamespace.out: > > [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 I hope the patch I just committed <https://sourceware.org/ml/libc-alpha/2014-11/msg00889.html> will fix many of these. (However, such symbols appear in many of the existing XFAILed cases that end up bringing in the resolver etc. - they reflect genuine architecture-independent namespace bugs, it's just the appearance in this particular case that's architecture-specific.) > [initial] __assert_fail -> [libc.a(assert.o)] _dl_pagesize -> [libc.a(dl-support.o)] _dl_nothread_init_static_tls -> [libc.a(dl-reloc.o)] _dl_runtime_profile -> [libc.a(dl-trampoline.o)] _dl_call_pltexit -> [libc.a(dl-runtime.o)] _dl_mcount -> [libc.a(dl-profile.o)] __profil -> [libc.a(profil.o)] profil_counter This looks like an ordinary architecture-specific bug, however. (On architectures where profil_counter is not static, i.e. ARM and SPARC, it should be a weak alias for __profil_counter.)
On 11/28/2014 08:53 PM, Joseph Myers wrote: > On Fri, 28 Nov 2014, Carlos O'Donell wrote: > >> On 11/28/2014 06:52 PM, Joseph Myers wrote: >>> On Fri, 28 Nov 2014, Carlos O'Donell wrote: >>> >>>> Now I have only 200+ linknamespace failures :-) >>> >>> What are those failures (what error messages where)? At least on >>> x86_64/x86, all the non-XFAILed tests ought to be passing (though the same >>> include/ patch may be needed for them). >> >> As an example on 32-bit ARM: >> >> conform/ISO/assert.h/linknamespace.out: >> >> [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 > > I hope the patch I just committed > <https://sourceware.org/ml/libc-alpha/2014-11/msg00889.html> will fix many > of these. (However, such symbols appear in many of the existing XFAILed > cases that end up bringing in the resolver etc. - they reflect genuine > architecture-independent namespace bugs, it's just the appearance in this > particular case that's architecture-specific.) Thanks. I'm retesting with your patch. >> [initial] __assert_fail -> [libc.a(assert.o)] _dl_pagesize -> [libc.a(dl-support.o)] _dl_nothread_init_static_tls -> [libc.a(dl-reloc.o)] _dl_runtime_profile -> [libc.a(dl-trampoline.o)] _dl_call_pltexit -> [libc.a(dl-runtime.o)] _dl_mcount -> [libc.a(dl-profile.o)] __profil -> [libc.a(profil.o)] profil_counter > > This looks like an ordinary architecture-specific bug, however. (On > architectures where profil_counter is not static, i.e. ARM and SPARC, it > should be a weak alias for __profil_counter.) Agreed. Cheers, Carlos.
Ping. This patch <https://sourceware.org/ml/libc-alpha/2014-11/msg00859.html> is pending review. (Carlos said it fixed the problem he saw, but that's not a review. The main question for review is the correct approach for handling semaphore.h.)
Ping^2. This patch <https://sourceware.org/ml/libc-alpha/2014-11/msg00859.html> is still pending review. (Carlos said it fixed the problem he saw, but that's not a review. The main question for review is the correct approach for handling semaphore.h.)
I think moving semaphore.h to sysdeps/pthread/ is sound. The other wrappers are fine.
diff --git a/include/cpio.h b/include/cpio.h new file mode 100644 index 0000000..38e2ed1 --- /dev/null +++ b/include/cpio.h @@ -0,0 +1 @@ +#include <posix/cpio.h> diff --git a/include/fmtmsg.h b/include/fmtmsg.h new file mode 100644 index 0000000..6ac606d --- /dev/null +++ b/include/fmtmsg.h @@ -0,0 +1 @@ +#include <stdlib/fmtmsg.h> diff --git a/include/semaphore.h b/include/semaphore.h new file mode 100644 index 0000000..01c7ba1 --- /dev/null +++ b/include/semaphore.h @@ -0,0 +1 @@ +#include <nptl/semaphore.h>