Accepting request 712158 from home:Andreas_Schwab:Factory

- malloc-tests-warnings.patch: Fix warnings in malloc tests with GCC 9

OBS-URL: https://build.opensuse.org/request/show/712158
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=532
This commit is contained in:
Andreas Schwab 2019-06-26 15:17:28 +00:00 committed by Git OBS Bridge
parent e6a16310f4
commit 3a6133b4ec
3 changed files with 131 additions and 0 deletions

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Wed Jun 26 07:41:20 UTC 2019 - Andreas Schwab <schwab@suse.de>
- malloc-tests-warnings.patch: Fix warnings in malloc tests with GCC 9
-------------------------------------------------------------------
Tue Jun 25 07:30:13 UTC 2019 - Martin Liška <mliska@suse.cz>

View File

@ -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

123
malloc-tests-warnings.patch Normal file
View File

@ -0,0 +1,123 @@
2019-04-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* 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 <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <libc-diag.h>
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;