[v2] gdb: unconditionally define _initialize_string_view_selftests

Message ID 20190317222731.11704-1-slyfox@gentoo.org
State New, archived
Headers

Commit Message

Sergei Trofimovich March 17, 2019, 10:27 p.m. UTC
  From: Sergei Trofimovich <siarheit@google.com>

The build failure was noticed by Helmut Jarausch in
https://bugs.gentoo.org/680232:
    $ ./configure CXXFLAGS='-std=c++17 -Os'
    ...
      CXXLD  gdb
    ld: init.o: in function `initialize_all_files()':
    init.c:(.text+0x113): undefined reference to `_initialize_string_view_selftests()'

It happens because '_initialize_string_view_selftests()' is
conditionally defined based on C++ default.

The change defines '_initialize_string_view_selftests()'
unconditionally and leaves implementation a no-op on c++17
compilers.
---
 gdb/ChangeLog                         | 6 ++++++
 gdb/unittests/string_view-selftests.c | 6 ++++--
 2 files changed, 10 insertions(+), 2 deletions(-)
  

Comments

Sergio Durigan Junior March 18, 2019, 4:02 a.m. UTC | #1
On Sunday, March 17 2019, Sergei Trofimovich wrote:

> From: Sergei Trofimovich <siarheit@google.com>
>
> The build failure was noticed by Helmut Jarausch in
> https://bugs.gentoo.org/680232:
>     $ ./configure CXXFLAGS='-std=c++17 -Os'
>     ...
>       CXXLD  gdb
>     ld: init.o: in function `initialize_all_files()':
>     init.c:(.text+0x113): undefined reference to `_initialize_string_view_selftests()'
>
> It happens because '_initialize_string_view_selftests()' is
> conditionally defined based on C++ default.
>
> The change defines '_initialize_string_view_selftests()'
> unconditionally and leaves implementation a no-op on c++17
> compilers.
> ---
>  gdb/ChangeLog                         | 6 ++++++
>  gdb/unittests/string_view-selftests.c | 6 ++++--
>  2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
> index 862c89e821..7684d9be60 100644
> --- a/gdb/ChangeLog
> +++ b/gdb/ChangeLog
> @@ -1,3 +1,9 @@
> +2019-03-17  Sergei Trofimovich <siarheit@google.com>
> +
> +	* unittests/string_view-selftests.c: define

Uppercase "D" on "Define".

> +	_initialize_string_view_selftests unconditionally.  This
> +	fixes build failure on CXXFLAGS="-std=c++17" setup.

FWIW, a ChangeLog entry should mention *what* changed, not *why*.  So
something like:

2019-03-17  Sergei Trofimovich <siarheit@google.com>

	* unittests/string_view-selftests.c: Define
	_initialize_string_view_selftests unconditionally.

is fine.

Since Tom has already approved the patch, I went ahead and checked it
in:

58785d9888c699770154ef1d42fcea7598e8d704

Thanks,
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 862c89e821..7684d9be60 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@ 
+2019-03-17  Sergei Trofimovich <siarheit@google.com>
+
+	* unittests/string_view-selftests.c: define
+	_initialize_string_view_selftests unconditionally.  This
+	fixes build failure on CXXFLAGS="-std=c++17" setup.
+
 2019-03-14  Eli Zaretskii  <eliz@gnu.org>
 
 	The MS-Windows port of ncurses fails to switch to a color pair if
diff --git a/gdb/unittests/string_view-selftests.c b/gdb/unittests/string_view-selftests.c
index 21a10e65af..b2a2bf7f2e 100644
--- a/gdb/unittests/string_view-selftests.c
+++ b/gdb/unittests/string_view-selftests.c
@@ -170,10 +170,12 @@  run_tests ()
 } /* namespace string_view */
 } /* namespace selftests */
 
+#endif /* __cplusplus < 201703L */
+
 void
 _initialize_string_view_selftests ()
 {
+#if defined(GDB_STRING_VIEW)
   selftests::register_test ("string_view", selftests::string_view::run_tests);
+#endif
 }
-
-#endif /* __cplusplus < 201703L */