From 88659d3bb86ec86f600207371168ff0cca611bd0 Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Tue, 4 Nov 2014 20:31:37 +0100 Subject: [PATCH] Add patch to modify several tests to use test-skeleton.c. --- glibc-fedora-use-test-skeleton.patch | 2706 ++++++++++++++++++++++++++ glibc.spec | 11 +- 2 files changed, 2716 insertions(+), 1 deletion(-) create mode 100644 glibc-fedora-use-test-skeleton.patch diff --git a/glibc-fedora-use-test-skeleton.patch b/glibc-fedora-use-test-skeleton.patch new file mode 100644 index 0000000..ce21e8d --- /dev/null +++ b/glibc-fedora-use-test-skeleton.patch @@ -0,0 +1,2706 @@ +diff --git a/catgets/test-gencat.c b/catgets/test-gencat.c +index eaa9b89..282974c 100644 +--- a/catgets/test-gencat.c ++++ b/catgets/test-gencat.c +@@ -3,8 +3,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + nl_catd catalog; + setlocale (LC_ALL, ""); +@@ -29,3 +29,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/catgets/tst-catgets.c b/catgets/tst-catgets.c +index fdaa834..a0a4089 100644 +--- a/catgets/tst-catgets.c ++++ b/catgets/tst-catgets.c +@@ -14,8 +14,8 @@ static const char *msgs[] = + + #define ROUNDS 5 + +-int +-main (void) ++static int ++do_test (void) + { + int rnd; + int result = 0; +@@ -64,3 +64,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/csu/tst-empty.c b/csu/tst-empty.c +index 980dcd6..e99468e 100644 +--- a/csu/tst-empty.c ++++ b/csu/tst-empty.c +@@ -1,6 +1,9 @@ + /* The most useful C program known to man. */ +-int +-main (void) ++static int ++do_test (void) + { + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-audit2.c b/elf/tst-audit2.c +index b4fa906..acad1b0 100644 +--- a/elf/tst-audit2.c ++++ b/elf/tst-audit2.c +@@ -31,8 +31,8 @@ calloc (size_t n, size_t m) + return ptr; + } + +-int +-main (void) ++static int ++do_test (void) + { + if (magic[1] != MAGIC1 || magic[0] != MAGIC2) + { +@@ -42,3 +42,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-global1.c b/elf/tst-global1.c +index 1611b51..4df335c 100644 +--- a/elf/tst-global1.c ++++ b/elf/tst-global1.c +@@ -1,8 +1,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + void *h1 = dlopen ("$ORIGIN/testobj6.so", RTLD_GLOBAL|RTLD_LAZY); + if (h1 == NULL) +@@ -34,3 +34,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-pathopt.c b/elf/tst-pathopt.c +index 1f7aac2..8d73ad4 100644 +--- a/elf/tst-pathopt.c ++++ b/elf/tst-pathopt.c +@@ -4,8 +4,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + void *h; + int (*fp) (int); +@@ -37,3 +37,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-piemod1.c b/elf/tst-piemod1.c +index ad439da..6e98b5f 100644 +--- a/elf/tst-piemod1.c ++++ b/elf/tst-piemod1.c +@@ -6,8 +6,8 @@ foo (void) + return 21; + } + +-int +-main (void) ++static int ++do_test (void) + { + int val = foo (); + if (val != 34) +@@ -18,3 +18,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-tls10.c b/elf/tst-tls10.c +index 347243f..eb1ecb9 100644 +--- a/elf/tst-tls10.c ++++ b/elf/tst-tls10.c +@@ -8,8 +8,8 @@ __thread struct A local = { 1, 2, 3 }; + if (p->a != S || p->b != S + 1 || p->c != S + 2) \ + abort () + +-int +-main (void) ++static int ++do_test (void) + { + struct A *p; + if (local.a != 1 || local.b != 2 || local.c != 3) +@@ -35,3 +35,6 @@ main (void) + + exit (0); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-tls11.c b/elf/tst-tls11.c +index 8a2fef4..8ceac14 100644 +--- a/elf/tst-tls11.c ++++ b/elf/tst-tls11.c +@@ -5,8 +5,8 @@ + if (p->a != S || p->b != S + 1 || p->c != S + 2) \ + abort () + +-int +-main (void) ++static int ++do_test (void) + { + struct A *p; + check1 (); +@@ -24,3 +24,6 @@ main (void) + + exit (0); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-tls12.c b/elf/tst-tls12.c +index 9086d17..8093894 100644 +--- a/elf/tst-tls12.c ++++ b/elf/tst-tls12.c +@@ -5,8 +5,8 @@ + if (p->a != S || p->b != S + 1 || p->c != S + 2) \ + abort () + +-int +-main (void) ++static int ++do_test (void) + { + struct A *p; + check1 (); +@@ -15,3 +15,6 @@ main (void) + + exit (0); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/gnulib/tst-gcc.c b/gnulib/tst-gcc.c +index 71fab28..9f4ba83 100644 +--- a/gnulib/tst-gcc.c ++++ b/gnulib/tst-gcc.c +@@ -51,8 +51,8 @@ + }) + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + int __integer_type; +@@ -71,3 +71,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/iconv/tst-iconv1.c b/iconv/tst-iconv1.c +index d806ce6..0609f50 100644 +--- a/iconv/tst-iconv1.c ++++ b/iconv/tst-iconv1.c +@@ -5,8 +5,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + char utf8[5]; + wchar_t ucs4[5]; +@@ -42,3 +42,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/iconv/tst-iconv2.c b/iconv/tst-iconv2.c +index 5036ad1..0672a51 100644 +--- a/iconv/tst-iconv2.c ++++ b/iconv/tst-iconv2.c +@@ -25,8 +25,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + char buf[3]; + const wchar_t wc[1] = L"a"; +@@ -97,3 +97,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/iconvdata/tst-e2big.c b/iconvdata/tst-e2big.c +index 9533eb0..8de64b2 100644 +--- a/iconvdata/tst-e2big.c ++++ b/iconvdata/tst-e2big.c +@@ -95,10 +95,13 @@ test_tscii (void) + test ("TSCII", inbuf, sizeof (inbuf), 9); + } + +-int +-main (void) ++static int ++do_test (void) + { + test_euc_jisx0213 (); + test_tscii (); + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/iconvdata/tst-loading.c b/iconvdata/tst-loading.c +index 0d8a959..eff9d78 100644 +--- a/iconvdata/tst-loading.c ++++ b/iconvdata/tst-loading.c +@@ -114,8 +114,8 @@ static const char inbuf[] = + " function. Later modifications of the variable have no effect.\n"; + + +-int +-main (void) ++static int ++do_test (void) + { + size_t count = TEST_ROUNDS; + int result = 0; +@@ -180,3 +180,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/inet/test-inet6_opt.c b/inet/test-inet6_opt.c +index 3bf319e..a7ebf00 100644 +--- a/inet/test-inet6_opt.c ++++ b/inet/test-inet6_opt.c +@@ -194,8 +194,8 @@ decode_inet6_opt (void *eb, socklen_t el) + return ret; + } + +-int +-main (void) ++static int ++do_test (void) + { + void *eb; + socklen_t el; +@@ -206,3 +206,6 @@ main (void) + return 1; + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/inet/tst-gethnm.c b/inet/tst-gethnm.c +index 8af44d6..dd3a547 100644 +--- a/inet/tst-gethnm.c ++++ b/inet/tst-gethnm.c +@@ -10,8 +10,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + struct hostent *ent; + struct in_addr hostaddr; +@@ -62,3 +62,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/inet/tst-network.c b/inet/tst-network.c +index fc90bd7..cc840e0 100644 +--- a/inet/tst-network.c ++++ b/inet/tst-network.c +@@ -51,8 +51,8 @@ struct + }; + + +-int +-main (void) ++static int ++do_test (void) + { + int errors = 0; + size_t i; +@@ -76,3 +76,6 @@ main (void) + + return errors != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/inet/tst-ntoa.c b/inet/tst-ntoa.c +index 9be91eb..ef82d4d 100644 +--- a/inet/tst-ntoa.c ++++ b/inet/tst-ntoa.c +@@ -22,8 +22,8 @@ test (unsigned int inaddr, const char *expected) + } + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -34,3 +34,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/intl/tst-codeset.c b/intl/tst-codeset.c +index f5b37ec..37f731e 100644 +--- a/intl/tst-codeset.c ++++ b/intl/tst-codeset.c +@@ -23,8 +23,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + char *s; + int result = 0; +@@ -55,3 +55,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/intl/tst-gettext2.c b/intl/tst-gettext2.c +index 075680a..3c44165 100644 +--- a/intl/tst-gettext2.c ++++ b/intl/tst-gettext2.c +@@ -40,8 +40,8 @@ struct data_t strings[] = + const int lang_cnt = 3; + const char *lang[] = {"lang1", "lang2", "lang3"}; + +-int +-main (void) ++static int ++do_test (void) + { + int i; + +@@ -70,3 +70,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/intl/tst-gettext3.c b/intl/tst-gettext3.c +index dd88987..11e9b08 100644 +--- a/intl/tst-gettext3.c ++++ b/intl/tst-gettext3.c +@@ -24,8 +24,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + char *s; + int result = 0; +@@ -57,3 +57,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/intl/tst-ngettext.c b/intl/tst-ngettext.c +index 4fb0ca2..71e91b9 100644 +--- a/intl/tst-ngettext.c ++++ b/intl/tst-ngettext.c +@@ -25,8 +25,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + const char *strs[2] = { "singular", "plural" }; + unsigned long int i; +@@ -63,3 +63,6 @@ main (void) + + return res; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/intl/tst-translit.c b/intl/tst-translit.c +index 1aecee7..299fa40 100644 +--- a/intl/tst-translit.c ++++ b/intl/tst-translit.c +@@ -24,8 +24,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + const char *s; +@@ -49,3 +49,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/io/test-stat.c b/io/test-stat.c +index c5cfd26..e9c8468 100644 +--- a/io/test-stat.c ++++ b/io/test-stat.c +@@ -25,8 +25,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + /* With _FILE_OFFSET_BITS=64 struct stat and struct stat64 should + be identical. */ +@@ -65,3 +65,6 @@ main (void) + #endif + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/libio/test-fmemopen.c b/libio/test-fmemopen.c +index 3099894..211176e 100644 +--- a/libio/test-fmemopen.c ++++ b/libio/test-fmemopen.c +@@ -22,8 +22,8 @@ static char buffer[] = "foobar"; + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int ch; + FILE *stream; +@@ -37,3 +37,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/libio/tst-freopen.c b/libio/tst-freopen.c +index f9e7177..94284ec 100644 +--- a/libio/tst-freopen.c ++++ b/libio/tst-freopen.c +@@ -22,8 +22,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + char name[] = "/tmp/tst-freopen.XXXXXX"; + const char * const test = "Let's test freopen.\n"; +@@ -100,3 +100,6 @@ main (void) + unlink (name); + exit (0); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/libio/tst-sscanf.c b/libio/tst-sscanf.c +index b1a2b84..fb4be34 100644 +--- a/libio/tst-sscanf.c ++++ b/libio/tst-sscanf.c +@@ -3,8 +3,8 @@ + + #define WCS_LENGTH 256 + +-int +-main (void) ++static int ++do_test (void) + { + const char cnv[] ="%l[abc]"; + const char str[] = "abbcXab"; +@@ -18,3 +18,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/libio/tst-ungetwc1.c b/libio/tst-ungetwc1.c +index f74c407..f71b390 100644 +--- a/libio/tst-ungetwc1.c ++++ b/libio/tst-ungetwc1.c +@@ -7,8 +7,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + FILE *fp; + const char *str = "abcdef"; +@@ -79,3 +79,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/libio/tst-ungetwc2.c b/libio/tst-ungetwc2.c +index d15e287..a7c5193 100644 +--- a/libio/tst-ungetwc2.c ++++ b/libio/tst-ungetwc2.c +@@ -7,8 +7,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + FILE *fp; + const char *str = "abcdef"; +@@ -79,3 +79,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/libio/tst-widetext.c b/libio/tst-widetext.c +index 179763e..acab72b 100644 +--- a/libio/tst-widetext.c ++++ b/libio/tst-widetext.c +@@ -31,8 +31,8 @@ + #define SIZE 210000 + + +-int +-main (void) ++static int ++do_test (void) + { + char name[] = "/tmp/widetext.out.XXXXXX"; + char mbbuf[SIZE]; +@@ -367,3 +367,6 @@ main (void) + + return status; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-ctype.c b/localedata/tst-ctype.c +index ceda891..a4e8fcf 100644 +--- a/localedata/tst-ctype.c ++++ b/localedata/tst-ctype.c +@@ -61,8 +61,8 @@ static struct classes + } + + +-int +-main (void) ++static int ++do_test (void) + { + const char *cp; + const char *cp2; +@@ -447,3 +447,6 @@ punct = %04x alnum = %04x\n", + printf (" No errors for `%s' locale\n\n\n", setlocale (LC_ALL, NULL)); + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-digits.c b/localedata/tst-digits.c +index 9b3ebcd..76356e9 100644 +--- a/localedata/tst-digits.c ++++ b/localedata/tst-digits.c +@@ -111,8 +111,8 @@ static struct wprintf_int_test + (sizeof (wprintf_int_tests) / sizeof (wprintf_int_tests[0])) + + +-int +-main (void) ++static int ++do_test (void) + { + int cnt; + int failures; +@@ -246,3 +246,6 @@ main (void) + + return status; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-leaks.c b/localedata/tst-leaks.c +index 7a4b557..ccd44f2 100644 +--- a/localedata/tst-leaks.c ++++ b/localedata/tst-leaks.c +@@ -1,8 +1,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int cnt; + +@@ -16,3 +16,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-mbswcs1.c b/localedata/tst-mbswcs1.c +index 14f1372..1404829 100644 +--- a/localedata/tst-mbswcs1.c ++++ b/localedata/tst-mbswcs1.c +@@ -33,8 +33,8 @@ + } \ + putc ('\n', stdout) + +-int +-main (void) ++static int ++do_test (void) + { + const unsigned char buf[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb }; + mbstate_t state; +@@ -60,3 +60,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-mbswcs2.c b/localedata/tst-mbswcs2.c +index 25fa951..9cd95d6 100644 +--- a/localedata/tst-mbswcs2.c ++++ b/localedata/tst-mbswcs2.c +@@ -35,8 +35,8 @@ + } \ + putc ('\n', stdout) + +-int +-main (void) ++static int ++do_test (void) + { + unsigned char buf[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb }; + mbstate_t state; +@@ -62,3 +62,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-mbswcs3.c b/localedata/tst-mbswcs3.c +index 8db65c5..a068541 100644 +--- a/localedata/tst-mbswcs3.c ++++ b/localedata/tst-mbswcs3.c +@@ -38,8 +38,8 @@ + putc ('\n', stdout); \ + } + +-int +-main (void) ++static int ++do_test (void) + { + unsigned char buf[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + const unsigned char bufcheck[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb }; +@@ -73,3 +73,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-mbswcs4.c b/localedata/tst-mbswcs4.c +index 09b7417..a4fe60d 100644 +--- a/localedata/tst-mbswcs4.c ++++ b/localedata/tst-mbswcs4.c +@@ -34,8 +34,8 @@ + } \ + putc ('\n', stdout) + +-int +-main (void) ++static int ++do_test (void) + { + unsigned char buf[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb }; + mbstate_t state; +@@ -60,3 +60,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-mbswcs5.c b/localedata/tst-mbswcs5.c +index e18862c..c44f12a 100644 +--- a/localedata/tst-mbswcs5.c ++++ b/localedata/tst-mbswcs5.c +@@ -37,8 +37,8 @@ + putc ('\n', stdout); \ + } + +-int +-main (void) ++static int ++do_test (void) + { + unsigned char buf[7] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + const unsigned char bufcheck[7] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb, 0 }; +@@ -72,3 +72,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-setlocale.c b/localedata/tst-setlocale.c +index 1f8e68d..a09a4de 100644 +--- a/localedata/tst-setlocale.c ++++ b/localedata/tst-setlocale.c +@@ -3,8 +3,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + char q[30]; + char *s; +@@ -23,3 +23,6 @@ main (void) + + return strcmp (s, "de_DE.UTF-8") != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-trans.c b/localedata/tst-trans.c +index 5e09631..0b0be83 100644 +--- a/localedata/tst-trans.c ++++ b/localedata/tst-trans.c +@@ -24,8 +24,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + char buf[30]; + wchar_t wbuf[30]; +@@ -68,3 +68,6 @@ main (void) + + return errors; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-wctype.c b/localedata/tst-wctype.c +index bd2b057..eb72030 100644 +--- a/localedata/tst-wctype.c ++++ b/localedata/tst-wctype.c +@@ -24,8 +24,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + wctype_t wct; + wchar_t buf[1000]; +@@ -141,3 +141,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/localedata/tst-xlocale1.c b/localedata/tst-xlocale1.c +index 297c9ad..9f545a0 100644 +--- a/localedata/tst-xlocale1.c ++++ b/localedata/tst-xlocale1.c +@@ -20,8 +20,8 @@ static struct + #define ntests (sizeof (tests) / sizeof (tests[0])) + + +-int +-main (void) ++static int ++do_test (void) + { + size_t cnt; + int result = 0; +@@ -73,3 +73,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/login/tst-grantpt.c b/login/tst-grantpt.c +index 5078dac..65bb344 100644 +--- a/login/tst-grantpt.c ++++ b/login/tst-grantpt.c +@@ -66,8 +66,8 @@ test_einval (void) + return ret; + } + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -76,3 +76,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/malloc/tst-calloc.c b/malloc/tst-calloc.c +index 51e6c25..7ad5124 100644 +--- a/malloc/tst-calloc.c ++++ b/malloc/tst-calloc.c +@@ -104,8 +104,8 @@ null_test (void) + } + + +-int +-main (void) ++static int ++do_test (void) + { + /* We are allocating blocks with `calloc' and check whether every + block is completely cleared. We first try this for some fixed +@@ -123,3 +123,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/malloc/tst-malloc.c b/malloc/tst-malloc.c +index a75ab1e..2685315 100644 +--- a/malloc/tst-malloc.c ++++ b/malloc/tst-malloc.c +@@ -29,8 +29,8 @@ merror (const char *msg) + printf ("Error: %s\n", msg); + } + +-int +-main (void) ++static int ++do_test (void) + { + void *p, *q; + int save; +@@ -75,3 +75,6 @@ main (void) + + return errors != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/malloc/tst-mallocstate.c b/malloc/tst-mallocstate.c +index 69c4500..539539e 100644 +--- a/malloc/tst-mallocstate.c ++++ b/malloc/tst-mallocstate.c +@@ -29,8 +29,8 @@ merror (const char *msg) + printf ("Error: %s\n", msg); + } + +-int +-main (void) ++static int ++do_test (void) + { + void *p1, *p2; + void *save_state; +@@ -79,3 +79,6 @@ main (void) + * c-basic-offset: 2 + * End: + */ ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/malloc/tst-mcheck.c b/malloc/tst-mcheck.c +index 478ca8c..bd9ab0e 100644 +--- a/malloc/tst-mcheck.c ++++ b/malloc/tst-mcheck.c +@@ -29,8 +29,8 @@ merror (const char *msg) + printf ("Error: %s\n", msg); + } + +-int +-main (void) ++static int ++do_test (void) + { + void *p, *q; + +@@ -88,3 +88,6 @@ main (void) + + return errors != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/malloc/tst-mtrace.c b/malloc/tst-mtrace.c +index 9b5151c..b2c0c2c 100644 +--- a/malloc/tst-mtrace.c ++++ b/malloc/tst-mtrace.c +@@ -30,8 +30,8 @@ static void print (const void *node, VISIT value, int level); + static FILE *fp; + + +-int +-main (void) ++static int ++do_test (void) + { + void *root = NULL; + size_t linelen = 0; +@@ -100,3 +100,6 @@ print (const void *node, VISIT value, int level) + if (value == postorder || value == leaf) + fprintf (fp, "%3d: %s", ++cnt, *(const char **) node); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/malloc/tst-obstack.c b/malloc/tst-obstack.c +index 769697f..ee1385d 100644 +--- a/malloc/tst-obstack.c ++++ b/malloc/tst-obstack.c +@@ -25,8 +25,8 @@ verbose_free (void *buf) + printf ("free (%p)\n", buf); + } + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + int align = 2; +@@ -62,3 +62,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/math/atest-exp.c b/math/atest-exp.c +index 3a538b2..6a551de 100644 +--- a/math/atest-exp.c ++++ b/math/atest-exp.c +@@ -102,8 +102,8 @@ mpn_bitsize(const mp_limb_t *SRC_PTR, mp_size_t SIZE) + return i * mpbpl + j; + } + +-int +-main (void) ++static int ++do_test (void) + { + mp1 ex, x, xt, e2, e3; + int i; +@@ -190,3 +190,6 @@ main (void) + + return failures == 0 ? 0 : 1; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/math/atest-exp2.c b/math/atest-exp2.c +index 3442715..945bb7a 100644 +--- a/math/atest-exp2.c ++++ b/math/atest-exp2.c +@@ -144,8 +144,8 @@ mpn_bitsize(const mp_limb_t *SRC_PTR, mp_size_t SIZE) + return i * mpbpl + j; + } + +-int +-main (void) ++static int ++do_test (void) + { + mp1 ex, x, xt, e2, e3; + int i; +@@ -227,3 +227,6 @@ main (void) + + return failures == 0 ? 0 : 1; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/math/atest-sincos.c b/math/atest-sincos.c +index 5ad59b2..1f5e730 100644 +--- a/math/atest-sincos.c ++++ b/math/atest-sincos.c +@@ -141,8 +141,8 @@ mpn_bitsize (const mp_limb_t *SRC_PTR, mp_size_t SIZE) + return i * mpbpl + j; + } + +-int +-main (void) ++static int ++do_test (void) + { + mp1 si, co, x, ox, xt, s2, c2, s3, c3; + int i; +@@ -277,3 +277,6 @@ main (void) + + return (sin_failures == 0 && cos_failures == 0) ? 0 : 1; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/math/test-matherr.c b/math/test-matherr.c +index cd09a39..6983879 100644 +--- a/math/test-matherr.c ++++ b/math/test-matherr.c +@@ -12,10 +12,13 @@ matherr (struct exception *s) + return 1; + } + +-int +-main (void) ++static int ++do_test (void) + { + _LIB_VERSION = _SVID_; + acos (2.0); + return fail; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/math/test-misc.c b/math/test-misc.c +index 3fd2bca..4801bfe 100644 +--- a/math/test-misc.c ++++ b/math/test-misc.c +@@ -25,8 +25,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -1201,3 +1201,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/math/test-powl.c b/math/test-powl.c +index fd2a1cb..66ef886 100644 +--- a/math/test-powl.c ++++ b/math/test-powl.c +@@ -21,8 +21,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -48,3 +48,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/math/tst-definitions.c b/math/tst-definitions.c +index 2501c8c..76a4125 100644 +--- a/math/tst-definitions.c ++++ b/math/tst-definitions.c +@@ -21,8 +21,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -44,3 +44,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/misc/tst-dirname.c b/misc/tst-dirname.c +index d8f33df..d6c05ad 100644 +--- a/misc/tst-dirname.c ++++ b/misc/tst-dirname.c +@@ -37,8 +37,8 @@ test (const char *input, const char *result) + return retval; + } + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -67,3 +67,6 @@ main (void) + + return result != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/misc/tst-efgcvt.c b/misc/tst-efgcvt.c +index 303042d..11427a0 100644 +--- a/misc/tst-efgcvt.c ++++ b/misc/tst-efgcvt.c +@@ -200,8 +200,8 @@ special (void) + } + + +-int +-main (void) ++static int ++do_test (void) + { + test (ecvt_tests, ecvt, "ecvt"); + test (fcvt_tests, fcvt, "fcvt"); +@@ -211,3 +211,6 @@ main (void) + + return error_count; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/misc/tst-fdset.c b/misc/tst-fdset.c +index 78a34e9..ef93ac3 100644 +--- a/misc/tst-fdset.c ++++ b/misc/tst-fdset.c +@@ -20,8 +20,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int retval = 0; + int i; +@@ -62,3 +62,6 @@ main (void) + + return retval; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/misc/tst-hsearch.c b/misc/tst-hsearch.c +index 6c19b22..d390f1d 100644 +--- a/misc/tst-hsearch.c ++++ b/misc/tst-hsearch.c +@@ -1,8 +1,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int a = 1; + int b = 2; +@@ -29,3 +29,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/misc/tst-mntent2.c b/misc/tst-mntent2.c +index 6c25e01..e61d506 100644 +--- a/misc/tst-mntent2.c ++++ b/misc/tst-mntent2.c +@@ -3,8 +3,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + struct mntent mef; +@@ -39,3 +39,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/nptl/tst-sem7.c b/nptl/tst-sem7.c +index d0e7f05..4fc5f1f 100644 +--- a/nptl/tst-sem7.c ++++ b/nptl/tst-sem7.c +@@ -31,8 +31,8 @@ remove_sem (int status, void *arg) + } + + +-int +-main (void) ++static int ++do_test (void) + { + sem_t *s; + sem_t *s2; +@@ -106,3 +106,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/nptl/tst-sem8.c b/nptl/tst-sem8.c +index 1aeb1e1..4d7197c 100644 +--- a/nptl/tst-sem8.c ++++ b/nptl/tst-sem8.c +@@ -31,8 +31,8 @@ remove_sem (int status, void *arg) + } + + +-int +-main (void) ++static int ++do_test (void) + { + sem_t *s; + int i; +@@ -71,3 +71,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/nptl/tst-sem9.c b/nptl/tst-sem9.c +index 9727486..b7d81a9 100644 +--- a/nptl/tst-sem9.c ++++ b/nptl/tst-sem9.c +@@ -31,8 +31,8 @@ remove_sem (int status, void *arg) + } + + +-int +-main (void) ++static int ++do_test (void) + { + sem_t *s; + int i; +@@ -78,3 +78,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/nss/test-netdb.c b/nss/test-netdb.c +index 1620b5b..384f32b 100644 +--- a/nss/test-netdb.c ++++ b/nss/test-netdb.c +@@ -356,8 +356,8 @@ setdb (const char *dbname) + } + + +-int +-main (void) ++static int ++do_test (void) + { + /* + setdb ("db"); +@@ -376,3 +376,6 @@ main (void) + + return (error_count != 0); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/posix/tst-fnmatch.c b/posix/tst-fnmatch.c +index ff2674c..021734d 100644 +--- a/posix/tst-fnmatch.c ++++ b/posix/tst-fnmatch.c +@@ -33,8 +33,8 @@ static char *flag_output (int flags); + static char *escape (const char *str, size_t *reslenp, char **resbuf); + + +-int +-main (void) ++static int ++do_test (void) + { + char *linebuf = NULL; + size_t linebuflen = 0; +@@ -388,3 +388,6 @@ escape (const char *str, size_t *reslenp, char **resbufp) + + return resbuf; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/posix/tst-getlogin.c b/posix/tst-getlogin.c +index 1393c3a..141a699 100644 +--- a/posix/tst-getlogin.c ++++ b/posix/tst-getlogin.c +@@ -19,8 +19,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + char *login; + int errors = 0; +@@ -55,3 +55,6 @@ main (void) + + return errors != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/posix/tst-gnuglob.c b/posix/tst-gnuglob.c +index 1c72357..39b5b24 100644 +--- a/posix/tst-gnuglob.c ++++ b/posix/tst-gnuglob.c +@@ -379,8 +379,8 @@ test_result (const char *fmt, int flags, glob_t *gl, const char *str[]) + } + + +-int +-main (void) ++static int ++do_test (void) + { + glob_t gl; + int errval; +@@ -497,3 +497,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/posix/tst-mmap.c b/posix/tst-mmap.c +index c03acf5..5e52b49 100644 +--- a/posix/tst-mmap.c ++++ b/posix/tst-mmap.c +@@ -6,8 +6,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + FILE *fp; +@@ -195,3 +195,6 @@ main (void) + /* That's it. */ + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/pwd/tst-getpw.c b/pwd/tst-getpw.c +index 7875af9..7a2b9a3 100644 +--- a/pwd/tst-getpw.c ++++ b/pwd/tst-getpw.c +@@ -25,8 +25,8 @@ check (uid_t uid) + (void) getpw (uid, buf); + } + +-int +-main (void) ++static int ++do_test (void) + { + uid_t uid; + +@@ -38,3 +38,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/resolv/tst-inet_ntop.c b/resolv/tst-inet_ntop.c +index f968ec4..f0de063 100644 +--- a/resolv/tst-inet_ntop.c ++++ b/resolv/tst-inet_ntop.c +@@ -4,8 +4,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + struct in_addr addr4; + struct in6_addr addr6; +@@ -109,3 +109,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/rt/tst-timer.c b/rt/tst-timer.c +index f35d3e7..87f6491 100644 +--- a/rt/tst-timer.c ++++ b/rt/tst-timer.c +@@ -20,8 +20,8 @@ + + /* This file is only used if there is no other implementation and it should + means that there is no implementation of POSIX timers. */ +-int +-main (void) ++static int ++do_test (void) + { + #ifdef _POSIX_TIMERS + /* There should be a test. */ +@@ -30,3 +30,6 @@ main (void) + return 0; + #endif + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/test-fseek.c b/stdio-common/test-fseek.c +index fe57df6..8a7f1ae 100644 +--- a/stdio-common/test-fseek.c ++++ b/stdio-common/test-fseek.c +@@ -19,8 +19,8 @@ + + #define TESTFILE "/tmp/test.dat" + +-int +-main (void) ++static int ++do_test (void) + { + FILE *fp; + int i, j; +@@ -82,3 +82,6 @@ main (void) + puts ((i > 255) ? "Test succeeded." : "Test FAILED!"); + return (i > 255) ? 0 : 1; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/test-popen.c b/stdio-common/test-popen.c +index d36cd61..1f1c88a 100644 +--- a/stdio-common/test-popen.c ++++ b/stdio-common/test-popen.c +@@ -49,8 +49,8 @@ read_data (FILE *stream) + } + } + +-int +-main (void) ++static int ++do_test (void) + { + FILE *output, *input; + int wstatus, rstatus; +@@ -100,3 +100,6 @@ main (void) + puts (wstatus | rstatus ? "Test FAILED!" : "Test succeeded."); + return (wstatus | rstatus); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/test-vfprintf.c b/stdio-common/test-vfprintf.c +index a936c28..9cc56d7 100644 +--- a/stdio-common/test-vfprintf.c ++++ b/stdio-common/test-vfprintf.c +@@ -36,8 +36,8 @@ const char *locs[] = + + char large[50000]; + +-int +-main (void) ++static int ++do_test (void) + { + char buf[25]; + size_t i; +@@ -124,3 +124,6 @@ main (void) + + return res; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-cookie.c b/stdio-common/tst-cookie.c +index dcdabf3..030e684 100644 +--- a/stdio-common/tst-cookie.c ++++ b/stdio-common/tst-cookie.c +@@ -63,8 +63,8 @@ cookieclose (void *cookie) + } + + +-int +-main (void) ++static int ++do_test (void) + { + cookie_io_functions_t fcts; + char buf[1]; +@@ -90,3 +90,6 @@ main (void) + + return errors != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-fileno.c b/stdio-common/tst-fileno.c +index a0c8853..753df9f 100644 +--- a/stdio-common/tst-fileno.c ++++ b/stdio-common/tst-fileno.c +@@ -28,10 +28,13 @@ check (const char *name, FILE *stream, int fd) + return sfd != fd; + } + +-int +-main (void) ++static int ++do_test (void) + { + return (check ("stdin", stdin, STDIN_FILENO) || + check ("stdout", stdout, STDOUT_FILENO) || + check ("stderr", stderr, STDERR_FILENO)); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-gets.c b/stdio-common/tst-gets.c +index 7f78fc1..052f1f9 100644 +--- a/stdio-common/tst-gets.c ++++ b/stdio-common/tst-gets.c +@@ -21,8 +21,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + char buf[100]; + int result = 0; +@@ -61,3 +61,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-obprintf.c b/stdio-common/tst-obprintf.c +index 39e8fda..5151593 100644 +--- a/stdio-common/tst-obprintf.c ++++ b/stdio-common/tst-obprintf.c +@@ -4,8 +4,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + struct obstack ob; + int n; +@@ -40,3 +40,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-perror.c b/stdio-common/tst-perror.c +index b809c2f..416b120 100644 +--- a/stdio-common/tst-perror.c ++++ b/stdio-common/tst-perror.c +@@ -24,8 +24,8 @@ + #define WC_EXP_LEN (sizeof (WC_EXP) - 1) + + +-int +-main (void) ++static int ++do_test (void) + { + int fd; + char fname[] = "/tmp/tst-perror.XXXXXX"; +@@ -152,3 +152,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-sprintf.c b/stdio-common/tst-sprintf.c +index c4e911f..2fe373f 100644 +--- a/stdio-common/tst-sprintf.c ++++ b/stdio-common/tst-sprintf.c +@@ -4,8 +4,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + char buf[100]; + int result = 0; +@@ -73,3 +73,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-sprintf2.c b/stdio-common/tst-sprintf2.c +index 422278d..0ddf15b 100644 +--- a/stdio-common/tst-sprintf2.c ++++ b/stdio-common/tst-sprintf2.c +@@ -3,8 +3,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + #if LDBL_MANT_DIG >= 106 + volatile union { long double l; long long x[2]; } u, v; +@@ -82,3 +82,6 @@ main (void) + #endif + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-sprintf3.c b/stdio-common/tst-sprintf3.c +index e54b23b..e927761 100644 +--- a/stdio-common/tst-sprintf3.c ++++ b/stdio-common/tst-sprintf3.c +@@ -22,8 +22,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + #if LDBL_MANT_DIG >= 106 + volatile union { long double l; long long x[2]; } u, v; +@@ -88,3 +88,6 @@ main (void) + #endif + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-swprintf.c b/stdio-common/tst-swprintf.c +index e65234b..ce62c6b 100644 +--- a/stdio-common/tst-swprintf.c ++++ b/stdio-common/tst-swprintf.c +@@ -12,8 +12,8 @@ + + const char input[] = "\x8e\xa1g\x8e\xa2h\x8e\xa3i\x8e\xa4j"; + +-int +-main (void) ++static int ++do_test (void) + { + wchar_t buf[1000]; + #define nbuf (sizeof (buf) / sizeof (buf[0])) +@@ -54,3 +54,6 @@ swprintf (.., .., L\"%ls\", \"%ls\") produced \"%ls\", not \"%ls\"\n", \ + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-tmpnam.c b/stdio-common/tst-tmpnam.c +index a3bd9fb..3b97064 100644 +--- a/stdio-common/tst-tmpnam.c ++++ b/stdio-common/tst-tmpnam.c +@@ -19,8 +19,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + const char *name; + int retval = 0; +@@ -48,3 +48,6 @@ main (void) + + return retval; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-unbputc.c b/stdio-common/tst-unbputc.c +index bbd8622..7200a82 100644 +--- a/stdio-common/tst-unbputc.c ++++ b/stdio-common/tst-unbputc.c +@@ -1,11 +1,14 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + putc ('1', stderr); + putc ('2', stderr); + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/tst-wc-printf.c b/stdio-common/tst-wc-printf.c +index abbeeb5..2a2acb5 100644 +--- a/stdio-common/tst-wc-printf.c ++++ b/stdio-common/tst-wc-printf.c +@@ -4,8 +4,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + wchar_t tmp[3]; + tmp[0] = '8'; +@@ -20,3 +20,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-environ.c b/stdlib/tst-environ.c +index 3316d7e..b1de2f9 100644 +--- a/stdlib/tst-environ.c ++++ b/stdlib/tst-environ.c +@@ -25,8 +25,8 @@ + + char putenv_val[100] = VAR "=some longer value"; + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + const char *valp; +@@ -219,3 +219,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-fmtmsg.c b/stdlib/tst-fmtmsg.c +index c3748d6..b7948c5 100644 +--- a/stdlib/tst-fmtmsg.c ++++ b/stdlib/tst-fmtmsg.c +@@ -7,8 +7,8 @@ + + #define MM_TEST 10 + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -80,3 +80,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-limits.c b/stdlib/tst-limits.c +index 265b9db..6e51dca 100644 +--- a/stdlib/tst-limits.c ++++ b/stdlib/tst-limits.c +@@ -16,8 +16,8 @@ bitval (int bits) + } + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -67,3 +67,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-rand48-2.c b/stdlib/tst-rand48-2.c +index 3079b98..8b8fef4 100644 +--- a/stdlib/tst-rand48-2.c ++++ b/stdlib/tst-rand48-2.c +@@ -3,8 +3,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + time_t t = time (NULL); + int i, ret = 0; +@@ -111,3 +111,6 @@ main (void) + + return ret; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-rand48.c b/stdlib/tst-rand48.c +index 52e1b96..973c62e 100644 +--- a/stdlib/tst-rand48.c ++++ b/stdlib/tst-rand48.c +@@ -8,8 +8,8 @@ + #endif + + +-int +-main (void) ++static int ++do_test (void) + { + unsigned short int xs[3] = { 0x0001, 0x0012, 0x0123 }; + unsigned short int lxs[7]; +@@ -388,3 +388,6 @@ drand48() and erand48 in lines %d and %d produce different results\n", + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-random.c b/stdlib/tst-random.c +index 47195d6..8fe0993 100644 +--- a/stdlib/tst-random.c ++++ b/stdlib/tst-random.c +@@ -46,8 +46,8 @@ const unsigned int seed[3] = { 0x12344321U, 0xEE11DD22U, 0xFEDCBA98 }; + + void fail (const char *msg, int s, int i) __attribute__ ((__noreturn__)); + +-int +-main (void) ++static int ++do_test (void) + { + long int rnd[nseq][nrnd]; /* pseudorandom numbers */ + char* state[nseq]; /* state for PRNG */ +@@ -117,3 +117,6 @@ fail (const char *msg, int s, int i) + printf ("%s (seq %d, pos %d).\n", msg, s, i); + exit (1); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-random2.c b/stdlib/tst-random2.c +index 0553b62..da840f3 100644 +--- a/stdlib/tst-random2.c ++++ b/stdlib/tst-random2.c +@@ -20,8 +20,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int pass; + int ret = 0; +@@ -56,3 +56,6 @@ main (void) + } + return ret; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-strtol.c b/stdlib/tst-strtol.c +index eebd8f7..448102a 100644 +--- a/stdlib/tst-strtol.c ++++ b/stdlib/tst-strtol.c +@@ -534,8 +534,8 @@ static const struct ltest tests[] = + /* Prototypes for local functions. */ + static void expand (char *dst, int c); + +-int +-main (void) ++static int ++do_test (void) + { + const struct ltest *lt; + char *ep; +@@ -623,3 +623,6 @@ expand (dst, c) + else + (void) sprintf (dst, "%#.3o", (unsigned int) c); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-strtoll.c b/stdlib/tst-strtoll.c +index 0c77254..93f1a56 100644 +--- a/stdlib/tst-strtoll.c ++++ b/stdlib/tst-strtoll.c +@@ -309,8 +309,8 @@ static const struct ltest tests[] = + /* Prototypes for local functions. */ + static void expand (char *dst, int c); + +-int +-main (void) ++static int ++do_test (void) + { + const struct ltest *lt; + char *ep; +@@ -398,3 +398,6 @@ expand (dst, c) + else + (void) sprintf (dst, "%#.3o", (unsigned int) c); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-tls-atexit.c b/stdlib/tst-tls-atexit.c +index 1ba3fae..c03a3e5 100644 +--- a/stdlib/tst-tls-atexit.c ++++ b/stdlib/tst-tls-atexit.c +@@ -60,8 +60,8 @@ load (void *u) + return NULL; + } + +-int +-main (void) ++static int ++do_test (void) + { + pthread_t t; + int ret; +@@ -109,3 +109,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdlib/tst-xpg-basename.c b/stdlib/tst-xpg-basename.c +index 61e2e4b..facc783 100644 +--- a/stdlib/tst-xpg-basename.c ++++ b/stdlib/tst-xpg-basename.c +@@ -37,8 +37,8 @@ static struct + }; + + +-int +-main (void) ++static int ++do_test (void) + { + size_t i = 0; + int errors = 0; +@@ -64,3 +64,6 @@ main (void) + + return errors; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/string/test-ffs.c b/string/test-ffs.c +index 7ac1dd6..a64a1cc 100644 +--- a/string/test-ffs.c ++++ b/string/test-ffs.c +@@ -21,8 +21,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int failures = 0; + int i; +@@ -61,3 +61,6 @@ main (void) + + return failures; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/string/tst-bswap.c b/string/tst-bswap.c +index cca704c..6c1c911 100644 +--- a/string/tst-bswap.c ++++ b/string/tst-bswap.c +@@ -21,8 +21,8 @@ + + extern unsigned long long int wash (unsigned long long int a); + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -71,3 +71,6 @@ wash (unsigned long long int a) + regards the argument to the bswap_*() functions as constant. */ + return a + 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/string/tst-inlcall.c b/string/tst-inlcall.c +index 32d8863..0f8b1bd 100644 +--- a/string/tst-inlcall.c ++++ b/string/tst-inlcall.c +@@ -31,8 +31,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + int status; + int errors = 0; +@@ -80,3 +80,6 @@ main (void) + } + return status; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/string/tst-strtok.c b/string/tst-strtok.c +index 7e34aee..6fbef9f 100644 +--- a/string/tst-strtok.c ++++ b/string/tst-strtok.c +@@ -2,8 +2,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + char buf[1] = { 0 }; + int result = 0; +@@ -21,3 +21,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/string/tst-strxfrm.c b/string/tst-strxfrm.c +index 2ae2e29..f48cfc0 100644 +--- a/string/tst-strxfrm.c ++++ b/string/tst-strxfrm.c +@@ -58,8 +58,8 @@ test (const char *locale) + } + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -69,3 +69,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/sysdeps/x86_64/tst-audit10.c b/sysdeps/x86_64/tst-audit10.c +index 24c9696..8d6721a 100644 +--- a/sysdeps/x86_64/tst-audit10.c ++++ b/sysdeps/x86_64/tst-audit10.c +@@ -45,8 +45,8 @@ avx512_enabled (void) + + extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i, + __m512i, __m512i, __m512i, __m512i); +-int +-main (void) ++static int ++do_test (void) + { + /* Run AVX512 test only if AVX512 is supported. */ + if (avx512_enabled ()) +@@ -62,9 +62,12 @@ main (void) + return 0; + } + #else +-int +-main (void) ++static int ++do_test (void) + { + return 0; + } + #endif ++ ++#define TEST_FUNCTION do_test () ++#include "../../test-skeleton.c" +diff --git a/sysdeps/x86_64/tst-audit3.c b/sysdeps/x86_64/tst-audit3.c +index d00db99..0602aa2 100644 +--- a/sysdeps/x86_64/tst-audit3.c ++++ b/sysdeps/x86_64/tst-audit3.c +@@ -7,8 +7,8 @@ + + extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i, + __m128i, __m128i, __m128i, __m128i); +-int +-main (void) ++static int ++do_test (void) + { + __m128i xmm = _mm_setzero_si128 (); + __m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm); +@@ -18,3 +18,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../../test-skeleton.c" +diff --git a/sysdeps/x86_64/tst-audit4.c b/sysdeps/x86_64/tst-audit4.c +index c4f1d5b..44d5123 100644 +--- a/sysdeps/x86_64/tst-audit4.c ++++ b/sysdeps/x86_64/tst-audit4.c +@@ -25,8 +25,8 @@ avx_enabled (void) + + extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i, + __m256i, __m256i, __m256i, __m256i); +-int +-main (void) ++static int ++do_test (void) + { + /* Run AVX test only if AVX is supported. */ + if (avx_enabled ()) +@@ -41,9 +41,12 @@ main (void) + return 0; + } + #else +-int +-main (void) ++static int ++do_test (void) + { + return 0; + } + #endif ++ ++#define TEST_FUNCTION do_test () ++#include "../../test-skeleton.c" +diff --git a/sysdeps/x86_64/tst-audit5.c b/sysdeps/x86_64/tst-audit5.c +index 0094fee..225b4c8 100644 +--- a/sysdeps/x86_64/tst-audit5.c ++++ b/sysdeps/x86_64/tst-audit5.c +@@ -7,8 +7,8 @@ + + extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i, + __m128i, __m128i, __m128i, __m128i); +-int +-main (void) ++static int ++do_test (void) + { + __m128i xmm = _mm_setzero_si128 (); + __m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm); +@@ -19,3 +19,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../../test-skeleton.c" +diff --git a/time/tst-ftime_l.c b/time/tst-ftime_l.c +index fc3d78d..6690efe 100644 +--- a/time/tst-ftime_l.c ++++ b/time/tst-ftime_l.c +@@ -6,8 +6,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + locale_t l; + locale_t old; +@@ -124,3 +124,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/time/tst-getdate.c b/time/tst-getdate.c +index fd87923..b3377ee 100644 +--- a/time/tst-getdate.c ++++ b/time/tst-getdate.c +@@ -76,8 +76,8 @@ report_date_error (int err) + } + + +-int +-main (void) ++static int ++do_test (void) + { + int errors = 0; + size_t i; +@@ -121,3 +121,6 @@ main (void) + printf ("No errors found.\n"); + return errors != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/time/tst-mktime.c b/time/tst-mktime.c +index 416a856..c147360 100644 +--- a/time/tst-mktime.c ++++ b/time/tst-mktime.c +@@ -3,8 +3,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + struct tm time_str, *tm; + time_t t; +@@ -68,3 +68,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/time/tst-mktime3.c b/time/tst-mktime3.c +index 60d0e0b..c738e53 100644 +--- a/time/tst-mktime3.c ++++ b/time/tst-mktime3.c +@@ -17,8 +17,8 @@ struct tm expected[] = + { .tm_sec = 5, .tm_mday = 1, .tm_year = 102, .tm_wday = 2 } + }; + +-int +-main (void) ++static int ++do_test (void) + { + setenv ("TZ", "UTC", 1); + int i; +@@ -48,3 +48,6 @@ main (void) + } + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/time/tst-posixtz.c b/time/tst-posixtz.c +index 019d92a..c1ea267 100644 +--- a/time/tst-posixtz.c ++++ b/time/tst-posixtz.c +@@ -28,8 +28,8 @@ struct + "1999/02/25 15:18:12 dst=0 zone=EST" }, + }; + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + size_t cnt; +@@ -116,3 +116,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/time/tst-strptime2.c b/time/tst-strptime2.c +index 73552bb..bcd6cc8 100644 +--- a/time/tst-strptime2.c ++++ b/time/tst-strptime2.c +@@ -26,8 +26,8 @@ static const struct + #define ntests (sizeof (tests) / sizeof (tests[0])) + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -57,3 +57,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/time/tst-strptime3.c b/time/tst-strptime3.c +index 9a8c648..75b57c1 100644 +--- a/time/tst-strptime3.c ++++ b/time/tst-strptime3.c +@@ -4,8 +4,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + struct tm tm; +@@ -53,3 +53,6 @@ main (void) + + return 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/wcsmbs/tst-btowc.c b/wcsmbs/tst-btowc.c +index d793622..dc34f2b 100644 +--- a/wcsmbs/tst-btowc.c ++++ b/wcsmbs/tst-btowc.c +@@ -74,8 +74,8 @@ eof_test (void) + + + /* Test the btowc() function for a few locales with known character sets. */ +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -172,3 +172,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/wcsmbs/tst-mbrtowc.c b/wcsmbs/tst-mbrtowc.c +index 3e1eb72..a30b619 100644 +--- a/wcsmbs/tst-mbrtowc.c ++++ b/wcsmbs/tst-mbrtowc.c +@@ -151,8 +151,8 @@ utf8_test (void) + } + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -230,3 +230,6 @@ check_ascii (const char *locname) + + return res != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/wcsmbs/tst-mbsrtowcs.c b/wcsmbs/tst-mbsrtowcs.c +index 8d7e2cb..405534d 100644 +--- a/wcsmbs/tst-mbsrtowcs.c ++++ b/wcsmbs/tst-mbsrtowcs.c +@@ -21,8 +21,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + const unsigned char buf[] = { 'a', 'b', '\0', 'c', 'd', '\0', 'e' }; + wchar_t out[sizeof (buf)]; +@@ -62,3 +62,6 @@ main (void) + } + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/wcsmbs/tst-wchar-h.c b/wcsmbs/tst-wchar-h.c +index 4cf2dd0..fd2ad56 100644 +--- a/wcsmbs/tst-wchar-h.c ++++ b/wcsmbs/tst-wchar-h.c +@@ -1,9 +1,12 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + mbstate_t x; + return sizeof (x) - sizeof (mbstate_t); + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/wcsmbs/tst-wcpncpy.c b/wcsmbs/tst-wcpncpy.c +index 74765e7..4cf4aec 100644 +--- a/wcsmbs/tst-wcpncpy.c ++++ b/wcsmbs/tst-wcpncpy.c +@@ -20,8 +20,8 @@ + #include + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -74,3 +74,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/wcsmbs/tst-wcrtomb.c b/wcsmbs/tst-wcrtomb.c +index 3f052f3..cad343e 100644 +--- a/wcsmbs/tst-wcrtomb.c ++++ b/wcsmbs/tst-wcrtomb.c +@@ -26,8 +26,8 @@ + static int check_ascii (const char *locname); + + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + +@@ -92,3 +92,6 @@ check_ascii (const char *locname) + + return res != 0; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/wcsmbs/tst-wcsnlen.c b/wcsmbs/tst-wcsnlen.c +index 60e64ad..8d4b8b5 100644 +--- a/wcsmbs/tst-wcsnlen.c ++++ b/wcsmbs/tst-wcsnlen.c +@@ -27,8 +27,8 @@ + printf ("wcsnlen (L\"%s\", %d) = %d, not %d\n", Str, Max, n, Exp); \ + } + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + int n; +@@ -48,3 +48,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/wcsmbs/tst-wcstof.c b/wcsmbs/tst-wcstof.c +index 197cb5c..576a58c 100644 +--- a/wcsmbs/tst-wcstof.c ++++ b/wcsmbs/tst-wcstof.c +@@ -4,8 +4,8 @@ + #include + #include + +-int +-main (void) ++static int ++do_test (void) + { + int result = 0; + char buf[100]; +@@ -21,3 +21,6 @@ main (void) + + return result; + } ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/glibc.spec b/glibc.spec index e6f5f00..32eec5c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ %define glibcsrcdir glibc-2.20-53-g754a15c %define glibcversion 2.20.90 -%define glibcrelease 6%{?dist} +%define glibcrelease 7%{?dist} # Pre-release tarballs are pulled in from git using a command that is # effectively: # @@ -234,6 +234,9 @@ Patch2031: %{name}-rh1070416.patch Patch2033: %{name}-aarch64-tls-fixes.patch Patch2034: %{name}-aarch64-workaround-nzcv-clobber-in-tlsdesc.patch +# https://sourceware.org/ml/libc-alpha/2014-10/msg00744.html +Patch2035: %{name}-fedora-use-test-skeleton.patch + ############################################################################## # End of glibc patches. ############################################################################## @@ -567,6 +570,7 @@ package or when debugging this package. %patch2034 -p1 %patch0050 -p1 %patch0052 -p1 +%patch2035 -p1 ############################################################################## # %%prep - Additional prep required... @@ -1720,6 +1724,11 @@ rm -f *.filelist* %endif %changelog +* Tue Nov 04 2014 Arjun Shankar - 2.20.90-7 +- Add patch that modifies several tests to use test-skeleton.c. + The patch is accepted but not yet committed upstream. + https://sourceware.org/ml/libc-alpha/2014-10/msg00744.html + * Tue Sep 30 2014 Siddhesh Poyarekar - 2.20.90-6 - Sync with upstream master. - Disable more Intel TSX usage in rwlocks (#1146967).