diff options
-rw-r--r-- | bfd/ChangeLog | 8 | ||||
-rw-r--r-- | bfd/config.in | 3 | ||||
-rwxr-xr-x | bfd/configure | 22 | ||||
-rw-r--r-- | bfd/configure.ac | 13 | ||||
-rw-r--r-- | bfd/elf-bfd.h | 8 | ||||
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/config.in | 3 | ||||
-rwxr-xr-x | binutils/configure | 22 | ||||
-rw-r--r-- | binutils/configure.ac | 13 | ||||
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/config.in | 3 | ||||
-rwxr-xr-x | ld/configure | 22 | ||||
-rw-r--r-- | ld/configure.ac | 13 | ||||
-rw-r--r-- | opcodes/ChangeLog | 6 | ||||
-rw-r--r-- | opcodes/config.in | 3 | ||||
-rwxr-xr-x | opcodes/configure | 22 | ||||
-rw-r--r-- | opcodes/configure.ac | 13 |
17 files changed, 178 insertions, 8 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 84f16fc..fa7e649 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,13 @@ 2021-04-12 Alan Modra <amodra@gmail.com> + * elf-bfd.h (ENABLE_CHECKING): Define. + (elf_link_hash_lookup): Abort if wrong type of hash table. + * configure.ac (--enable-checking): Add support. + * config.in: Regenerate. + * configure: Regenerate. + +2021-04-12 Alan Modra <amodra@gmail.com> + * elf-bfd.h (is_elf_hash_table): Convert macro to inline function. (elf_link_hash_lookup, elf_link_hash_traverse): Likewise. (elf_hash_table, elf_hash_table_id): Likewise. diff --git a/bfd/config.in b/bfd/config.in index ba5ce68..6d46ea7 100644 --- a/bfd/config.in +++ b/bfd/config.in @@ -14,6 +14,9 @@ default. */ #undef DEFAULT_LD_Z_SEPARATE_CODE +/* Define if you want run-time sanity checks. */ +#undef ENABLE_CHECKING + /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS diff --git a/bfd/configure b/bfd/configure index adddec1..d98e330 100755 --- a/bfd/configure +++ b/bfd/configure @@ -826,6 +826,7 @@ with_gnu_ld enable_libtool_lock enable_plugins enable_largefile +enable_checking enable_64_bit_bfd enable_targets enable_64_bit_archive @@ -1484,6 +1485,7 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --enable-plugins Enable support for plugins --disable-largefile omit support for large files + --enable-checking enable run-time checks --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) --enable-targets alternative target configurations --enable-64-bit-archive force 64-bit archives @@ -11042,7 +11044,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11045 "configure" +#line 11047 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11148,7 +11150,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11151 "configure" +#line 11153 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11788,6 +11790,22 @@ else fi +ac_checking= +. ${srcdir}/development.sh +test "$development" = true && ac_checking=yes +# Check whether --enable-checking was given. +if test "${enable_checking+set}" = set; then : + enableval=$enable_checking; case "${enableval}" in + no|none) ac_checking= ;; + *) ac_checking=yes ;; +esac +fi +if test x$ac_checking != x ; then + +$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h + +fi + # Check whether --enable-64-bit-bfd was given. if test "${enable_64_bit_bfd+set}" = set; then : enableval=$enable_64_bit_bfd; case "${enableval}" in diff --git a/bfd/configure.ac b/bfd/configure.ac index c016fd0..07a75ed 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -69,6 +69,19 @@ esac AM_CONDITIONAL(PLUGINS, test "$plugins" = "yes") +ac_checking= +. ${srcdir}/development.sh +test "$development" = true && ac_checking=yes +AC_ARG_ENABLE(checking, +[ --enable-checking enable run-time checks], +[case "${enableval}" in + no|none) ac_checking= ;; + *) ac_checking=yes ;; +esac])dnl +if test x$ac_checking != x ; then + AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.]) +fi + AC_ARG_ENABLE(64-bit-bfd, [ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)], [case "${enableval}" in diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index e0b7e57..5a2f642 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -27,6 +27,10 @@ #include "elf/internal.h" #include "bfdlink.h" +#ifndef ENABLE_CHECKING +#define ENABLE_CHECKING 0 +#endif + #ifdef __cplusplus extern "C" { #endif @@ -721,6 +725,8 @@ static inline struct elf_link_hash_entry * elf_link_hash_lookup (struct elf_link_hash_table *table, const char *string, bool create, bool copy, bool follow) { + if (ENABLE_CHECKING && !is_elf_hash_table (&table->root)) + abort (); return (struct elf_link_hash_entry *) bfd_link_hash_lookup (&table->root, string, create, copy, follow); } @@ -732,6 +738,8 @@ elf_link_hash_traverse (struct elf_link_hash_table *table, bool (*f) (struct elf_link_hash_entry *, void *), void *info) { + if (ENABLE_CHECKING && !is_elf_hash_table (&table->root)) + abort (); bfd_link_hash_traverse (&table->root, (bool (*) (struct bfd_link_hash_entry *, void *)) f, info); diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 9e88373..1dbb038 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2021-04-12 Alan Modra <amodra@gmail.com> + + * configure.ac (--enable-checking): Add support. + * config.in: Regenerate. + * configure: Regenerate. + 2021-04-09 Alan Modra <amodra@gmail.com> * objdump.c (struct objdump_disasm_info): Delete dynrelbuf and diff --git a/binutils/config.in b/binutils/config.in index 78b8a51..cc6aad1 100644 --- a/binutils/config.in +++ b/binutils/config.in @@ -19,6 +19,9 @@ /* Should strings use -a behavior by default? */ #undef DEFAULT_STRINGS_ALL +/* Define if you want run-time sanity checks. */ +#undef ENABLE_CHECKING + /* Handle .ctf type-info sections */ #undef ENABLE_LIBCTF diff --git a/binutils/configure b/binutils/configure index 9958379..938ef48 100755 --- a/binutils/configure +++ b/binutils/configure @@ -817,6 +817,7 @@ with_gnu_ld enable_libtool_lock enable_plugins enable_largefile +enable_checking enable_targets enable_deterministic_archives enable_default_strings_all @@ -1481,6 +1482,7 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --enable-plugins Enable support for plugins --disable-largefile omit support for large files + --enable-checking enable run-time checks --enable-targets alternative target configurations --enable-deterministic-archives ar and ranlib default to -D behavior @@ -10872,7 +10874,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10875 "configure" +#line 10877 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10978,7 +10980,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10981 "configure" +#line 10983 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11583,6 +11585,22 @@ fi +ac_checking= +. ${srcdir}/../bfd/development.sh +test "$development" = true && ac_checking=yes +# Check whether --enable-checking was given. +if test "${enable_checking+set}" = set; then : + enableval=$enable_checking; case "${enableval}" in + no|none) ac_checking= ;; + *) ac_checking=yes ;; +esac +fi +if test x$ac_checking != x ; then + +$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h + +fi + # Check whether --enable-targets was given. if test "${enable_targets+set}" = set; then : enableval=$enable_targets; case "${enableval}" in diff --git a/binutils/configure.ac b/binutils/configure.ac index ad6d2aa..2553b80 100644 --- a/binutils/configure.ac +++ b/binutils/configure.ac @@ -33,6 +33,19 @@ AC_USE_SYSTEM_EXTENSIONS LT_INIT ACX_LARGEFILE +ac_checking= +. ${srcdir}/../bfd/development.sh +test "$development" = true && ac_checking=yes +AC_ARG_ENABLE(checking, +[ --enable-checking enable run-time checks], +[case "${enableval}" in + no|none) ac_checking= ;; + *) ac_checking=yes ;; +esac])dnl +if test x$ac_checking != x ; then + AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.]) +fi + AC_ARG_ENABLE(targets, [ --enable-targets alternative target configurations], [case "${enableval}" in diff --git a/ld/ChangeLog b/ld/ChangeLog index 244f286..c862e8b 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,11 @@ 2021-04-12 Alan Modra <amodra@gmail.com> + * configure.ac (--enable-checking): Add support. + * config.in: Regenerate. + * configure: Regenerate. + +2021-04-12 Alan Modra <amodra@gmail.com> + * emultempl/mipself.em (mips_create_output_section_statements): Pass base type of hash table to is_elf_hash_table. * ldelf.c (ldelf_after_open): Likewise. diff --git a/ld/config.in b/ld/config.in index 1e78b00..26d55a0 100644 --- a/ld/config.in +++ b/ld/config.in @@ -33,6 +33,9 @@ */ #undef DEFAULT_NEW_DTAGS +/* Define if you want run-time sanity checks. */ +#undef ENABLE_CHECKING + /* Handle .ctf type-info sections */ #undef ENABLE_LIBCTF diff --git a/ld/configure b/ld/configure index d46fcef..d8f8b2d 100755 --- a/ld/configure +++ b/ld/configure @@ -824,6 +824,7 @@ with_gnu_ld enable_libtool_lock enable_plugins enable_largefile +enable_checking with_lib_path enable_targets enable_64_bit_bfd @@ -1494,6 +1495,7 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --enable-plugins Enable support for plugins --disable-largefile omit support for large files + --enable-checking enable run-time checks --enable-targets alternative target configurations --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) --enable-gold[=ARG] build gold [ARG={default,yes,no}] @@ -11410,7 +11412,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11413 "configure" +#line 11415 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11516,7 +11518,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11519 "configure" +#line 11521 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -15127,6 +15129,22 @@ fi +ac_checking= +. ${srcdir}/../bfd/development.sh +test "$development" = true && ac_checking=yes +# Check whether --enable-checking was given. +if test "${enable_checking+set}" = set; then : + enableval=$enable_checking; case "${enableval}" in + no|none) ac_checking= ;; + *) ac_checking=yes ;; +esac +fi +if test x$ac_checking != x ; then + +$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h + +fi + # Check whether --with-lib-path was given. if test "${with_lib_path+set}" = set; then : diff --git a/ld/configure.ac b/ld/configure.ac index 5429f22..8ea97c4 100644 --- a/ld/configure.ac +++ b/ld/configure.ac @@ -37,6 +37,19 @@ AC_PROG_INSTALL LT_INIT ACX_LARGEFILE +ac_checking= +. ${srcdir}/../bfd/development.sh +test "$development" = true && ac_checking=yes +AC_ARG_ENABLE(checking, +[ --enable-checking enable run-time checks], +[case "${enableval}" in + no|none) ac_checking= ;; + *) ac_checking=yes ;; +esac])dnl +if test x$ac_checking != x ; then + AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.]) +fi + AC_ARG_WITH(lib-path, [ --with-lib-path=dir1:dir2... set default LIB_PATH],LIB_PATH=$withval) AC_ARG_ENABLE(targets, [ --enable-targets alternative target configurations], diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index d2b5435..f63eb47 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2021-04-12 Alan Modra <amodra@gmail.com> + + * configure.ac (--enable-checking): Add support. + * config.in: Regenerate. + * configure: Regenerate. + 2021-04-09 Tejas Belagod <tejas.belagod@arm.com> * aarch64-tbl.h (struct aarch64_opcode aarch64_opcode_table): Reclassify diff --git a/opcodes/config.in b/opcodes/config.in index 9807dd7..392cda5 100644 --- a/opcodes/config.in +++ b/opcodes/config.in @@ -7,6 +7,9 @@ #endif #define __CONFIG_H__ 1 +/* Define if you want run-time sanity checks. */ +#undef ENABLE_CHECKING + /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS diff --git a/opcodes/configure b/opcodes/configure index 8fcdb5b..922a939 100755 --- a/opcodes/configure +++ b/opcodes/configure @@ -799,6 +799,7 @@ with_pic enable_fast_install with_gnu_ld enable_libtool_lock +enable_checking enable_targets enable_werror enable_build_warnings @@ -1446,6 +1447,7 @@ Optional Features: --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --enable-checking enable run-time checks --enable-targets alternative target configurations --enable-werror treat compile warnings as errors --enable-build-warnings enable build-time compiler warnings @@ -10806,7 +10808,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10809 "configure" +#line 10811 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10912,7 +10914,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10915 "configure" +#line 10917 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11150,6 +11152,22 @@ CC="$lt_save_CC" +ac_checking= +. ${srcdir}/../bfd/development.sh +test "$development" = true && ac_checking=yes +# Check whether --enable-checking was given. +if test "${enable_checking+set}" = set; then : + enableval=$enable_checking; case "${enableval}" in + no|none) ac_checking= ;; + *) ac_checking=yes ;; +esac +fi +if test x$ac_checking != x ; then + +$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h + +fi + # Check whether --enable-targets was given. if test "${enable_targets+set}" = set; then : enableval=$enable_targets; case "${enableval}" in diff --git a/opcodes/configure.ac b/opcodes/configure.ac index 7cf0d29..911c9c6 100644 --- a/opcodes/configure.ac +++ b/opcodes/configure.ac @@ -40,6 +40,19 @@ AC_DISABLE_SHARED LT_INIT +ac_checking= +. ${srcdir}/../bfd/development.sh +test "$development" = true && ac_checking=yes +AC_ARG_ENABLE(checking, +[ --enable-checking enable run-time checks], +[case "${enableval}" in + no|none) ac_checking= ;; + *) ac_checking=yes ;; +esac])dnl +if test x$ac_checking != x ; then + AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.]) +fi + AC_ARG_ENABLE(targets, [ --enable-targets alternative target configurations], [case "${enableval}" in |