Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 895370

Summary: dev-util/codeblocks-20.03-r6: emerge fails with wx-related compile errors
Product: Gentoo Linux Reporter: Klaus Kusche <klaus.kusche>
Component: Current packagesAssignee: Sergey Torokhov <torokhov-s-a>
Status: RESOLVED INVALID    
Severity: normal CC: jstein, proxy-maint, wxwidgets
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge info
emerge log

Description Klaus Kusche 2023-02-19 10:47:55 UTC
Created attachment 852818 [details]
emerge info

See attached log and emerge.info.

Installed wx: wxGTK-3.2.2.1 and wxGTK-3.0.5.1-r1 
(codeblocks uses the 3.0 one)
Comment 1 Klaus Kusche 2023-02-19 10:48:48 UTC
Created attachment 852820 [details]
emerge log
Comment 2 Sergey Torokhov 2023-02-21 05:18:03 UTC
Unfortunately I have no success to quick reproduce issue with both wxGTK:3.0-gtk3 and wxGTK:3.2-gtk3 being installed with installed codeblocks and removed it before emerge again.

Additionally I could recheck with autoconf-1.13 installed together with 1.17.

Did you touch "eselect wxwidgets" before trying to build codeblocks? I never switch it and left it as 3.0-gtk3.
Comment 3 Klaus Kusche 2023-02-21 08:11:32 UTC
Fixed. Mainly a local problem.

A combination of two problems:

* On the wx and codeblocks side, the use of #include <...> versus #include "..."
is at least strange. And codeblocks uses that to substitute wx include files,
i.e. header files with identical names exist both in the codeblocks build tree and in the system wx include directory.

* On my side, there was a misunderstanding of how eselect wxwidgets works w.r.t. emerge:

I believed that emerge is completely independent of eselect wxwidgets
(that's what the documentation of eselect wxwidgets says).
This is only partly true: emerge is independent of the *version* selected 
in eselect wxwidgets (i.e. emerge will always use the correct wx version,
no matter what version is selected in eselect wxwidgets).

However, emerge *does* use the wx configuration scripts of eselect wxwidgets,
which means that local changes to the eselect wxwidgets configuration scripts
will influence emerge (I did not expect that).

My eselect wxwidgets configuration scripts have several "-I" compiler options replaced with "-isystem" (I need that for some local wxwidgets projects).

This had been the case for many years, 
and it never made any difference up to now, but now it makes a difference:
The compiler searched the same include directories, 
but it did so in a different order, choosing the wrong header 
in cases where several headerfiles with the same name exist.