This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.20-276-g0e7e69b
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 29 Nov 2014 01:47:20 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.20-276-g0e7e69b
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 0e7e69baa8576831da39680274cf9b52d7569e4c (commit)
from 0b3b57625388983a5545a21fe00569e92e988a8d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0e7e69baa8576831da39680274cf9b52d7569e4c
commit 0e7e69baa8576831da39680274cf9b52d7569e4c
Author: Joseph Myers <joseph@codesourcery.com>
Date: Sat Nov 29 01:46:56 2014 +0000
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.
diff --git a/ChangeLog b/ChangeLog
index b627149..8a6e89e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2014-11-29 Joseph Myers <joseph@codesourcery.com>
+
+ * 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.
+
2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
[BZ #13862]
diff --git a/conform/Makefile b/conform/Makefile
index 4a498e4..641f546 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -124,7 +124,13 @@ linknamespace-symlists-tests := $(addprefix $(objpfx),\
$(linknamespace-symlists-base))
tests-special += $(linknamespace-symlists-tests)
-tests-special += $(objpfx)symlist-stdlibs
+linknamespace-symlist-stdlibs-base := $(foreach std,$(conformtest-standards),\
+ symlist-stdlibs-$(std))
+linknamespace-symlist-stdlibs-tests := \
+ $(addprefix $(objpfx),\
+ $(linknamespace-symlist-stdlibs-base))
+
+tests-special += $(linknamespace-symlist-stdlibs-tests)
linknamespace-header-base := $(foreach std,\
$(conformtest-standards),\
@@ -294,21 +300,35 @@ $(linknamespace-symlists-tests): $(objpfx)symlist-%: list-header-symbols.pl
> $@ 2> $@.err; \
$(evaluate-test)
-linknamespace-libs = $(common-objpfx)libc.a $(common-objpfx)math/libm.a \
+linknamespace-libs-isoc = $(common-objpfx)libc.a $(common-objpfx)math/libm.a
+linknamespace-libs = $(linknamespace-libs-isoc) \
$(common-objpfx)rt/librt.a $(static-thread-library)
+linknamespace-libs-ISO = $(linknamespace-libs-isoc)
+linknamespace-libs-ISO99 = $(linknamespace-libs-isoc)
+linknamespace-libs-ISO11 = $(linknamespace-libs-isoc)
+linknamespace-libs-XPG3 = $(linknamespace-libs-isoc)
+linknamespace-libs-XPG4 = $(linknamespace-libs-isoc)
+linknamespace-libs-POSIX = $(linknamespace-libs)
+linknamespace-libs-UNIX98 = $(linknamespace-libs)
+linknamespace-libs-XOPEN2K = $(linknamespace-libs)
+linknamespace-libs-POSIX2008 = $(linknamespace-libs)
+linknamespace-libs-XOPEN2K8 = $(linknamespace-libs)
-$(objpfx)symlist-stdlibs: $(linknamespace-libs)
- LC_ALL=C $(READELF) -W -s $^ > $@; \
+$(linknamespace-symlist-stdlibs-tests): $(objpfx)symlist-stdlibs-%: \
+ $(linknamespace-libs)
+ LC_ALL=C $(READELF) -W -s $(linknamespace-libs-$*) > $@; \
$(evaluate-test)
$(linknamespace-header-tests): $(objpfx)%/linknamespace.out: \
- linknamespace.pl $(objpfx)symlist-stdlibs
+ linknamespace.pl \
+ $(linknamespace-symlist-stdlibs-tests)
(set -e; std_hdr=$*; std=$${std_hdr%%/*}; hdr=$${std_hdr#*/}; \
mkdir -p $(@D)/scratch; \
$(PERL) -w $< --tmpdir=$(@D)/scratch --cc='$(CC)' \
--flags='$(conformtest-cc-flags)' --standard=$$std \
--stdsyms=$(objpfx)symlist-$$std --header=$$hdr \
- --libsyms='$(objpfx)symlist-stdlibs' --readelf='$(READELF)' \
+ --libsyms=$(objpfx)symlist-stdlibs-$$std \
+ --readelf='$(READELF)' \
> $@ 2>&1); \
$(evaluate-test)
@@ -349,7 +369,6 @@ test-xfail-XPG4/regex.h/linknamespace = yes
test-xfail-XPG4/search.h/linknamespace = yes
test-xfail-XPG4/stdio.h/linknamespace = yes
test-xfail-XPG4/stdlib.h/linknamespace = yes
-test-xfail-XPG4/sys/mman.h/linknamespace = yes
test-xfail-XPG4/sys/statvfs.h/linknamespace = yes
test-xfail-XPG4/syslog.h/linknamespace = yes
test-xfail-XPG4/time.h/linknamespace = yes
diff --git a/conform/linknamespace.pl b/conform/linknamespace.pl
index fd8c3dc..7323d4d 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.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 28 ++++++++++++++++++++++++++++
conform/Makefile | 33 ++++++++++++++++++++++++++-------
conform/linknamespace.pl | 5 -----
3 files changed, 54 insertions(+), 12 deletions(-)
hooks/post-receive
--
GNU C Library master sources