From 0c7c6d531f8514aaee236ab1388ed88c1c31a630 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 22 Dec 2005 05:18:34 +0000 Subject: * sysdeps/unix/sysv/linux/i386/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/i386/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/s390/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/x86_64/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/i386/Makefile [$(subdir) = stdlib]: (gen-as-const-headers): Add it. * sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise. * sysdeps/unix/sysv/linux/sh/Makefile: Likewise. * sysdeps/unix/sysv/linux/s390/Makefile: Likewise. * sysdeps/unix/sysv/linux/x86_64/Makefile: Likewise. * stdlib/tst-ucontext-off.c: File removed. * stdlib/Makefile (tests): Remove it. * scripts/gen-as-const.awk: Support generating a test program. * Makerules [gen-as-const-headers] (tests): Add test-as-const. [gen-as-const-headers] ($(objpfx)test-as-const.c): New target. --- scripts/gen-as-const.awk | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'scripts') diff --git a/scripts/gen-as-const.awk b/scripts/gen-as-const.awk index a315066422..c529fa42c8 100644 --- a/scripts/gen-as-const.awk +++ b/scripts/gen-as-const.awk @@ -13,7 +13,17 @@ BEGIN { started = 0 } /^#/ { print; next } NF >= 1 && !started { - print "void dummy(void) {"; + if (test) { + print "\n#include "; + print "\nstatic int do_test (void)\n{\n int bad = 0, good = 0;\n"; + print "#define TEST(name, source, expr) \\\n" \ + " if (asconst_##name != (expr)) { ++bad;" \ + " fprintf (stderr, \"%s: %s is %ld but %s is %ld\\n\"," \ + " source, #name, (long int) asconst_##name, #expr, (long int) (expr));" \ + " } else ++good;\n"; + } + else + print "void dummy(void) {"; started = 1; } @@ -25,8 +35,18 @@ NF == 1 { sub(/^.*$/, "& &"); } NF > 1 { name = $1; sub(/^[^ ]+[ ]+/, ""); - printf "asm (\"@@@name@@@%s@@@value@@@%%0@@@end@@@\" : : \"i\" (%s));\n", - name, $0; + if (test) + print " TEST (" name ", \"" FILENAME ":" FNR "\", " $0 ")"; + else + printf "asm (\"@@@name@@@%s@@@value@@@%%0@@@end@@@\" : : \"i\" (%s));\n", + name, $0; } -END { if (started) print "}" } +END { + if (test) { + print " printf (\"%d errors in %d tests\\n\", bad, good + bad);" + print " return bad != 0 || good == 0;\n}\n"; + print "#define TEST_FUNCTION do_test ()"; + } + else if (started) print "}"; +} -- cgit v1.2.1