diff --git a/glibc.changes b/glibc.changes index f5034dc..52f8d53 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jun 26 07:41:20 UTC 2019 - Andreas Schwab + +- malloc-tests-warnings.patch: Fix warnings in malloc tests with GCC 9 + ------------------------------------------------------------------- Tue Jun 25 07:30:13 UTC 2019 - Martin Liška diff --git a/glibc.spec b/glibc.spec index bf7b90a..ad8805f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -299,6 +299,8 @@ Patch1013: pldd-inf-loop.patch Patch1014: malloc-large-bin-corruption-check.patch # PATCH-FIX-UPSTREAM Fix crash in _IO_wfile_sync (BZ #20568) Patch1015: wfile-sync-crash.patch +# PATCH-FIX-UPSTREAM malloc: Fix warnings in tests with GCC 9 +Patch1016: malloc-tests-warnings.patch ### # Patches awaiting upstream approval @@ -524,6 +526,7 @@ makedb: A program to create a database for nss %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 +%patch1016 -p1 %patch2000 -p1 %patch2004 -p1 diff --git a/malloc-tests-warnings.patch b/malloc-tests-warnings.patch new file mode 100644 index 0000000..d4c506e --- /dev/null +++ b/malloc-tests-warnings.patch @@ -0,0 +1,123 @@ +2019-04-18 Adhemerval Zanella + + * malloc/tst-memalign.c (do_test): Disable + -Walloc-size-larger-than= around tests of malloc with negative + sizes. + * malloc/tst-malloc-too-large.c (do_test): Likewise. + +Index: glibc-2.29/malloc/tst-malloc-too-large.c +=================================================================== +--- glibc-2.29.orig/malloc/tst-malloc-too-large.c ++++ glibc-2.29/malloc/tst-malloc-too-large.c +@@ -72,13 +72,28 @@ test_large_allocations (size_t size) + void * ptr_to_realloc; + + test_setup (); ++ DIAG_PUSH_NEEDS_COMMENT; ++#if __GNUC_PREREQ (7, 0) ++ /* GCC 7 warns about too-large allocations; here we want to test ++ that they fail. */ ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif + TEST_VERIFY (malloc (size) == NULL); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_POP_NEEDS_COMMENT; ++#endif + TEST_VERIFY (errno == ENOMEM); + + ptr_to_realloc = malloc (16); + TEST_VERIFY_EXIT (ptr_to_realloc != NULL); + test_setup (); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif + TEST_VERIFY (realloc (ptr_to_realloc, size) == NULL); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_POP_NEEDS_COMMENT; ++#endif + TEST_VERIFY (errno == ENOMEM); + free (ptr_to_realloc); + +@@ -135,7 +150,13 @@ test_large_aligned_allocations (size_t s + for (align = 1; align <= pagesize; align *= 2) + { + test_setup (); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif + TEST_VERIFY (memalign (align, size) == NULL); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_POP_NEEDS_COMMENT; ++#endif + TEST_VERIFY (errno == ENOMEM); + + /* posix_memalign expects an alignment that is a power of 2 *and* a +@@ -151,7 +172,13 @@ test_large_aligned_allocations (size_t s + if ((size % align) == 0) + { + test_setup (); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif + TEST_VERIFY (aligned_alloc (align, size) == NULL); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_POP_NEEDS_COMMENT; ++#endif + TEST_VERIFY (errno == ENOMEM); + } + } +@@ -159,11 +186,23 @@ test_large_aligned_allocations (size_t s + /* Both valloc and pvalloc return page-aligned memory. */ + + test_setup (); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif + TEST_VERIFY (valloc (size) == NULL); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_POP_NEEDS_COMMENT; ++#endif + TEST_VERIFY (errno == ENOMEM); + + test_setup (); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif + TEST_VERIFY (pvalloc (size) == NULL); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_POP_NEEDS_COMMENT; ++#endif + TEST_VERIFY (errno == ENOMEM); + } + +Index: glibc-2.29/malloc/tst-memalign.c +=================================================================== +--- glibc-2.29.orig/malloc/tst-memalign.c ++++ glibc-2.29/malloc/tst-memalign.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + static int errors = 0; + +@@ -41,9 +42,18 @@ do_test (void) + + errno = 0; + ++ DIAG_PUSH_NEEDS_COMMENT; ++#if __GNUC_PREREQ (7, 0) ++ /* GCC 7 warns about too-large allocations; here we want to test ++ that they fail. */ ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif + /* An attempt to allocate a huge value should return NULL and set + errno to ENOMEM. */ + p = memalign (sizeof (void *), -1); ++#if __GNUC_PREREQ (7, 0) ++ DIAG_POP_NEEDS_COMMENT; ++#endif + + save = errno; +