Closed dryeo closed 4 years ago
It's not a GCC or its fix-includes problem. I think it is caused by a stdlib.h
override that was perhaps not provided by GCC 4. This override drags in LIBC stdio.h
that refers to a _fmutex type right at the beginning of LIBC fmutex.h
(via the overridden stdlib.h
), BEFORE this type is actually defined. This is, strictly speaking, a LIBC problem (its stdio.h
should not use _fmutex based only on the _SYS_FMUTEX_H presence, it should use a more specific define). Then there is a math.h
override 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.cc
is 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.
Attempting to compile Firefox 45ESR with the latest GCC 9.2, I've come to the following build break.