[v2] gdb: unconditionally define _initialize_string_view_selftests

Message ID 20190317222731.11704-1-slyfox@gentoo.org
State New
Headers show
Series
  • [v2] gdb: unconditionally define _initialize_string_view_selftests
Related show

Commit Message

Sergei Trofimovich March 17, 2019, 10:27 p.m.
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(-)

-- 
2.21.0

Comments

Sergio Durigan Junior March 18, 2019, 4:02 a.m. | #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,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

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 */