diff options
Diffstat (limited to 'conform/Makefile')
-rw-r--r-- | conform/Makefile | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/conform/Makefile b/conform/Makefile index 3c14355256..45917a66f3 100644 --- a/conform/Makefile +++ b/conform/Makefile @@ -118,6 +118,23 @@ 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) + +tests-special += $(objpfx)symlist-stdlibs + +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: \ @@ -269,3 +286,196 @@ $(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 = $(common-objpfx)libc.a $(common-objpfx)math/libm.a \ + $(common-objpfx)rt/librt.a $(static-thread-library) + +$(objpfx)symlist-stdlibs: $(linknamespace-libs) + LC_ALL=C $(READELF) -W -s $^ > $@; \ + $(evaluate-test) + +$(linknamespace-header-tests): $(objpfx)%/linknamespace.out: \ + linknamespace.pl $(objpfx)symlist-stdlibs + (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)' \ + > $@ 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 + +# Unsorted expected failures. +test-xfail-ISO/math.h/linknamespace = yes +test-xfail-ISO/signal.h/linknamespace = yes +test-xfail-ISO/stdio.h/linknamespace = yes +test-xfail-ISO/time.h/linknamespace = yes +test-xfail-ISO99/complex.h/linknamespace = yes +test-xfail-ISO99/ctype.h/linknamespace = yes +test-xfail-ISO99/math.h/linknamespace = yes +test-xfail-ISO99/signal.h/linknamespace = yes +test-xfail-ISO99/stdio.h/linknamespace = yes +test-xfail-ISO99/tgmath.h/linknamespace = yes +test-xfail-ISO11/complex.h/linknamespace = yes +test-xfail-ISO11/ctype.h/linknamespace = yes +test-xfail-ISO11/math.h/linknamespace = yes +test-xfail-ISO11/signal.h/linknamespace = yes +test-xfail-ISO11/stdio.h/linknamespace = yes +test-xfail-ISO11/tgmath.h/linknamespace = yes +test-xfail-XPG3/ctype.h/linknamespace = yes +test-xfail-XPG3/fnmatch.h/linknamespace = yes +test-xfail-XPG3/glob.h/linknamespace = yes +test-xfail-XPG3/math.h/linknamespace = yes +test-xfail-XPG3/regex.h/linknamespace = yes +test-xfail-XPG3/search.h/linknamespace = yes +test-xfail-XPG3/stdio.h/linknamespace = yes +test-xfail-XPG3/time.h/linknamespace = yes +test-xfail-XPG3/unistd.h/linknamespace = yes +test-xfail-XPG3/wordexp.h/linknamespace = yes +test-xfail-XPG4/ctype.h/linknamespace = yes +test-xfail-XPG4/fmtmsg.h/linknamespace = yes +test-xfail-XPG4/fnmatch.h/linknamespace = yes +test-xfail-XPG4/glob.h/linknamespace = yes +test-xfail-XPG4/grp.h/linknamespace = yes +test-xfail-XPG4/libgen.h/linknamespace = yes +test-xfail-XPG4/math.h/linknamespace = yes +test-xfail-XPG4/netdb.h/linknamespace = yes +test-xfail-XPG4/pwd.h/linknamespace = yes +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 +test-xfail-XPG4/unistd.h/linknamespace = yes +test-xfail-XPG4/wordexp.h/linknamespace = yes +test-xfail-POSIX/aio.h/linknamespace = yes +test-xfail-POSIX/fnmatch.h/linknamespace = yes +test-xfail-POSIX/glob.h/linknamespace = yes +test-xfail-POSIX/math.h/linknamespace = yes +test-xfail-POSIX/mqueue.h/linknamespace = yes +test-xfail-POSIX/pthread.h/linknamespace = yes +test-xfail-POSIX/regex.h/linknamespace = yes +test-xfail-POSIX/sched.h/linknamespace = yes +test-xfail-POSIX/semaphore.h/linknamespace = yes +test-xfail-POSIX/sys/mman.h/linknamespace = yes +test-xfail-POSIX/time.h/linknamespace = yes +test-xfail-POSIX/unistd.h/linknamespace = yes +test-xfail-POSIX/wordexp.h/linknamespace = yes +test-xfail-UNIX98/aio.h/linknamespace = yes +test-xfail-UNIX98/ctype.h/linknamespace = yes +test-xfail-UNIX98/fmtmsg.h/linknamespace = yes +test-xfail-UNIX98/fnmatch.h/linknamespace = yes +test-xfail-UNIX98/glob.h/linknamespace = yes +test-xfail-UNIX98/grp.h/linknamespace = yes +test-xfail-UNIX98/libgen.h/linknamespace = yes +test-xfail-UNIX98/math.h/linknamespace = yes +test-xfail-UNIX98/mqueue.h/linknamespace = yes +test-xfail-UNIX98/netdb.h/linknamespace = yes +test-xfail-UNIX98/pthread.h/linknamespace = yes +test-xfail-UNIX98/pwd.h/linknamespace = yes +test-xfail-UNIX98/regex.h/linknamespace = yes +test-xfail-UNIX98/sched.h/linknamespace = yes +test-xfail-UNIX98/search.h/linknamespace = yes +test-xfail-UNIX98/semaphore.h/linknamespace = yes +test-xfail-UNIX98/stdio.h/linknamespace = yes +test-xfail-UNIX98/stdlib.h/linknamespace = yes +test-xfail-UNIX98/sys/mman.h/linknamespace = yes +test-xfail-UNIX98/sys/statvfs.h/linknamespace = yes +test-xfail-UNIX98/syslog.h/linknamespace = yes +test-xfail-UNIX98/time.h/linknamespace = yes +test-xfail-UNIX98/unistd.h/linknamespace = yes +test-xfail-UNIX98/wchar.h/linknamespace = yes +test-xfail-UNIX98/wordexp.h/linknamespace = yes +test-xfail-XOPEN2K/aio.h/linknamespace = yes +test-xfail-XOPEN2K/complex.h/linknamespace = yes +test-xfail-XOPEN2K/fcntl.h/linknamespace = yes +test-xfail-XOPEN2K/fmtmsg.h/linknamespace = yes +test-xfail-XOPEN2K/fnmatch.h/linknamespace = yes +test-xfail-XOPEN2K/glob.h/linknamespace = yes +test-xfail-XOPEN2K/grp.h/linknamespace = yes +test-xfail-XOPEN2K/libgen.h/linknamespace = yes +test-xfail-XOPEN2K/math.h/linknamespace = yes +test-xfail-XOPEN2K/mqueue.h/linknamespace = yes +test-xfail-XOPEN2K/net/if.h/linknamespace = yes +test-xfail-XOPEN2K/netdb.h/linknamespace = yes +test-xfail-XOPEN2K/pthread.h/linknamespace = yes +test-xfail-XOPEN2K/pwd.h/linknamespace = yes +test-xfail-XOPEN2K/regex.h/linknamespace = yes +test-xfail-XOPEN2K/search.h/linknamespace = yes +test-xfail-XOPEN2K/semaphore.h/linknamespace = yes +test-xfail-XOPEN2K/signal.h/linknamespace = yes +test-xfail-XOPEN2K/spawn.h/linknamespace = yes +test-xfail-XOPEN2K/stdlib.h/linknamespace = yes +test-xfail-XOPEN2K/sys/mman.h/linknamespace = yes +test-xfail-XOPEN2K/sys/statvfs.h/linknamespace = yes +test-xfail-XOPEN2K/sys/wait.h/linknamespace = yes +test-xfail-XOPEN2K/syslog.h/linknamespace = yes +test-xfail-XOPEN2K/tgmath.h/linknamespace = yes +test-xfail-XOPEN2K/time.h/linknamespace = yes +test-xfail-XOPEN2K/ucontext.h/linknamespace = yes +test-xfail-XOPEN2K/unistd.h/linknamespace = yes +test-xfail-XOPEN2K/wordexp.h/linknamespace = yes +test-xfail-POSIX2008/aio.h/linknamespace = yes +test-xfail-POSIX2008/complex.h/linknamespace = yes +test-xfail-POSIX2008/ctype.h/linknamespace = yes +test-xfail-POSIX2008/dirent.h/linknamespace = yes +test-xfail-POSIX2008/fcntl.h/linknamespace = yes +test-xfail-POSIX2008/grp.h/linknamespace = yes +test-xfail-POSIX2008/math.h/linknamespace = yes +test-xfail-POSIX2008/mqueue.h/linknamespace = yes +test-xfail-POSIX2008/net/if.h/linknamespace = yes +test-xfail-POSIX2008/netdb.h/linknamespace = yes +test-xfail-POSIX2008/pthread.h/linknamespace = yes +test-xfail-POSIX2008/regex.h/linknamespace = yes +test-xfail-POSIX2008/semaphore.h/linknamespace = yes +test-xfail-POSIX2008/spawn.h/linknamespace = yes +test-xfail-POSIX2008/sys/mman.h/linknamespace = yes +test-xfail-POSIX2008/sys/statvfs.h/linknamespace = yes +test-xfail-POSIX2008/tgmath.h/linknamespace = yes +test-xfail-POSIX2008/time.h/linknamespace = yes +test-xfail-POSIX2008/unistd.h/linknamespace = yes +test-xfail-XOPEN2K8/aio.h/linknamespace = yes +test-xfail-XOPEN2K8/complex.h/linknamespace = yes +test-xfail-XOPEN2K8/dirent.h/linknamespace = yes +test-xfail-XOPEN2K8/fcntl.h/linknamespace = yes +test-xfail-XOPEN2K8/fmtmsg.h/linknamespace = yes +test-xfail-XOPEN2K8/grp.h/linknamespace = yes +test-xfail-XOPEN2K8/libgen.h/linknamespace = yes +test-xfail-XOPEN2K8/math.h/linknamespace = yes +test-xfail-XOPEN2K8/mqueue.h/linknamespace = yes +test-xfail-XOPEN2K8/net/if.h/linknamespace = yes +test-xfail-XOPEN2K8/netdb.h/linknamespace = yes +test-xfail-XOPEN2K8/pthread.h/linknamespace = yes +test-xfail-XOPEN2K8/pwd.h/linknamespace = yes +test-xfail-XOPEN2K8/regex.h/linknamespace = yes +test-xfail-XOPEN2K8/search.h/linknamespace = yes +test-xfail-XOPEN2K8/semaphore.h/linknamespace = yes +test-xfail-XOPEN2K8/spawn.h/linknamespace = yes +test-xfail-XOPEN2K8/sys/mman.h/linknamespace = yes +test-xfail-XOPEN2K8/sys/statvfs.h/linknamespace = yes +test-xfail-XOPEN2K8/syslog.h/linknamespace = yes +test-xfail-XOPEN2K8/tgmath.h/linknamespace = yes +test-xfail-XOPEN2K8/time.h/linknamespace = yes +test-xfail-XOPEN2K8/unistd.h/linknamespace = yes |