From: Shahab Vahedi Date: Tue, 9 Feb 2021 08:42:50 +0000 (+0100) Subject: arc: Fix gcc-4.8 compilation failure for arc.c X-Git-Tag: gdb-10.2-release~90 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=15e1376fea4801f9bb9d5cacb0e6abc35693baa6;p=thirdparty%2Fbinutils-gdb.git arc: Fix gcc-4.8 compilation failure for arc.c Building an arc target: $ configulre --target=arc-elf32 \ --enable-targets=arc-linux-uclibc \ ... On a system with gcc-4.8 (CentOS 7.x), fails with: --------8<--------- ../../gdb/arch/arc.c:117:43: required from here /usr/include/c++/4.8.2/bits/hashtable_policy.h:195:39: error: no matching function for call to 'std::pair >::pair(const arc_arch_features&, target_desc*&)' : _M_v(std::forward<_Args>(__args)...) { } ^ /usr/include/c++/4.8.2/bits/hashtable_policy.h:195:39: note: candidates are: In file included from /usr/include/c++/4.8.2/utility:70:0, from /usr/include/c++/4.8.2/tuple:38, from /usr/include/c++/4.8.2/functional:55, from ../../gdb/../gdbsupport/ptid.h:35, from ../../gdb/../gdbsupport/common-defs.h:123, from ../../gdb/arch/arc.c:19: /usr/include/c++/4.8.2/bits/stl_pair.h:206:9: note: template std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>) pair(tuple<_Args1...>&, tuple<_Args2...>&, ^ -------->8--------- The corresponding line in arc.c must use an explicit ctor: --------8<--------- arc_lookup_target_description (...) { /* Add the newly created target description to the repertoire. */ - arc_tdesc_cache.emplace (features, tdesc); + arc_tdesc_cache.emplace (features, target_desc_up (tdesc)); return tdesc; } -------->8--------- See "PR gcc/96537" for more details. Last but not least, this problem has originally been investigated by Tom de Vries for RISCV targets (see 38f8aa06d9). gdb/ChangeLog: PR build/27385 * arch/arc.c (arc_lookup_target_description): Use target_desc_up() ctor explicitly. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9d12c466952..d33bf67c483 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2021-02-09 Shahab Vahedi + + PR build/27385 + * arch/arc.c (arc_lookup_target_description): Use + target_desc_up() ctor explicitly. + 2021-02-08 Shahab Vahedi PR tdep/27369 diff --git a/gdb/arch/arc.c b/gdb/arch/arc.c index d80d2fe4c0d..24d08179c85 100644 --- a/gdb/arch/arc.c +++ b/gdb/arch/arc.c @@ -113,8 +113,9 @@ arc_lookup_target_description (const struct arc_arch_features &features) target_desc *tdesc = arc_create_target_description (features); - /* Add the newly created target description to the repertoire. */ - arc_tdesc_cache.emplace (features, tdesc); + /* Add the newly created target description to the repertoire. + PR build/27385: Use "target_desc_up ()" ctor explicitly. */ + arc_tdesc_cache.emplace (features, target_desc_up (tdesc)); return tdesc; }