[PATCH v1.1] Deprecate malloc_(sg)et state.
Ondřej Bílka
neleai@seznam.cz
Mon Mar 24 09:27:00 GMT 2014
On Fri, Mar 14, 2014 at 10:05:41AM -0700, Roland McGrath wrote:
> If you want to remove a test case, remove it, rather than just commenting
> it out. But we need to keep this test case to ensure we don't have ABI
> regressions. That will require some new generalized plumbing for how we
> build linkobj/libc.so.
As I want to move forward with this patch I deleted this testcase and
when plumbing will be available I will restore it from git history. Is
that ok?
* malloc/malloc.c: Make malloc_get_state and malloc_set_state
compatibility symbols.
* malloc/tst-mallocstate.c: Remove.
---
malloc/malloc.c | 7 +++++
malloc/tst-mallocstate.c | 81 ------------------------------------------------
2 files changed, 7 insertions(+), 81 deletions(-)
delete mode 100644 malloc/tst-mallocstate.c
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 9a45707..36d94e2 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -5180,6 +5180,13 @@ weak_alias (__malloc_trim, malloc_trim)
weak_alias (__malloc_get_state, malloc_get_state)
weak_alias (__malloc_set_state, malloc_set_state)
+#include <shlib-compat.h>
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_20)
+
+compat_symbol (libc, malloc_get_state, malloc_get_state, GLIBC_2_0);
+compat_symbol (libc, malloc_set_state, malloc_set_state, GLIBC_2_0);
+
+#endif
/* ------------------------------------------------------------
History:
diff --git a/malloc/tst-mallocstate.c b/malloc/tst-mallocstate.c
deleted file mode 100644
index 69c4500..0000000
--- a/malloc/tst-mallocstate.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2001-2014 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Wolfram Gloger <wg@malloc.de>, 2001.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include "malloc.h"
-
-static int errors = 0;
-
-static void
-merror (const char *msg)
-{
- ++errors;
- printf ("Error: %s\n", msg);
-}
-
-int
-main (void)
-{
- void *p1, *p2;
- void *save_state;
- long i;
-
- errno = 0;
-
- p1 = malloc (10);
- if (p1 == NULL)
- merror ("malloc (10) failed.");
-
- p2 = malloc (20);
- if (p2 == NULL)
- merror ("malloc (20) failed.");
-
- free (malloc (10));
-
- for (i = 0; i < 100; ++i)
- {
- save_state = malloc_get_state ();
- if (save_state == NULL)
- {
- merror ("malloc_get_state () failed.");
- break;
- }
- /*free (malloc (10)); This could change the top chunk! */
- malloc_set_state (save_state);
- p1 = realloc (p1, i * 4 + 4);
- if (p1 == NULL)
- merror ("realloc (i*4) failed.");
- free (save_state);
- }
-
- p1 = realloc (p1, 40);
- free (p2);
- p2 = malloc (10);
- if (p2 == NULL)
- merror ("malloc (10) failed.");
- free (p1);
-
- return errors != 0;
-}
-
-/*
- * Local variables:
- * c-basic-offset: 2
- * End:
- */
--
1.8.4.rc3
More information about the Libc-alpha
mailing list