ENABLE_CHECKING in bfd, opcodes, binutils, ld

gas already has this.  Here it enables checking hash table type passed
to elf_link_hash_lookup and elf_link_hash_traverse.

bfd/
	* elf-bfd.h (ENABLE_CHECKING): Define.
	(elf_link_hash_lookup): Abort if wrong type of hash table.
	(elf_link_hash_traverse): Likewise.
	* configure.ac (--enable-checking): Add support.
	* config.in: Regenerate.
	* configure: Regenerate.
binutils/
	* configure.ac (--enable-checking): Add support.
	* config.in: Regenerate.
	* configure: Regenerate.
ld/
	* configure.ac (--enable-checking): Add support.
	* config.in: Regenerate.
	* configure: Regenerate.
opcodes/
	* configure.ac (--enable-checking): Add support.
	* config.in: Regenerate.
	* configure: Regenerate.
This commit is contained in:
Alan Modra
2021-04-12 18:33:45 +09:30
parent 04977957ec
commit 43e05cd4f4
17 changed files with 178 additions and 8 deletions

View File

@ -1,3 +1,11 @@
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.

View File

@ -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

22
bfd/configure vendored
View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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

22
binutils/configure vendored
View File

@ -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

View File

@ -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

View File

@ -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-12 Alan Modra <amodra@gmail.com>
* emultempl/mipself.em (mips_create_output_section_statements):

View File

@ -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

22
ld/configure vendored
View File

@ -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 :

View File

@ -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],

View File

@ -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

View File

@ -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

22
opcodes/configure vendored
View File

@ -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

View File

@ -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