]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - conform/Makefile
Fix limits.h NL_NMAX namespace (bug 19929).
[thirdparty/glibc.git] / conform / Makefile
index e8c9a9accaca78aa32b18698a8fdba79305d9c16..0b5514c86124b2d727398df09b5f9663a9aae5cb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2016 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -118,6 +118,29 @@ generated += $(conformtest-header-base)
 endif
 endif
 
+linknamespace-symlists-base := $(foreach std,$(conformtest-standards),\
+                                            symlist-$(std))
+linknamespace-symlists-tests := $(addprefix $(objpfx),\
+                                           $(linknamespace-symlists-base))
+tests-special += $(linknamespace-symlists-tests)
+
+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),\
+                                      $(foreach h,\
+                                                $(conformtest-headers-$(std)),\
+                                                $(std)/$(h)/linknamespace.out))
+linknamespace-header-tests := $(addprefix $(objpfx),\
+                                         $(linknamespace-header-base))
+tests-special += $(linknamespace-header-tests)
+
 include ../Rules
 
 $(conformtest-header-list-tests): $(objpfx)header-list-%.out: \
@@ -127,11 +150,6 @@ $(conformtest-header-list-tests): $(objpfx)header-list-%.out: \
                 "$(conformtest-headers-data)" > $@; \
        $(evaluate-test)
 
-# GCC 4.6 and earlier lack features required by these tests.
-test-xfail-ISO11/complex.h/conform = yes
-test-xfail-ISO11/stdalign.h/conform = yes
-test-xfail-ISO11/stdnoreturn.h/conform = yes
-
 # Pre-standard C feature no longer supported by GCC (obsoleted in
 # newer POSIX standards).
 test-xfail-XPG3/varargs.h/conform = yes
@@ -147,7 +165,6 @@ test-xfail-XOPEN2K8/ndbm.h/conform = yes
 # Unsorted expected failures.
 test-xfail-XPG3/fcntl.h/conform = yes
 test-xfail-XPG3/ftw.h/conform = yes
-test-xfail-XPG3/grp.h/conform = yes
 test-xfail-XPG3/langinfo.h/conform = yes
 test-xfail-XPG3/limits.h/conform = yes
 test-xfail-XPG3/pwd.h/conform = yes
@@ -156,10 +173,6 @@ test-xfail-XPG3/signal.h/conform = yes
 test-xfail-XPG3/stdio.h/conform = yes
 test-xfail-XPG3/stdlib.h/conform = yes
 test-xfail-XPG3/string.h/conform = yes
-test-xfail-XPG3/sys/ipc.h/conform = yes
-test-xfail-XPG3/sys/msg.h/conform = yes
-test-xfail-XPG3/sys/sem.h/conform = yes
-test-xfail-XPG3/sys/shm.h/conform = yes
 test-xfail-XPG3/sys/stat.h/conform = yes
 test-xfail-XPG3/sys/types.h/conform = yes
 test-xfail-XPG3/sys/wait.h/conform = yes
@@ -174,12 +187,6 @@ test-xfail-XPG4/netinet/in.h/conform = yes
 test-xfail-XPG4/signal.h/conform = yes
 test-xfail-XPG4/stdio.h/conform = yes
 test-xfail-XPG4/stdlib.h/conform = yes
-test-xfail-XPG4/stropts.h/conform = yes
-test-xfail-XPG4/sys/ipc.h/conform = yes
-test-xfail-XPG4/sys/msg.h/conform = yes
-test-xfail-XPG4/sys/sem.h/conform = yes
-test-xfail-XPG4/sys/shm.h/conform = yes
-test-xfail-XPG4/sys/socket.h/conform = yes
 test-xfail-XPG4/sys/stat.h/conform = yes
 test-xfail-XPG4/sys/time.h/conform = yes
 test-xfail-XPG4/sys/types.h/conform = yes
@@ -188,9 +195,7 @@ test-xfail-XPG4/termios.h/conform = yes
 test-xfail-XPG4/ucontext.h/conform = yes
 test-xfail-XPG4/unistd.h/conform = yes
 test-xfail-XPG4/utmpx.h/conform = yes
-test-xfail-POSIX/signal.h/conform = yes
 test-xfail-POSIX/sys/wait.h/conform = yes
-test-xfail-POSIX/tar.h/conform = yes
 test-xfail-UNIX98/arpa/inet.h/conform = yes
 test-xfail-UNIX98/fcntl.h/conform = yes
 test-xfail-UNIX98/langinfo.h/conform = yes
@@ -199,68 +204,30 @@ test-xfail-UNIX98/netinet/in.h/conform = yes
 test-xfail-UNIX98/signal.h/conform = yes
 test-xfail-UNIX98/stdio.h/conform = yes
 test-xfail-UNIX98/stdlib.h/conform = yes
-test-xfail-UNIX98/stropts.h/conform = yes
-test-xfail-UNIX98/sys/ipc.h/conform = yes
-test-xfail-UNIX98/sys/msg.h/conform = yes
-test-xfail-UNIX98/sys/sem.h/conform = yes
-test-xfail-UNIX98/sys/shm.h/conform = yes
-test-xfail-UNIX98/sys/socket.h/conform = yes
 test-xfail-UNIX98/sys/time.h/conform = yes
 test-xfail-UNIX98/sys/wait.h/conform = yes
 test-xfail-UNIX98/ucontext.h/conform = yes
 test-xfail-UNIX98/unistd.h/conform = yes
 test-xfail-UNIX98/utmpx.h/conform = yes
 test-xfail-XOPEN2K/aio.h/conform = yes
