bitwiseworks / qt5-os2

Port of Qt software development framework version 5 to OS/2
Other
18 stars 2 forks source link

Build with GCC 9.2.0 #11

Closed dmik closed 4 years ago

dmik commented 4 years ago

Given that we have a test build of GCC 9.2.0 now (which was necessary for https://github.com/bitwiseworks/qtwebengine-os2/issues/3 in the first place), see https://github.com/bitwiseworks/gcc-os2/issues/2, it's time to try to build Qt with it — both as a test of GCC and to let Qt benefit from the new compiler.

qmake.exe has been already built by GCC 9.2.0 successfully and configure is also run. Here is the difference with Qt configured by GCC 4.9.2:

config_diff

Now it's time to try to build the rest.

dmik commented 4 years ago

It built pretty much far (all DLLs etc — 9 hours in total) but then OS/2 just hung when GCC was building tests and examples. It doesn't seem to have anything to do with GCC — OS/2 sometimes just hangs here under heavy load. Here is a popup log entry from EMXOMF (part of LIBC):


12-07-2019  16:56:28  SYS3171  PID ff6a  TID 0001  Slot 00d7
C:\USR\BIN\EMXOMF.EXE
c0000005
00033ac3
P1=00000002  P2=0004fffc  P3=XXXXXXXX  P4=XXXXXXXX  
EAX=0014e4cc  EBX=0014e4cc  ECX=0014e8f4  EDX=00000103
ESI=00000001  EDI=0014e8d0  
DS=0053  DSACC=d0f3  DSLIM=5fffffff  
ES=0053  ESACC=d0f3  ESLIM=5fffffff  
FS=150b  FSACC=00f3  FSLIM=00000030
GS=0000  GSACC=****  GSLIM=********
CS:EIP=005b:00033ac3  CSACC=d0df  CSLIM=5fffffff
SS:ESP=0053:00050000  SSACC=d0f3  SSLIM=5fffffff
EBP=00050008  FLG=00010202

EMXOMF.EXE 0001:00023ac3

But it happened 10 minutes before OS/2 hung so I'm not sure it's directly related either.

I tried a few examples from this build of Qt — all work as designed. And STDC++6.DLL loads just fine. So I guess GCC may be considered ready for general use. I will try https://github.com/bitwiseworks/qtwebengine-os2/issues/3 now.

StevenLevine commented 4 years ago

FWIW, this trap is because the stack overflowed. Your thought that there's a recursive loop is probably true.

If you can arrange to capture a process dump with instance data, we might be able to get a better idea of where the recursion is occurring.

A copy of your emxomf.exe and emxomf.map might be sufficient too. It depends on how easy the generated code is to read.

dmik commented 4 years ago

This trap has gone but I'm getting some other build issues in Qt. Investigating them now.

dmik commented 4 years ago

The above problem has been fixed (some leftovers like empty generated files after previous crashes). But I got a new one, really strange. make crashes like hell here. Each invocation of it ends up with a crash it seems. My POPUPLOG.OS2 is already 700 MEGABYTES in size and keeps growing while Qt builds. And I cannot break the execution of the build process. Have to reboot, otherwise I will run out of disk space on the boot drive. Never seen anything like that before.

This is the first crash entry:

12-19-2019  21:36:17  SYS3171  PID 112d  TID 0001  Slot 00d1
C:\USR\BIN\MAKE.EXE
0aa40d8b
02fe8189
P1=ec8b5500  P2=011cec81  P3=8b530000  P4=8b571445
EAX=00000000  EBX=00000000  ECX=00000001  EDX=2005868c
ESI=00000000  EDI=00000000
DS=0000  DSACC=****  DSLIM=********
ES=0000  ESACC=****  ESLIM=********
FS=0000  FSACC=****  FSLIM=********
GS=0000  GSACC=****  GSLIM=********
CS:EIP=e5c0:00000040  CSACC=****  CSLIM=********
SS:ESP=68a0:00041650  SSACC=****  SSLIM=********
EBP=00000001  FLG=00010207

These are all the other thousands of them:

12-20-2019  00:42:08  SYS3171  PID 4834  TID 0001  Slot 00d1
C:\USR\BIN\MAKE.EXE
c0000005
ffffffff
P1=00000008  P2=00006000  P3=XXXXXXXX  P4=XXXXXXXX
EAX=1ffc2433  EBX=958b4f22  ECX=b3754f93  EDX=958b4f22
ESI=00140053  EDI=0014e9f4
DS=0000  DSACC=****  DSLIM=********
ES=0014  ESACC=00fb  ESLIM=0000ffff
FS=0024  FSACC=00f3  FSLIM=00001b9f
GS=0000  GSACC=****  GSLIM=********
CS:EIP=6000:00000000  CSACC=****  CSLIM=********
SS:ESP=007c:00000080  SSACC=00f2  SSLIM=0000ffff
EBP=00005c67  FLG=00010202

And it looks like running out of stack again. Have no idea why.

dmik commented 4 years ago

Still have no idea but it has gone on its own. Everything is built now (both debug and release, including all tests and benchmarks). Tests and examples seem to work. Webengine is next. Closing this one.