Bug 1225801

Summary: Package libgee does not build with gcc14 because of new errors
Product: [openSUSE] openSUSE Tumbleweed Reporter: Martin Jambor <mjambor>
Component: OtherAssignee: Bjørn Lie <bjorn.lie>
Status: NEW --- QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 1220571    

Description Martin Jambor 2024-06-02 21:25:25 UTC
GCC 14 newly by default treats as errors a number of situations which
before were only warnings.  For more information see
https://gcc.gnu.org/gcc-14/porting_to.html and meta bug #1220571.

Because of this, package libgee fails to compile.  This can be seen online
at:
https://build.opensuse.org/package/live_build_log/openSUSE:Factory:Staging:Gcc7/libgee/standard/x86_64

It can be reproduced locally with command: osc build --clean
--alternative-project home:rguenther:nextgcc

See also
https://gitlab.com/fweimer-rh/fedora-modernc/-/blob/main/pkg/l/libgee.md?ref_type=heads
and https://bugs.gentoo.org/920315 and https://bugs.gentoo.org/894376


The (first) error (that halts the build) is:

[   11s] concurrentlist.c: In function 'gee_concurrent_list_construct':
[   11s] concurrentlist.c:469:168: error: passing argument 4 of 'gee_hazard_pointer_set_pointer' from incompatible pointer type [-Wincompatible-pointer-types]
[   11s]   469 |         gee_hazard_pointer_set_pointer (GEE_CONCURRENT_LIST_TYPE_NODE, (GBoxedCopyFunc) gee_concurrent_list_node_ref, (GDestroyNotify) gee_concurrent_list_node_unref, &self->priv->_tail, _tmp7_, (gsize) 0, (gsize) 0);
[   11s]       |                                                                                                                                                                        ^~~~~~~~~~~~~~~~~~
[   11s]       |                                                                                                                                                                        |
[   11s]       |                                                                                                                                                                        GeeConcurrentListNode ** {aka struct _GeeConcurrentListNode **}
[   11s] In file included from concurrentlist.c:26:
[   11s] gee.h:2076:54: note: expected 'const void ***' but argument is of type 'GeeConcurrentListNode **' {aka 'struct _GeeConcurrentListNode **'}
[   11s]  2076 |                                      gconstpointer** aptr,
[   11s]       |                                      ~~~~~~~~~~~~~~~~^~~~
Comment 1 Martin Jambor 2024-07-10 15:08:56 UTC
I have created https://build.opensuse.org/request/show/1186631 in which I have simply added -fpermissive to %optflags until at least Vala is fixed.
Comment 2 Martin Jambor 2024-07-15 14:45:57 UTC
This apparently should be instead fixed with https://build.opensuse.org/request/show/1186478