[PATCH 1/8] newlib: internalize HAVE_INITFINI_ARRAY
Mike Frysinger
vapier@gentoo.org
Tue Jan 18 04:47:34 GMT 2022
This define is only used by newlib internally, so stop exporting it
as HAVE_INITFINI_ARRAY since this can conflict with defines packages
use themselves.
We don't really need to add _ to HAVE_INIT_FINI too since it isn't
exported in newlib.h, but might as well be consistent here.
We can't (easily) add this to newlib_cflags like HAVE_INIT_FINI is
because this is based on a compile-time test in the top configure,
not on plain shell code in configure.host. We'd have to replicate
the test in every subdir in order to have it passed down.
---
newlib/configure | 2 +-
newlib/configure.ac | 2 +-
newlib/configure.host | 2 +-
newlib/libc/misc/fini.c | 6 +++---
newlib/libc/misc/init.c | 6 +++---
newlib/libc/stdlib/__call_atexit.c | 2 +-
newlib/libc/sys/arm/crt0.S | 2 +-
newlib/newlib.hin | 2 +-
8 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/newlib/configure.ac b/newlib/configure.ac
index 6d89c3a328fe..4dbed8e029ac 100644
--- a/newlib/configure.ac
+++ b/newlib/configure.ac
@@ -650,7 +650,7 @@ fi
rm -f conftest*])
AC_SUBST(libc_cv_initfinit_array)
if test $libc_cv_initfinit_array = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INITFINI_ARRAY)
+ AC_DEFINE_UNQUOTED(_HAVE_INITFINI_ARRAY)
fi
AC_CACHE_CHECK(if $CC accepts -fno-tree-loop-distribute-patterns with \
diff --git a/newlib/configure.host b/newlib/configure.host
index c429dde1c3d1..ca6b46f03e09 100644
--- a/newlib/configure.host
+++ b/newlib/configure.host
@@ -992,7 +992,7 @@ fi
# Have init/finit if not explicitly specified otherwise
if [ "x${have_init_fini}" != "xno" ]; then
- newlib_cflags="${newlib_cflags} -DHAVE_INIT_FINI"
+ newlib_cflags="${newlib_cflags} -D_HAVE_INIT_FINI"
fi
if test -z "${have_crt0}" && test -n "${sys_dir}"; then
diff --git a/newlib/libc/misc/fini.c b/newlib/libc/misc/fini.c
index 56eed6cb3b7f..5f2016070615 100644
--- a/newlib/libc/misc/fini.c
+++ b/newlib/libc/misc/fini.c
@@ -13,11 +13,11 @@
/* Handle ELF .{pre_init,init,fini}_array sections. */
#include <sys/types.h>
-#ifdef HAVE_INITFINI_ARRAY
+#ifdef _HAVE_INITFINI_ARRAY
extern void (*__fini_array_start []) (void) __attribute__((weak));
extern void (*__fini_array_end []) (void) __attribute__((weak));
-#ifdef HAVE_INIT_FINI
+#ifdef _HAVE_INIT_FINI
extern void _fini (void);
#endif
@@ -32,7 +32,7 @@ __libc_fini_array (void)
for (i = count; i > 0; i--)
__fini_array_start[i-1] ();
-#ifdef HAVE_INIT_FINI
+#ifdef _HAVE_INIT_FINI
_fini ();
#endif
}
diff --git a/newlib/libc/misc/init.c b/newlib/libc/misc/init.c
index 95f1a742292a..3aef7ad069da 100644
--- a/newlib/libc/misc/init.c
+++ b/newlib/libc/misc/init.c
@@ -13,7 +13,7 @@
/* Handle ELF .{pre_init,init,fini}_array sections. */
#include <sys/types.h>
-#ifdef HAVE_INITFINI_ARRAY
+#ifdef _HAVE_INITFINI_ARRAY
/* These magic symbols are provided by the linker. */
extern void (*__preinit_array_start []) (void) __attribute__((weak));
@@ -21,7 +21,7 @@ extern void (*__preinit_array_end []) (void) __attribute__((weak));
extern void (*__init_array_start []) (void) __attribute__((weak));
extern void (*__init_array_end []) (void) __attribute__((weak));
-#ifdef HAVE_INIT_FINI
+#ifdef _HAVE_INIT_FINI
extern void _init (void);
#endif
@@ -36,7 +36,7 @@ __libc_init_array (void)
for (i = 0; i < count; i++)
__preinit_array_start[i] ();
-#ifdef HAVE_INIT_FINI
+#ifdef _HAVE_INIT_FINI
_init ();
#endif
diff --git a/newlib/libc/stdlib/__call_atexit.c b/newlib/libc/stdlib/__call_atexit.c
index 3eec11214c1f..c29a03c8eee1 100644
--- a/newlib/libc/stdlib/__call_atexit.c
+++ b/newlib/libc/stdlib/__call_atexit.c
@@ -49,7 +49,7 @@ static void
register_fini(void)
{
if (&__libc_fini) {
-#ifdef HAVE_INITFINI_ARRAY
+#ifdef _HAVE_INITFINI_ARRAY
extern void __libc_fini_array (void);
atexit (__libc_fini_array);
#else
diff --git a/newlib/libc/sys/arm/crt0.S b/newlib/libc/sys/arm/crt0.S
index 5e677a23cfe2..6b01d8a88b77 100644
--- a/newlib/libc/sys/arm/crt0.S
+++ b/newlib/libc/sys/arm/crt0.S
@@ -12,7 +12,7 @@
#error __USER_LABEL_PREFIX is not defined
#endif
-#ifdef HAVE_INITFINI_ARRAY
+#ifdef _HAVE_INITFINI_ARRAY
#define _init __libc_init_array
#define _fini __libc_fini_array
#endif
diff --git a/newlib/newlib.hin b/newlib/newlib.hin
index a0999512cc4f..37ed88e9784c 100644
--- a/newlib/newlib.hin
+++ b/newlib/newlib.hin
@@ -49,7 +49,7 @@
/* Define if the linker supports .preinit_array/.init_array/.fini_array
* sections. */
-#undef HAVE_INITFINI_ARRAY
+#undef _HAVE_INITFINI_ARRAY
/* True if atexit() may dynamically allocate space for cleanup
functions. */
--
2.33.0
More information about the Newlib
mailing list