-test-xfail-XOPEN2K/arpa/inet.h/conform = yes
 test-xfail-XOPEN2K/fcntl.h/conform = yes
 test-xfail-XOPEN2K/langinfo.h/conform = yes
-test-xfail-XOPEN2K/math.h/conform = yes
 test-xfail-XOPEN2K/mqueue.h/conform = yes
-test-xfail-XOPEN2K/netdb.h/conform = yes
-test-xfail-XOPEN2K/netinet/in.h/conform = yes
 test-xfail-XOPEN2K/semaphore.h/conform = yes
 test-xfail-XOPEN2K/signal.h/conform = yes
 test-xfail-XOPEN2K/stdarg.h/conform = yes
 test-xfail-XOPEN2K/stdio.h/conform = yes
-test-xfail-XOPEN2K/stropts.h/conform = yes
-test-xfail-XOPEN2K/sys/ipc.h/conform = yes
-test-xfail-XOPEN2K/sys/msg.h/conform = yes
-test-xfail-XOPEN2K/sys/sem.h/conform = yes
-test-xfail-XOPEN2K/sys/shm.h/conform = yes
-test-xfail-XOPEN2K/sys/socket.h/conform = yes
 test-xfail-XOPEN2K/sys/wait.h/conform = yes
-test-xfail-XOPEN2K/termios.h/conform = yes
-test-xfail-XOPEN2K/tgmath.h/conform = yes
 test-xfail-XOPEN2K/ucontext.h/conform = yes
-test-xfail-XOPEN2K/utmpx.h/conform = yes
 test-xfail-POSIX2008/arpa/inet.h/conform = yes
-test-xfail-POSIX2008/fcntl.h/conform = yes
 test-xfail-POSIX2008/netdb.h/conform = yes
 test-xfail-POSIX2008/netinet/in.h/conform = yes
 test-xfail-POSIX2008/signal.h/conform = yes
-test-xfail-POSIX2008/stropts.h/conform = yes
 test-xfail-POSIX2008/sys/socket.h/conform = yes
 test-xfail-POSIX2008/sys/wait.h/conform = yes
-test-xfail-XOPEN2K8/arpa/inet.h/conform = yes
-test-xfail-XOPEN2K8/fcntl.h/conform = yes
-test-xfail-XOPEN2K8/limits.h/conform = yes
-test-xfail-XOPEN2K8/math.h/conform = yes
-test-xfail-XOPEN2K8/netdb.h/conform = yes
-test-xfail-XOPEN2K8/netinet/in.h/conform = yes
 test-xfail-XOPEN2K8/signal.h/conform = yes
 test-xfail-XOPEN2K8/stdio.h/conform = yes
-test-xfail-XOPEN2K8/stropts.h/conform = yes
-test-xfail-XOPEN2K8/sys/ipc.h/conform = yes
-test-xfail-XOPEN2K8/sys/msg.h/conform = yes
-test-xfail-XOPEN2K8/sys/select.h/conform = yes
-test-xfail-XOPEN2K8/sys/sem.h/conform = yes
-test-xfail-XOPEN2K8/sys/shm.h/conform = yes
-test-xfail-XOPEN2K8/sys/socket.h/conform = yes
-test-xfail-XOPEN2K8/sys/time.h/conform = yes
 test-xfail-XOPEN2K8/sys/wait.h/conform = yes
-test-xfail-XOPEN2K8/termios.h/conform = yes
-test-xfail-XOPEN2K8/tgmath.h/conform = yes
-test-xfail-XOPEN2K8/utmpx.h/conform = yes
 
 conformtest-cc-flags = -I../include $(+sysdep-includes) $(sysincludes) -I..
 $(conformtest-header-tests): $(objpfx)%/conform.out: \
@@ -271,3 +238,54 @@ $(conformtest-header-tests): $(objpfx)%/conform.out: \
                 --flags='$(conformtest-cc-flags)' --standard=$$std \
                 --headers=$$hdr > $@); \
        $(evaluate-test)
+
+$(linknamespace-symlists-tests): $(objpfx)symlist-%: list-header-symbols.pl
+       $(PERL) -w $< --tmpdir=$(objpfx) --cc='$(CC)' \
+               --flags='$(conformtest-cc-flags)' --standard=$* \
+               --headers="$(strip $(conformtest-headers-$*))" \
+               > $@ 2> $@.err; \
+       $(evaluate-test)
+
+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)
+
+$(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 \
+                              $(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-$$std \
+                --readelf='$(READELF)' \
+                > $@ 2>&1); \
+       $(evaluate-test)
+
+# Pre-standard C feature no longer supported by GCC (obsoleted in
+# newer POSIX standards).
+test-xfail-XPG3/varargs.h/linknamespace = yes
+test-xfail-XPG4/varargs.h/linknamespace = yes
+test-xfail-UNIX98/varargs.h/linknamespace = yes
+
+# Header not provided by glibc.
+test-xfail-XPG4/ndbm.h/linknamespace = yes
+test-xfail-UNIX98/ndbm.h/linknamespace = yes
+test-xfail-XOPEN2K/ndbm.h/linknamespace = yes
+test-xfail-XOPEN2K8/ndbm.h/linknamespace = yes