mirror of
https://github.com/bitwiseworks/gcc-os2.git
synced 2026-04-23 14:29:52 +00:00
Conflicts between libc includes and GCC 9.2.0 fixed_includes #25
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dryeo on GitHub (Mar 31, 2020).
Attempting to compile Firefox 45ESR with the latest GCC 9.2, I've come to the following build break.
@dmik commented on GitHub (Mar 31, 2020):
It's not a GCC or its fix-includes problem. I think it is caused by a
stdlib.hoverride that was perhaps not provided by GCC 4. This override drags in LIBCstdio.hthat refers to a _fmutex type right at the beginning of LIBCfmutex.h(via the overriddenstdlib.h), BEFORE this type is actually defined. This is, strictly speaking, a LIBC problem (itsstdio.hshould not use _fmutex based only on the _SYS_FMUTEX_H presence, it should use a more specific define). Then there is amath.hoverride in GCC which I guess is also new and leads to the same effect.Regarding the locale error, it's a similar problem (structure definition based on a per-file
__InnoTekLIBC_locale_h__guard; it needs a separate define). Also a LIBC problem.I will create a LIBC ticket for them but I don't plan to fix it until our supported products face it.
In your case
string_util_os2.ccis just outdated. All wide character functionality is moved to LIBC/GCC itself and all these errors should go away once wprintf hacks are removed. Please consult to a much newer string API implementation from qtwebengine-chromium (where these hacks were completely removed since not needed any more): https://github.com/bitwiseworks/qtwebengine-chromium-os2/tree/master/chromium/base/strings.