Closed eli-schwartz closed 3 months ago
Thanks for reporting. Not really sure whether this is really a dealbreaker as these flags are not part of the buildscripts in this repo. If this is easy to fix let us know (how).
Not really sure whether this is really a dealbreaker as these flags are not part of the buildscripts in this repo.
It indicates latent UB, which may or may not segfault or produce broken and incorrect behavior in general.
The only flag that actually changes the compiled program is -flto, which is like -O2 in that it tells the compiler to work harder to optimize the binary more. -flto is a massively global optimization pass, which means it is better at exposing issues which exist either way. Also that it's better at globally optimizing the entire program. :)
If this is easy to fix let us know (how).
PPMutex should be one of:
I guess the question is, why do the posix/ and sdl/ directories have different versions of PPMutex.h? If it's just about having platform-specific versions, then that implies part of the codebase is incorrectly including the wrong version of the header. Maybe the answer is just to fix the header include.
...
The issue is closed as "completed", and not closed as "not planned", implying that it's been fixed. I cannot find the fix -- it looks like there have been no pushes since February -- but probably I'm missing something? I'd be happy to test a fix if you like.
I tried to build with the following *FLAGS to optimize the build:
-flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing
Note the -Werror=* flags are used to help detect cases where the compiler tries to optimize by assuming UB cannot exist in the source code -- if it does exist, ordinarily the code would be miscompiled, and this says to make the miscompilation a fatal error.
I got this error:
Downstream report: https://bugs.gentoo.org/860870 Full build log: build.log.txt