diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-11-29 01:46:56 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-11-29 01:46:56 +0000 |
commit | 0e7e69baa8576831da39680274cf9b52d7569e4c (patch) | |
tree | 8e15f7c6330dffe120acfb630d35727f825a5970 /conform/linknamespace.pl | |
parent | 0b3b57625388983a5545a21fe00569e92e988a8d (diff) | |
download | glibc-0e7e69baa8576831da39680274cf9b52d7569e4c.tar.gz glibc-0e7e69baa8576831da39680274cf9b52d7569e4c.tar.xz glibc-0e7e69baa8576831da39680274cf9b52d7569e4c.zip |
Make linknamespace tests check only relevant libraries.
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. * conform/Makefile (linknamespace-symlist-stdlibs-base): New variable. (linknamespace-symlist-stdlibs-tests): Likewise. (tests-special): Append $(linknamespace-symlist-stdlibs-tests) instead of $(objpfx)symlist-stdlibs. (linknamespace-libs-isoc): New variable. (linknamespace-libs): Use $(linknamespace-libs-isoc). (linknamespace-libs-ISO): New variable. (linknamespace-libs-ISO99): Likewise. (linknamespace-libs-ISO11): Likewise. (linknamespace-libs-XPG3): Likewise. (linknamespace-libs-XPG4): Likewise. (linknamespace-libs-POSIX): Likewise. (linknamespace-libs-UNIX98): Likewise. (linknamespace-libs-XOPEN2K): Likewise. (linknamespace-libs-POSIX2008): Likewise. (linknamespace-libs-XOPEN2K8): Likewise. ($(objpfx)symlist-stdlibs): Replace by $(linknamespace-symlist-stdlibs-tests). Use $(linknamespace-libs-$*) as set of libraries. ($(linknamespace-header-tests)): Update dependencies. Use $(objpfx)symlist-stdlibs-$$std for --libsyms argument. (test-xfail-XPG4/sys/mman.h/linknamespace): Remove. * conform/linknamespace.pl: Remove comment about considering definitions of symbols from irrelevant libraries.
Diffstat (limited to 'conform/linknamespace.pl')
-rw-r--r-- | conform/linknamespace.pl | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/conform/linknamespace.pl b/conform/linknamespace.pl index fd8c3dc81b..7323d4d608 100644 --- a/conform/linknamespace.pl +++ b/conform/linknamespace.pl @@ -135,11 +135,6 @@ foreach my $sym (@sym_data) { # conditionally and not if the program is limited to standard # functionality. (matherr is an example of such a false positive.) # -# * For strong undefined symbols, all possible definitions are -# considered, rather than being restricted to libraries that are -# relevant to the given standard (e.g. not considering any libpthread -# definitions of ISO C symbols). -# # * If a symbol reference is only brought in by the user using a data # symbol rather than a function from the standard library, this will # not be detected. |