mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-10 08:44:39 +01:00
Bump to the next stable branch with the May 2025 update. Add a patch to compensate for gnulib-tool being further split up into independent shell and python implementations by using a non-hidden version of the main.py file. Add a patch for the python implementation of gnulib-tool in order to ignore the required version of autoconf in configure.ac being lower than the required version of autoconf for gnulib if the version that is being run exceeds the required version for both, and adjust existing autoconf version shell script patch to new filename. Backport a patch for a change in function naming convention for forward compatibility with tool releases after this stable branch. Added: - 020-python-version.patch - 021-python-main.patch - 500-acl-function-name.patch Manually Adjusted: - 010-autoconf-version.patch - 160-flag-reallocarray.patch Existing patches are automatically refreshed. Signed-off-by: Michael Pratt <mcpratt@pm.me> Link: https://github.com/openwrt/openwrt/pull/16522 Signed-off-by: Robert Marko <robimarko@gmail.com>
193 lines
6.6 KiB
Diff
193 lines
6.6 KiB
Diff
--- a/lib/search.in.h
|
|
+++ b/lib/search.in.h
|
|
@@ -112,6 +112,11 @@ _GL_CXXALIASWARN (lsearch);
|
|
# define twalk rpl_twalk
|
|
# endif
|
|
# endif
|
|
+# if @REPLACE_TDESTROY@
|
|
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
|
+# define tdestroy rpl_tdestroy
|
|
+# endif
|
|
+# endif
|
|
|
|
/* See <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/search.h.html>
|
|
<https://pubs.opengroup.org/onlinepubs/9699919799/functions/tsearch.html>
|
|
@@ -137,6 +142,7 @@ extern "C" {
|
|
# if !GNULIB_defined_search_fn_types
|
|
typedef int (*_gl_search_compar_fn) (const void *, const void *);
|
|
typedef void (*_gl_search_action_fn) (const void *, VISIT, int);
|
|
+typedef void (*_gl_search_free_fn) (void *);
|
|
# define GNULIB_defined_search_fn_types 1
|
|
# endif
|
|
# ifdef __cplusplus
|
|
@@ -252,9 +258,36 @@ _GL_CXXALIAS_SYS (twalk, void,
|
|
_GL_CXXALIASWARN (twalk);
|
|
# endif
|
|
|
|
+/* Removes the whole tree pointed to by root,
|
|
+ freeing all resources allocated by the tsearch() function.
|
|
+ The FREE_NODE function is called:
|
|
+ - For the data in each tree node.
|
|
+ - Even when no such work is necessary, to a function doing nothing
|
|
+ The arguments passed to FREE_NODE are:
|
|
+ 1. The pointer to the data. */
|
|
+# if @REPLACE_TDESTROY@
|
|
+_GL_FUNCDECL_RPL (tdestroy, void,
|
|
+ (void *vroot, _gl_search_free_fn freefct)
|
|
+ _GL_ARG_NONNULL ((2)));
|
|
+_GL_CXXALIAS_RPL (tdestroy, void,
|
|
+ (void *vroot, _gl_search_free_fn freefct));
|
|
+# else
|
|
+# if !@HAVE_TDESTROY@
|
|
+_GL_FUNCDECL_SYS (tdestroy, void,
|
|
+ (void *vroot, _gl_search_free_fn freefct)
|
|
+ _GL_ARG_NONNULL ((2)));
|
|
+# endif
|
|
+_GL_CXXALIAS_SYS (tdestroy, void,
|
|
+ (void *vroot, _gl_search_free_fn freefct));
|
|
+# endif
|
|
+# if __GLIBC__ >= 2
|
|
+_GL_CXXALIASWARN (tdestroy);
|
|
+# endif
|
|
+
|
|
/* Flags used by tsearch.c. */
|
|
# define GNULIB_defined_tsearch (@REPLACE_TSEARCH@ || !@HAVE_TSEARCH@)
|
|
# define GNULIB_defined_twalk (@REPLACE_TWALK@ || !@HAVE_TWALK@)
|
|
+# define GNULIB_defined_tdestroy (@REPLACE_TDESTROY@ || !@HAVE_TDESTROY@)
|
|
|
|
#elif defined GNULIB_POSIXCHECK
|
|
# undef tsearch
|
|
@@ -277,6 +310,11 @@ _GL_WARN_ON_USE (tdelete, "tdelete is un
|
|
_GL_WARN_ON_USE (twalk, "twalk is unportable - "
|
|
"use gnulib module tsearch for portability");
|
|
# endif
|
|
+# undef tdestroy
|
|
+# if HAVE_RAW_DECL_TDESTROY
|
|
+_GL_WARN_ON_USE (tdestroy, "tdestroy is unportable - "
|
|
+ "use gnulib module tsearch for portability");
|
|
+# endif
|
|
#endif
|
|
|
|
|
|
--- a/lib/tsearch.c
|
|
+++ b/lib/tsearch.c
|
|
@@ -98,12 +98,14 @@
|
|
|
|
typedef int (*__compar_fn_t) (const void *, const void *);
|
|
typedef void (*__action_fn_t) (const void *, VISIT, int);
|
|
+typedef void (*__free_fn_t) (void *);
|
|
|
|
#ifndef weak_alias
|
|
# define __tsearch tsearch
|
|
# define __tfind tfind
|
|
# define __tdelete tdelete
|
|
# define __twalk twalk
|
|
+# define __tdestroy tdestroy
|
|
#endif
|
|
|
|
#ifndef internal_function
|
|
@@ -656,7 +658,7 @@ weak_alias (__twalk, twalk)
|
|
#endif /* GNULIB_defined_twalk */
|
|
|
|
|
|
-#ifdef _LIBC
|
|
+#if defined(_LIBC) || GNULIB_defined_tdestroy
|
|
|
|
/* The standardized functions miss an important functionality: the
|
|
tree cannot be removed easily. We provide a function to do this. */
|
|
@@ -683,6 +685,8 @@ __tdestroy (void *vroot, __free_fn_t fre
|
|
if (root != NULL)
|
|
tdestroy_recurse (root, freefct);
|
|
}
|
|
+#ifdef weak_alias
|
|
weak_alias (__tdestroy, tdestroy)
|
|
+#endif
|
|
|
|
-#endif /* _LIBC */
|
|
+#endif /* defined(_LIBC) || GNULIB_defined_tdestroy */
|
|
--- a/m4/search_h.m4
|
|
+++ b/m4/search_h.m4
|
|
@@ -40,7 +40,7 @@ AC_DEFUN_ONCE([gl_SEARCH_H],
|
|
dnl Check for declarations of anything we want to poison if the
|
|
dnl corresponding gnulib module is not in use.
|
|
gl_WARN_ON_USE_PREPARE([[#include <search.h>
|
|
- ]], [tdelete tfind tsearch twalk])
|
|
+ ]], [tdelete tfind tsearch twalk tdestroy])
|
|
|
|
AC_REQUIRE([AC_C_RESTRICT])
|
|
])
|
|
@@ -76,8 +76,10 @@ AC_DEFUN([gl_SEARCH_H_DEFAULTS],
|
|
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LFIND], [1])
|
|
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEARCH], [1])
|
|
dnl Assume proper GNU behavior unless another module says otherwise.
|
|
- HAVE_TSEARCH=1; AC_SUBST([HAVE_TSEARCH])
|
|
- HAVE_TWALK=1; AC_SUBST([HAVE_TWALK])
|
|
- REPLACE_TSEARCH=0; AC_SUBST([REPLACE_TSEARCH])
|
|
- REPLACE_TWALK=0; AC_SUBST([REPLACE_TWALK])
|
|
+ HAVE_TSEARCH=1; AC_SUBST([HAVE_TSEARCH])
|
|
+ HAVE_TWALK=1; AC_SUBST([HAVE_TWALK])
|
|
+ HAVE_TDESTROY=1; AC_SUBST([HAVE_TDESTROY])
|
|
+ REPLACE_TSEARCH=0; AC_SUBST([REPLACE_TSEARCH])
|
|
+ REPLACE_TWALK=0; AC_SUBST([REPLACE_TWALK])
|
|
+ REPLACE_TDESTROY=0; AC_SUBST([REPLACE_TDESTROY])
|
|
])
|
|
--- a/m4/tsearch.m4
|
|
+++ b/m4/tsearch.m4
|
|
@@ -10,6 +10,7 @@ AC_DEFUN([gl_FUNC_TSEARCH],
|
|
AC_REQUIRE([gl_SEARCH_H_DEFAULTS])
|
|
gl_CHECK_FUNCS_ANDROID([tsearch], [[#include <search.h>]])
|
|
gl_CHECK_FUNCS_ANDROID([twalk], [[#include <search.h>]])
|
|
+ gl_CHECK_FUNCS_ANDROID([tdestroy], [[#include <search.h>]])
|
|
if test $ac_cv_func_tsearch = yes; then
|
|
dnl On OpenBSD 4.0, the return value of tdelete() is incorrect.
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
@@ -51,6 +52,7 @@ main ()
|
|
*no)
|
|
REPLACE_TSEARCH=1
|
|
REPLACE_TWALK=1
|
|
+ REPLACE_TDESTROY=1
|
|
;;
|
|
esac
|
|
else
|
|
@@ -65,6 +67,12 @@ main ()
|
|
future*) REPLACE_TWALK=1 ;;
|
|
esac
|
|
fi
|
|
+ if test $ac_cv_func_tdestroy != yes; then
|
|
+ HAVE_TDESTROY=0
|
|
+ case "$gl_cv_onwards_func_tdestroy" in
|
|
+ future*) REPLACE_TDESTROY=1 ;;
|
|
+ esac
|
|
+ fi
|
|
])
|
|
|
|
# Prerequisites of lib/tsearch.c.
|
|
--- a/modules/search
|
|
+++ b/modules/search
|
|
@@ -37,8 +37,10 @@ search.h: search.in.h $(top_builddir)/co
|
|
-e 's/@''GNULIB_MDA_LSEARCH''@/$(GNULIB_MDA_LSEARCH)/g' \
|
|
-e 's|@''HAVE_TSEARCH''@|$(HAVE_TSEARCH)|g' \
|
|
-e 's|@''HAVE_TWALK''@|$(HAVE_TWALK)|g' \
|
|
+ -e 's|@''HAVE_TDESTROY''@|$(HAVE_TDESTROY)|g' \
|
|
-e 's|@''REPLACE_TSEARCH''@|$(REPLACE_TSEARCH)|g' \
|
|
-e 's|@''REPLACE_TWALK''@|$(REPLACE_TWALK)|g' \
|
|
+ -e 's|@''REPLACE_TDESTROY''@|$(REPLACE_TDESTROY)|g' \
|
|
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
|
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
|
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
|
|
--- a/modules/tsearch
|
|
+++ b/modules/tsearch
|
|
@@ -11,7 +11,12 @@ search
|
|
configure.ac:
|
|
gl_FUNC_TSEARCH
|
|
gl_CONDITIONAL([GL_COND_OBJ_TSEARCH],
|
|
- [test $HAVE_TSEARCH = 0 || test $HAVE_TWALK = 0 || test $REPLACE_TSEARCH = 1 || test $REPLACE_TWALK = 1])
|
|
+ [test $HAVE_TSEARCH = 0 ||
|
|
+ test $HAVE_TWALK = 0 ||
|
|
+ test $HAVE_TDESTROY = 0 ||
|
|
+ test $REPLACE_TSEARCH = 1 ||
|
|
+ test $REPLACE_TWALK = 1 ||
|
|
+ test $REPLACE_TDESTROY = 1])
|
|
AM_COND_IF([GL_COND_OBJ_TSEARCH], [
|
|
gl_PREREQ_TSEARCH
|
|
])
|