package/odb: backport more upstream commits to fix build with gcc 11.x

Commit ac9855e761 ("package/odb: fix
build with gcc 11") already fixed some gcc 11.x issues, but not all of
them. This commit backports two upstream patches fixing the remaining
issues, ensuring host-odb can be built on a gcc 11.x machine.

Fixes:

  http://autobuild.buildroot.net/results/d37c4271e66d923f7af6a4e3dbad603fcd1c8119/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Thomas Petazzoni 2022-03-10 10:55:59 +01:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 5e8b01afd5
commit 2d6e5a8501
2 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1,50 @@
From 5a5656920c6b49902ae0da6a0da84efe6e5a66f0 Mon Sep 17 00:00:00 2001
From: Boris Kolpackov <boris@codesynthesis.com>
Date: Wed, 31 Mar 2021 10:45:21 +0200
Subject: [PATCH] Adjust to changes in GCC 11
[Upstream: 61d80f051293a7449a09081f60f48b8377bfbbad]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
odb/gcc.hxx | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/odb/gcc.hxx b/odb/gcc.hxx
index fb6a1bf..d8ad590 100644
--- a/odb/gcc.hxx
+++ b/odb/gcc.hxx
@@ -164,6 +164,7 @@ gcc_tree_code_name (gcc_tree_code_type tc) {return tree_code_name[tc];}
// In GCC 9:
//
// INCLUDED_FROM Became linemap_included_from_linemap().
+//
// LAST_SOURCE_LINE Was removed apparently as no longer used. Studying
// the line-map.h diff from 8.3 suggests that the old
// implementation should still work.
@@ -193,4 +194,23 @@ LAST_SOURCE_LINE (const line_map_ordinary* map)
#endif
+// In GCC 11:
+//
+// lookup_qualified_name() has a new interface.
+//
+// DECL_IS_BUILTIN became DECL_IS_UNDECLARED_BUILTIN.
+//
+#if BUILDING_GCC_MAJOR >= 11
+
+inline tree
+lookup_qualified_name (tree scope, tree name, bool type, bool complain)
+{
+ return lookup_qualified_name (
+ scope, name, (type ? LOOK_want::TYPE : LOOK_want::NORMAL), complain);
+}
+
+#define DECL_IS_BUILTIN(decl) DECL_IS_UNDECLARED_BUILTIN(decl)
+
+#endif
+
#endif // ODB_GCC_HXX
--
2.34.1

View File

@ -0,0 +1,68 @@
From 60460df2a6d7b43a860a8f8b614c049ec0127ea8 Mon Sep 17 00:00:00 2001
From: Boris Kolpackov <boris@codesynthesis.com>
Date: Wed, 7 Jul 2021 09:26:57 +0200
Subject: [PATCH] Resolve name lookup ambiguity causing error with GCC 11
[Upstream: 47035c0f72efd99a2210cd45db6e42423fb74533]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
odb/relational/header.hxx | 2 ++
odb/relational/source.hxx | 8 ++++++++
2 files changed, 10 insertions(+)
diff --git a/odb/relational/header.hxx b/odb/relational/header.hxx
index 63dea09..d7f78fa 100644
--- a/odb/relational/header.hxx
+++ b/odb/relational/header.hxx
@@ -50,6 +50,8 @@ namespace relational
typedef typename member_base_impl<T>::member_info member_info;
+ using member_base_impl<T>::container;
+
virtual bool
pre (member_info& mi)
{
diff --git a/odb/relational/source.hxx b/odb/relational/source.hxx
index 716aa10..7da25fc 100644
--- a/odb/relational/source.hxx
+++ b/odb/relational/source.hxx
@@ -1360,6 +1360,8 @@ namespace relational
typedef typename member_base_impl<T>::member_info member_info;
+ using member_base_impl<T>::container;
+
virtual bool
pre (member_info& mi)
{
@@ -1744,6 +1746,8 @@ namespace relational
typedef typename member_base_impl<T>::member_info member_info;
+ using member_base_impl<T>::container;
+
virtual bool
pre (member_info& mi)
{
@@ -2007,6 +2011,8 @@ namespace relational
typedef typename member_base_impl<T>::member_info member_info;
+ using member_base_impl<T>::container;
+
virtual void
set_null (member_info&) = 0;
@@ -2458,6 +2464,8 @@ namespace relational
typedef typename member_base_impl<T>::member_info member_info;
+ using member_base_impl<T>::container;
+
virtual void
get_null (string const& var) const = 0;
--
2.34.1