GCC 10 issue compiling Intel Threading Building Blocks 2019 Update 6 for IA32 target

Hi,
even though GCC 10 is currently not officially supported by TBB, I just wanted to report a problem for the following issue which I’ve found while compiling TBB 2019 U6 from official sources with optimized CFLAGS for the IA32 target (by altering the release build in the Makefile to: -O3 -mtune=native -march=native -fuse-linker-plugin -flto -fno-semantic-interposition -falign-functions=32 -feliminate-unused-debug-types -ftree-loop-distribution -floop-nest-optimize -fgraphite-identity -floop-parallelize-all -ftree-parallelize-loops=4 -DUSE_PTHREAD). In addition, I also delete the -march=pentium4 flag in the IA32 target within the Makefile. The strange part is that the compilation successfully completes, but when opening the 32bit application where I use the TBB libraries, the applications starts up fine but crashes back to desktop while loading. All is fine when using the GCC 10 compiled debug builds which run with -g -O0, though. I’ve verified that the issue also exists with the default release flags and newer builds of GCC 10. GCC version string is currently: gcc version 10.0.0 20190517 (experimental) (SUSE Linux). The GCC 10 build was from the repository of Martin Liska, home:marxin:home:marxin:gcc-periodic-testing-v2. Hence I think it is a compiler issue with optimizations enabled.
All is fine when building TBB as described above with GCC 8.3.1 (which is also not officially supported yet).

A number of gcc10 and gcc9 packages have already been built

https://software.opensuse.org/search?utf8=✓&baseproject=ALL&q=gcc

TSU

I could also build the Linux 5.2 RC1 kernel and other packages just fine with that GCC 10 build and they do work fine. The problem with TBB (32 bit) was that it seemed to compile fine (that is: without aborting the compilation process) but actually the binary didn’t work if I used these binaries with a 32 bit application (a game) which needs them. The application would start up but crashs back to desktop while loading the in-game-menu. And all with the same compiler flags as GCC 8.3.1. The binaries from that older GCC version work fine with that same application. Both versions are not officially supported though and I’ve also reported the problem with TBB upstream. To my eyes it seems to be a compiler regression with GCC 9.1 and 10 while compiling optimized 32 bit code as the GCC 10 compiled 32 bit debug binaries work fine (albeit much slower because they use -g and -O0).

Aside from the possible issues you identified,
You can also try an alternative C compiler.

When you have a compiling issue like this,
You’d probably get eyes more suited for your problem if you posted in a Developer forum

https://forums.opensuse.org/forumdisplay.php/797-Development

TSU