From: Tom de Vries Date: Tue, 12 Jul 2022 11:36:57 +0000 (+0200) Subject: [gdb/build] Fix build with gcc 4.8.5 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=02f0597c46892c4b69e0af45a95509bf310c759e;p=binutils-gdb.git [gdb/build] Fix build with gcc 4.8.5 When building gdb with gcc 4.8.5, we run into problems due to unconditionally using: ... gdb_static_assert (std::is_trivially_copyable::value); ... in gdbsupport/packed.h. Fix this by guarding the usage with HAVE_IS_TRIVIALLY_COPYABLE. Tested by doing a full gdb build with gcc 4.8.5. --- diff --git a/gdbsupport/packed.h b/gdbsupport/packed.h index ebc66c0cb1a..cd331b5477d 100644 --- a/gdbsupport/packed.h +++ b/gdbsupport/packed.h @@ -18,6 +18,8 @@ #ifndef PACKED_H #define PACKED_H +#include "traits.h" + /* Each instantiation and full specialization of the packed template defines a type that behaves like a given scalar type, but that has byte alignment, and, may optionally have a smaller size than the @@ -38,7 +40,9 @@ public: gdb_static_assert (alignof (packed) == 1); /* Make sure packed can be wrapped with std::atomic. */ +#if HAVE_IS_TRIVIALLY_COPYABLE gdb_static_assert (std::is_trivially_copyable::value); +#endif gdb_static_assert (std::is_copy_constructible::value); gdb_static_assert (std::is_move_constructible::value); gdb_static_assert (std::is_copy_assignable::value);