Hi, The main problem with the MinGW Qt 4.6 is that the GCC 4.4.0 has a new exception model Dwarf, as it is described below (from release note):
- Zero cost exceptions: New exception model Dwarf only has performance penalty when being thrown. The old model, SJLJ, is no longer available. The recommended tdm-mingw-1.908.0-4.4.1-2.exe supports, by default, just the SJLJ unwinding, unfortunately. We should switch to Dwarf-2 Unwinding, to have the possibility to build a correct 'hbide' with the new Qt 4.6 MinGW variant. See below the README of the TDM - GCC 4.4.1 DWARF-2 components: ---------------------------------------------------------------------------- *** Dwarf-2 vs. SJLJ unwinding *** GCC supports two methods of stack frame unwinding: Dwarf-2 (DW2) or SJLJ (setjmp/longjmp). Until recently, only SJLJ has been available for the Windows platform. This affects you, the end user, primarily in programs that throw and catch exceptions. Programs which utilize the DW2 unwind method handle exceptions much more quickly than programs which utilize the SJLJ method. However, the DW2 method increases code size by a noticeable amount, and additionally cannot yet unwind (pass exceptions) through "foreign" stack frames: stack frames compiled by another non-DW2-enabled compiler, such as OS DLLs in a Windows callback. This means that you should in general choose the SJLJ version of the TDM-GCC builds unless you know you need faster exception handling and can be certain you will never throw an exception through a foreign stack area. As distributed, the SJLJ and DW2 packages of TDM-GCC can coexist peacefully extracted to the same directory (e.g. any files in common are for all intents and purposes identical), because the driver executables (the ones in the "bin" directory) are suffixed with "-dw2" for the DW2 build, and the libraries and other executables hide in another "-dw2" directory in "lib(exec)/gcc/mingw32". This allows you to use the same single addition to your PATH, and use DW2 exceptions only when you need them by calling "gcc-dw2", etc. If you truly want DW2 exceptions as the default when calling "gcc" (from Makefiles or configury systems, for example), you can rename or copy the suffixed executables to their original names. ---------------------------------------------------------------------------- - After copying the -dw2 executables to their original names, I was able to build a running hbide with qt 4.6 and MinGW GCC 4.4.1-DWARF-2. Unfortunately the harbour build has some problems in his postinst: ./bin/win/mingw/hbrun.exe --hb:gtcgi ./bin/postinst.prg ! Making c:\harbour\mingw\bin\hbmk.cfg... .\bin\postinst.bat ! Making shared version of Harbour binaries... c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbcmplib.o):hbcmplib.c:(.eh_frame +0x11): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbmain.o):hbmain.c:(.eh_frame+0x1 1): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbgenerr.o):hbgenerr.c:(.eh_frame +0x11): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbopt.o):hbopt.c:(.eh_frame+0x11) : undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbdead.o):hbdead.c:(.eh_frame+0x1 1): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbstripl.o):hbstripl.c:(.eh_frame +0x11): more undefined references to `__gxx_personality_v0' follow collect2: ld returned 1 exit status hbmk2: Error: Running linker. 1 c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbcmplib.o):hbcmplib.c:(.eh_frame +0x11): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbmain.o):hbmain.c:(.eh_frame+0x1 1): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbgenerr.o):hbgenerr.c:(.eh_frame +0x11): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbopt.o):hbopt.c:(.eh_frame+0x11) : undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbdead.o):hbdead.c:(.eh_frame+0x1 1): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbstripl.o):hbstripl.c:(.eh_frame +0x11): more undefined references to `__gxx_personality_v0' follow collect2: ld returned 1 exit status hbmk2: Error: Running linker. 1 c:/harbour/mingw/lib/win/mingw/libhbmainstd.a(mainstd.o):mainstd.c:(.eh_fram e+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status hbmk2: Error: Running linker. 1 c:/harbour/mingw/lib/win/mingw/libhbmainstd.a(mainstd.o):mainstd.c:(.eh_fram e+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status hbmk2: Error: Running linker. 1 c:/harbour/mingw/lib/win/mingw/libhbmainstd.a(mainstd.o):mainstd.c:(.eh_fram e+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status hbmk2: Error: Running linker. 1 ! Making hbrun with application icon... c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbcmplib.o):hbcmplib.c:(.eh_frame +0x11): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbmain.o):hbmain.c:(.eh_frame+0x1 1): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbgenerr.o):hbgenerr.c:(.eh_frame +0x11): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbopt.o):hbopt.c:(.eh_frame+0x11) : undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbdead.o):hbdead.c:(.eh_frame+0x1 1): undefined reference to `__gxx_personality_v0' c:/harbour/mingw/lib/win/mingw/libhbcplr.a(hbstripl.o):hbstripl.c:(.eh_frame +0x11): more undefined references to `__gxx_personality_v0' follow collect2: ld returned 1 exit status hbmk2: Error: Running linker. 1 Maybe this experience clarifies a little bit the Qt 4.6, harbour and MinGW 4.4.x relation. Best regards, István _______________________________________________ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour