[SRU] /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token (with GCC 11 in C++20 mode)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
glibmm2.4 (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Impish |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
Impact
======
It's not possible to build using the <glibmm.h> header under C++20 with the default compiler, GCC 11. This is interfering with being able to build telegram-desktop.
This was fixed for Ubuntu 22.04 LTS with 2.66.1
Demonstration of the Issue
=======
$ g++ -x c++ -std=gnu++20 -include glibmm.h - <<< 'int main(){}' `pkg-config --cflags --libs glibmm-2.4` -o /dev/null
In file included from /usr/include/
/usr/include/
956 | Variant<
| ^
/usr/include/
1017 | Variant< Variant<T> >();
| ^
/usr/include/
1070 | Variant<
| ^
/usr/include/
1240 | Variant<
| ^
/usr/include/
1286 | Variant< std::pair<K, V> >()
| ^
/usr/include/
1335 | Variant< std::vector<T> >()
| ^
/usr/include/
1404 | Variant< std::vector<
| ^
/usr/include/
1530 | Variant< std::vector<
| ^
/usr/include/
1606 | Variant< std::map<K, V> >()
| ^
/usr/include/
1679 | Variant<
| ^
In file included from /usr/include/
/usr/include/
23 | Variant<bool>()
| ^
/usr/include/
66 | Variant<unsigned char>()
| ^
/usr/include/
109 | Variant<gint16>()
| ^
/usr/include/
152 | Variant<guint16>()
| ^
/usr/include/
195 | Variant<gint32>()
| ^
/usr/include/
244 | Variant<guint32>()
| ^
/usr/include/
287 | Variant<gint64>()
| ^
/usr/include/
330 | Variant<guint64>()
| ^
/usr/include/
373 | Variant<double>()
| ^
In file included from /usr/include/
/usr/include/
1751 | Variant< Variant<T> >::Variant()
| ^~~~~~~
In file included from /usr/include/
/usr/include/
1026 | explicit Variant< Variant<T> >(GVariant* castitem, bool take_a_reference = false);
| ^~~~~~~
/usr/include/
1009 | class Variant< Variant<T> > : public VariantContaine
| ^~~~~~~
Test Plan
=========
Run the following two terminal commands in Bash:
1. sudo apt-get satisfy libglibmm-2.4-dev 'build-essential | g++'
2. g++ -x c++ -std=gnu++20 -include glibmm.h - <<< 'int main(){}' `pkg-config --cflags --libs glibmm-2.4` -o /dev/null
Make sure the latter command produced no output and ended with zero exit code.
Where problems could occur
=======
The proposed patch only modifies C++ headers. It may affect only building other packages from source or developer experience.
description: | updated |
summary: |
- /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected + [SRU] /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token |
description: | updated |
summary: |
[SRU] /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected - unqualified-id before ‘)’ token + unqualified-id before ‘)’ token (with GCC 11 in C++20 mode) |
Changed in glibmm2.4 (Ubuntu): | |
status: | New → Fix Released |
Changed in glibmm2.4 (Ubuntu Impish): | |
status: | New → Triaged |
description: | updated |
Changed in glibmm2.4 (Ubuntu): | |
importance: | Undecided → Medium |
Changed in glibmm2.4 (Ubuntu Impish): | |
importance: | Undecided → Medium |
Changed in glibmm2.4 (Ubuntu Impish): | |
status: | Triaged → In Progress |
This is already fixed in upstream. Please apply their patch. /gitlab. gnome.org/ GNOME/glibmm/ -/merge_ requests/ 50/diffs
https:/