[gdb/build] Fix gdb build with gcc 4.8.5
authorTom de Vries <tdevries@suse.de>
Thu, 14 Jul 2022 08:20:16 +0000 (10:20 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 14 Jul 2022 08:20:16 +0000 (10:20 +0200)
When building gdb with gcc 4.8.5, we run into:
...
In file included from /usr/include/c++/4.8/future:43:0,
                 from gdbsupport/thread-pool.h:30,
                 from gdb/dwarf2/cooked-index.h:33,
                 from gdb/dwarf2/read.h:26,
                 from gdb/dwarf2/abbrev-cache.c:21:
/usr/include/c++/4.8/atomic: In instantiation of \
  ‘_Tp std::atomic<_Tp>::load(std::memory_order) const [with _Tp = \
  packed<dwarf_unit_type, 1ul>; std::memory_order = std::memory_order]’:
gdb/dwarf2/read.h:332:44:   required from here
/usr/include/c++/4.8/atomic:208:13: error: no matching function for call to \
  ‘packed<dwarf_unit_type, 1ul>::packed()’
         _Tp tmp;
             ^
...

Fix this by adding the default constructor for packed.

Tested on x86_64-linux, with gdb build with gcc 4.8.5.

gdbsupport/packed.h

index cd331b5477ddccae3c13e19a96b2fb450c5d2fe4..3468cf442070002095960fb9ab1ee92807c07f2a 100644 (file)
@@ -31,6 +31,8 @@ template<typename T, size_t Bytes = sizeof (T)>
 struct packed
 {
 public:
+  packed () noexcept = default;
+
   packed (T val)
   {
     m_val = val;