mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-08 17:22:05 +03:00
realloc-gnu: Replace module with an alias to realloc-posix.
* tests/test-realloc-posix.c: Renamed from tests/test-realloc-gnu.c. Add more tests, not yet activated. * modules/realloc-posix-tests: Renamed from modules/realloc-gnu-tests. Test test-realloc-posix instead of test-realloc-gnu. * modules/realloc-gnu: Mark as a deprecated alias of 'realloc-posix'. * lib/stdlib.in.h (realloc): Ignore GNULIB_REALLOC_GNU. * modules/stdlib (Makefile.am): Don't substitute GNULIB_REALLOC_GNU, REPLACE_REALLOC_FOR_REALLOC_GNU. * m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Don't initialize GNULIB_REALLOC_GNU. (gl_STDLIB_H_DEFAULTS): Don't initialize REPLACE_REALLOC_FOR_REALLOC_GNU. * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Remove macro. * m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Update comment. * doc/posix-functions/realloc.texi: Remove description of module 'realloc-gnu'. * MODULES.html.sh (Memory management functions <stdlib.h>): Remove realloc-gnu. Add realloc-posix.
This commit is contained in:
22
ChangeLog
22
ChangeLog
@@ -1,3 +1,25 @@
|
|||||||
|
2024-10-27 Bruno Haible <bruno@clisp.org>
|
||||||
|
|
||||||
|
realloc-gnu: Replace module with an alias to realloc-posix.
|
||||||
|
* tests/test-realloc-posix.c: Renamed from tests/test-realloc-gnu.c. Add
|
||||||
|
more tests, not yet activated.
|
||||||
|
* modules/realloc-posix-tests: Renamed from modules/realloc-gnu-tests.
|
||||||
|
Test test-realloc-posix instead of test-realloc-gnu.
|
||||||
|
* modules/realloc-gnu: Mark as a deprecated alias of 'realloc-posix'.
|
||||||
|
* lib/stdlib.in.h (realloc): Ignore GNULIB_REALLOC_GNU.
|
||||||
|
* modules/stdlib (Makefile.am): Don't substitute GNULIB_REALLOC_GNU,
|
||||||
|
REPLACE_REALLOC_FOR_REALLOC_GNU.
|
||||||
|
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Don't initialize
|
||||||
|
GNULIB_REALLOC_GNU.
|
||||||
|
(gl_STDLIB_H_DEFAULTS): Don't initialize
|
||||||
|
REPLACE_REALLOC_FOR_REALLOC_GNU.
|
||||||
|
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Remove macro.
|
||||||
|
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Update comment.
|
||||||
|
* doc/posix-functions/realloc.texi: Remove description of module
|
||||||
|
'realloc-gnu'.
|
||||||
|
* MODULES.html.sh (Memory management functions <stdlib.h>): Remove
|
||||||
|
realloc-gnu. Add realloc-posix.
|
||||||
|
|
||||||
2024-10-27 Bruno Haible <bruno@clisp.org>
|
2024-10-27 Bruno Haible <bruno@clisp.org>
|
||||||
|
|
||||||
doc: Add a module index.
|
doc: Add a module index.
|
||||||
|
@@ -1738,7 +1738,7 @@ func_all_modules ()
|
|||||||
func_module free-posix
|
func_module free-posix
|
||||||
func_module malloc-gnu
|
func_module malloc-gnu
|
||||||
func_module memalign
|
func_module memalign
|
||||||
func_module realloc-gnu
|
func_module realloc-posix
|
||||||
func_module reallocarray
|
func_module reallocarray
|
||||||
func_module pagealign_alloc
|
func_module pagealign_alloc
|
||||||
func_end_table
|
func_end_table
|
||||||
|
@@ -99,20 +99,3 @@ even though POSIX.1-2024 requires this:
|
|||||||
glibc 2.1.1--2.40, most likely glibc 2.41+ at least by default,
|
glibc 2.1.1--2.40, most likely glibc 2.41+ at least by default,
|
||||||
Android, mingw, MSVC.
|
Android, mingw, MSVC.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@mindex realloc-gnu
|
|
||||||
Extension: Gnulib provides a module @samp{realloc-gnu} that substitutes a
|
|
||||||
@code{realloc} implementation that behaves more like the current
|
|
||||||
glibc implementation.
|
|
||||||
It fixes these portability problems:
|
|
||||||
|
|
||||||
@itemize
|
|
||||||
@item
|
|
||||||
@code{realloc (NULL, 0)} returns @code{NULL} on success on some platforms:
|
|
||||||
AIX 7.3.
|
|
||||||
|
|
||||||
@item
|
|
||||||
On some platforms, @code{realloc (p, 0)} with non-null @code{p}
|
|
||||||
might not free @code{p}, or might clobber @code{errno},
|
|
||||||
or might not return @code{NULL}.
|
|
||||||
@end itemize
|
|
||||||
|
@@ -1454,8 +1454,7 @@ _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
|
|||||||
|
|
||||||
|
|
||||||
#if @GNULIB_REALLOC_POSIX@
|
#if @GNULIB_REALLOC_POSIX@
|
||||||
# if (@GNULIB_REALLOC_POSIX@ && @REPLACE_REALLOC_FOR_REALLOC_POSIX@) \
|
# if (@GNULIB_REALLOC_POSIX@ && @REPLACE_REALLOC_FOR_REALLOC_POSIX@)
|
||||||
|| (@GNULIB_REALLOC_GNU@ && @REPLACE_REALLOC_FOR_REALLOC_GNU@)
|
|
||||||
# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
|
# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
|
||||||
|| _GL_USE_STDLIB_ALLOC)
|
|| _GL_USE_STDLIB_ALLOC)
|
||||||
# undef realloc
|
# undef realloc
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# malloc.m4
|
# malloc.m4
|
||||||
# serial 34
|
# serial 35
|
||||||
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
|
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
|
||||||
dnl This file is free software; the Free Software Foundation
|
dnl This file is free software; the Free Software Foundation
|
||||||
dnl gives unlimited permission to copy and/or distribute it,
|
dnl gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -134,7 +134,7 @@ AC_DEFUN([gl_CHECK_MALLOC_POSIX],
|
|||||||
dnl some systems go to their knees when you do that. So assume that
|
dnl some systems go to their knees when you do that. So assume that
|
||||||
dnl all Unix implementations of the function set errno on failure,
|
dnl all Unix implementations of the function set errno on failure,
|
||||||
dnl except on those platforms where we have seen 'test-malloc-gnu',
|
dnl except on those platforms where we have seen 'test-malloc-gnu',
|
||||||
dnl 'test-realloc-gnu', 'test-calloc-gnu' fail.
|
dnl 'test-realloc-posix', 'test-calloc-gnu' fail.
|
||||||
case "$host_os" in
|
case "$host_os" in
|
||||||
mingw* | windows*)
|
mingw* | windows*)
|
||||||
gl_cv_func_malloc_posix=no ;;
|
gl_cv_func_malloc_posix=no ;;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# realloc.m4
|
# realloc.m4
|
||||||
# serial 33
|
# serial 34
|
||||||
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
|
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
|
||||||
dnl This file is free software; the Free Software Foundation
|
dnl This file is free software; the Free Software Foundation
|
||||||
dnl gives unlimited permission to copy and/or distribute it,
|
dnl gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -51,25 +51,6 @@ AC_DEFUN([_AC_FUNC_REALLOC_IF],
|
|||||||
AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2])
|
AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2])
|
||||||
])# AC_FUNC_REALLOC
|
])# AC_FUNC_REALLOC
|
||||||
|
|
||||||
# gl_FUNC_REALLOC_GNU
|
|
||||||
# -------------------
|
|
||||||
# Replace realloc if it is not compatible with GNU libc.
|
|
||||||
AC_DEFUN([gl_FUNC_REALLOC_GNU],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
|
||||||
AC_REQUIRE([gl_FUNC_REALLOC_POSIX])
|
|
||||||
|
|
||||||
dnl Through the dependency on module extensions-aix, _LINUX_SOURCE_COMPAT
|
|
||||||
dnl gets defined already before this macro gets invoked. This helps
|
|
||||||
dnl if !(__VEC__ || __AIXVEC), and doesn't hurt otherwise.
|
|
||||||
|
|
||||||
AC_REQUIRE([gl_FUNC_REALLOC_SANITIZED])
|
|
||||||
if test "$gl_cv_func_realloc_sanitize" = no \
|
|
||||||
&& test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then
|
|
||||||
_AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC_FOR_REALLOC_GNU=1])
|
|
||||||
fi
|
|
||||||
])# gl_FUNC_REALLOC_GNU
|
|
||||||
|
|
||||||
# gl_FUNC_REALLOC_POSIX
|
# gl_FUNC_REALLOC_POSIX
|
||||||
# ---------------------
|
# ---------------------
|
||||||
# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it
|
# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# stdlib_h.m4
|
# stdlib_h.m4
|
||||||
# serial 81
|
# serial 82
|
||||||
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
|
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
|
||||||
dnl This file is free software; the Free Software Foundation
|
dnl This file is free software; the Free Software Foundation
|
||||||
dnl gives unlimited permission to copy and/or distribute it,
|
dnl gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -141,7 +141,6 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
|
|||||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM])
|
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM])
|
||||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R])
|
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R])
|
||||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY])
|
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY])
|
||||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_GNU])
|
|
||||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX])
|
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX])
|
||||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH])
|
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH])
|
||||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH])
|
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH])
|
||||||
@@ -248,7 +247,6 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
|
|||||||
REPLACE_RAND=0; AC_SUBST([REPLACE_RAND])
|
REPLACE_RAND=0; AC_SUBST([REPLACE_RAND])
|
||||||
REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM])
|
REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM])
|
||||||
REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
|
REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
|
||||||
REPLACE_REALLOC_FOR_REALLOC_GNU=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_GNU])
|
|
||||||
REPLACE_REALLOC_FOR_REALLOC_POSIX=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX])
|
REPLACE_REALLOC_FOR_REALLOC_POSIX=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX])
|
||||||
REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY])
|
REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY])
|
||||||
REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
|
REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
|
||||||
|
@@ -1,22 +1,18 @@
|
|||||||
Description:
|
Description:
|
||||||
realloc() function that is glibc compatible.
|
realloc() function that is glibc compatible.
|
||||||
|
|
||||||
|
Status:
|
||||||
|
deprecated
|
||||||
|
|
||||||
|
Notice:
|
||||||
|
This module is deprecated. Use the module 'filename' instead.
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
lib/realloc.c
|
|
||||||
|
|
||||||
Depends-on:
|
Depends-on:
|
||||||
realloc-posix
|
realloc-posix
|
||||||
extensions-aix
|
|
||||||
free-posix [test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1]
|
|
||||||
malloc-gnu [test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1]
|
|
||||||
xalloc-oversized [test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1]
|
|
||||||
|
|
||||||
configure.ac:
|
configure.ac:
|
||||||
gl_FUNC_REALLOC_GNU
|
|
||||||
if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then
|
|
||||||
AC_LIBOBJ([realloc])
|
|
||||||
fi
|
|
||||||
gl_STDLIB_MODULE_INDICATOR([realloc-gnu])
|
|
||||||
|
|
||||||
Makefile.am:
|
Makefile.am:
|
||||||
|
|
||||||
@@ -27,4 +23,4 @@ License:
|
|||||||
LGPLv2+
|
LGPLv2+
|
||||||
|
|
||||||
Maintainer:
|
Maintainer:
|
||||||
Jim Meyering
|
all
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
Files:
|
|
||||||
tests/test-realloc-gnu.c
|
|
||||||
tests/macros.h
|
|
||||||
|
|
||||||
Depends-on:
|
|
||||||
stdint
|
|
||||||
|
|
||||||
configure.ac:
|
|
||||||
|
|
||||||
Makefile.am:
|
|
||||||
TESTS += test-realloc-gnu
|
|
||||||
check_PROGRAMS += test-realloc-gnu
|
|
12
modules/realloc-posix-tests
Normal file
12
modules/realloc-posix-tests
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Files:
|
||||||
|
tests/test-realloc-posix.c
|
||||||
|
tests/macros.h
|
||||||
|
|
||||||
|
Depends-on:
|
||||||
|
stdint
|
||||||
|
|
||||||
|
configure.ac:
|
||||||
|
|
||||||
|
Makefile.am:
|
||||||
|
TESTS += test-realloc-posix
|
||||||
|
check_PROGRAMS += test-realloc-posix
|
@@ -66,7 +66,6 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
|
|||||||
-e 's/@''GNULIB_RAND''@/$(GNULIB_RAND)/g' \
|
-e 's/@''GNULIB_RAND''@/$(GNULIB_RAND)/g' \
|
||||||
-e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
|
-e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
|
||||||
-e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
|
-e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
|
||||||
-e 's/@''GNULIB_REALLOC_GNU''@/$(GNULIB_REALLOC_GNU)/g' \
|
|
||||||
-e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
|
-e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
|
||||||
-e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \
|
-e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \
|
||||||
-e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
|
-e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
|
||||||
@@ -168,7 +167,6 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
|
|||||||
-e 's|@''REPLACE_RAND''@|$(REPLACE_RAND)|g' \
|
-e 's|@''REPLACE_RAND''@|$(REPLACE_RAND)|g' \
|
||||||
-e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \
|
-e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \
|
||||||
-e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
|
-e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
|
||||||
-e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \
|
|
||||||
-e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \
|
-e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \
|
||||||
-e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \
|
-e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \
|
||||||
-e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
|
-e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
|
||||||
|
@@ -27,9 +27,25 @@
|
|||||||
int
|
int
|
||||||
main (int argc, _GL_UNUSED char **argv)
|
main (int argc, _GL_UNUSED char **argv)
|
||||||
{
|
{
|
||||||
|
void *volatile p;
|
||||||
|
|
||||||
/* Check that realloc (NULL, 0) is not a NULL pointer. */
|
/* Check that realloc (NULL, 0) is not a NULL pointer. */
|
||||||
void *volatile p = realloc (NULL, 0);
|
p = realloc (NULL, 0);
|
||||||
ASSERT (p != NULL);
|
ASSERT (p != NULL);
|
||||||
|
#ifdef NOT_YET
|
||||||
|
free (p);
|
||||||
|
|
||||||
|
/* Check that realloc (p, 0) for non-NULL p is not a NULL pointer. */
|
||||||
|
p = malloc (200);
|
||||||
|
p = realloc (p, 0);
|
||||||
|
ASSERT (p != NULL);
|
||||||
|
free (p);
|
||||||
|
|
||||||
|
/* Check that realloc (p, 0) for non-NULL p is not a NULL pointer. */
|
||||||
|
p = malloc (2 * 1024 * 1024);
|
||||||
|
p = realloc (p, 0);
|
||||||
|
ASSERT (p != NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Check that realloc (p, n) fails when p is non-null and n exceeds
|
/* Check that realloc (p, n) fails when p is non-null and n exceeds
|
||||||
PTRDIFF_MAX. */
|
PTRDIFF_MAX. */
|
Reference in New Issue
Block a user