diff options
author | Vyacheslav Petrishchev <vyachemail@gmail.com> | 2020-02-26 12:32:03 +0600 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2020-03-05 14:33:17 -0500 |
commit | 3d1e5a43cbe1780ea66df0fe091998ee61177899 (patch) | |
tree | 6c9d9991cca2f088309795d46615b3343e5efbde /gdbsupport | |
parent | a8e14f4cc2badfcf959f5e2cc57a941dc43f72d4 (diff) | |
download | gdb-3d1e5a43cbe1780ea66df0fe091998ee61177899.zip gdb-3d1e5a43cbe1780ea66df0fe091998ee61177899.tar.gz gdb-3d1e5a43cbe1780ea66df0fe091998ee61177899.tar.bz2 |
gdbsupport/configure.ac: source development.sh
[Commit message by Simon Marchi]
The GDB build in non-development mode (turn development to false in
bfd/development.sh if you want to try) is currently broken:
CXXLD gdb
/home/smarchi/src/binutils-gdb/gdb/disasm-selftests.c:218: error: undefined reference to 'selftests::register_test_foreach_arch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(gdbarch*))'
/home/smarchi/src/binutils-gdb/gdb/disasm-selftests.c:220: error: undefined reference to 'selftests::register_test_foreach_arch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(gdbarch*))'
/home/smarchi/src/binutils-gdb/gdb/dwarf2/frame.c:2310: error: undefined reference to 'selftests::register_test_foreach_arch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(gdbarch*))'
/home/smarchi/src/binutils-gdb/gdb/gdbarch-selftests.c:168: error: undefined reference to 'selftests::register_test_foreach_arch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(gdbarch*))'
/home/smarchi/src/binutils-gdb/gdbsupport/selftest.cc:96: error: undefined reference to 'selftests::reset()'
This is because the gdbsupport configure script doesn't source
bfd/development.sh to set the development variable. When $development
is unset, GDB_AC_SELFTEST defaults to enabling selftests. I don't think
the macro was written with this intention in mind, it just happens to be
that way.
So gdbsupport thinks selftests are enabled, while gdb thinks they are
disabled. gdbsupport compiles in code that calls selftests:: functions,
which are normally provided by gdb, but gdb doesn't provide them, hence
the undefined references.
Fix this by sourcing bfd/development.sh in gdbsupport/configure.ac, so
that the development variable is set.
gdbsupport/ChangeLog:
* configure.ac: Added call development.sh.
* configure: Regenerate.
Diffstat (limited to 'gdbsupport')
-rw-r--r-- | gdbsupport/ChangeLog | 5 | ||||
-rwxr-xr-x | gdbsupport/configure | 3 | ||||
-rw-r--r-- | gdbsupport/configure.ac | 3 |
3 files changed, 11 insertions, 0 deletions
diff --git a/gdbsupport/ChangeLog b/gdbsupport/ChangeLog index c47bb4e..6bfd676 100644 --- a/gdbsupport/ChangeLog +++ b/gdbsupport/ChangeLog @@ -1,3 +1,8 @@ +2020-03-05 Vyacheslav Petrishchev <vyachemail@gmail.com> + + * configure.ac: Added call development.sh. + * configure: Regenerate. + 2020-03-05 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * .gitattributes: New file. diff --git a/gdbsupport/configure b/gdbsupport/configure index a4871f8..e7a99e3 100755 --- a/gdbsupport/configure +++ b/gdbsupport/configure @@ -6569,6 +6569,9 @@ fi am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc +# Set the 'development' global. +. $srcdir/../bfd/development.sh + # We require a C++11 compiler. Check if one is available, and if # necessary, set CXX_DIALECT to some -std=xxx switch. diff --git a/gdbsupport/configure.ac b/gdbsupport/configure.ac index 401e16f..ab71a3c 100644 --- a/gdbsupport/configure.ac +++ b/gdbsupport/configure.ac @@ -33,6 +33,9 @@ AC_USE_SYSTEM_EXTENSIONS ACX_LARGEFILE AM_PROG_CC_STDC +# Set the 'development' global. +. $srcdir/../bfd/development.sh + # We require a C++11 compiler. Check if one is available, and if # necessary, set CXX_DIALECT to some -std=xxx switch. AX_CXX_COMPILE_STDCXX(11, , mandatory) |