glib can no longer be included in extern "C" blocks
Bug #1923642 reported by
Heather Ellsworth
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GnuCash |
Fix Released
|
Medium
|
|||
gnucash (Debian) |
Fix Released
|
Unknown
|
|||
gnucash (Ubuntu) |
Fix Released
|
Medium
|
Heather Ellsworth |
Bug Description
Glib newer than 2.66 will not support extern "C" blocks.
For more info: https:/
Changed in gnucash: | |
status: | Unknown → New |
affects: | gnucash → ubuntu |
Changed in ubuntu: | |
importance: | Unknown → Undecided |
no longer affects: | ubuntu |
tags: | added: ftbfs |
Changed in gnucash (Ubuntu): | |
importance: | Undecided → Medium |
Changed in gnucash (Debian): | |
status: | Unknown → New |
Changed in gnucash: | |
importance: | Unknown → Critical |
status: | Unknown → Fix Released |
Changed in gnucash (Debian): | |
status: | New → Confirmed |
Changed in gnucash (Ubuntu): | |
assignee: | nobody → Heather Ellsworth (hellsworth) |
Changed in gnucash (Debian): | |
status: | Confirmed → Fix Released |
Changed in gnucash: | |
importance: | Critical → Medium |
To post a comment you must log in.
There is a breaking change in glib 2.68.0:
https:/ /bugzilla. redhat. com/show_ bug.cgi? id=1926239 /gitlab. gnome.org/ GNOME/glib/ -/merge_ requests/ 1935#note_ 1034039
https:/
In short, the glib headers cannot be included in ``extern "C"'' any longer.
This breaks gnucash 4.4 and 4.5. A lot of error output, looking basically like this:
In file included from /usr/pkg/ include/ glib-2. 0/glib/ gatomic. h:31,
from /usr/pkg/ include/ glib-2. 0/glib/ gthread. h:32,
from /usr/pkg/ include/ glib-2. 0/glib/ gasyncqueue. h:32,
from /usr/pkg/ include/ glib-2. 0/glib. h:32,
from /scratch/ finance/ gnucash/ work/gnucash- 4.5/libgnucash/ engine/ SchedXaction. h:42,
from /scratch/ finance/ gnucash/ work/gnucash- 4.5/gnucash/ gnome/assistant -loan.cpp: 33: g++/type_ traits: 3024:3: error: template with C linkage finance/ gnucash/ work/gnucash- 4.5/gnucash/ gnome/assistant -loan.cpp: 26:1: note: 'extern "C"' linkage started here
/usr/include/
3024 | template<typename _Tp>
| ^~~~~~~~
/scratch/
26 | extern "C"
| ^~~~~~~~~~
The glib includes are sometimes in other includes - here in SchedXAction.h, so it's not easy to see what needs to be moved.