PDA

View Full Version : QT4.1.1 and later fail on windows 2000



Spockmeat
4th April 2006, 17:38
I've tried everything I can think of, and I can't get QT 4.1.1 or 4.1.2 to work on a windows 2000 box I'm using here. QT 4.1.0 works perfectly fine though. I've gone as far as recompiling everything under each version, and the only one I can get working is 4.1.0 still. This is on a celeron 433, 256MB ram so it takes a little while :)

When I try to start anything, (QT assistant, QT designer, any examples or demos, etc), an error box will come up (see attachment), which doesn't really say anything. Although the message says an error log is being generated, I don't see where any is saved. Anyone have any idea of what I could try?

Kapil
5th April 2006, 05:58
Hi...

what are the directory locations of the three installations...

Spockmeat
5th April 2006, 17:46
c:\qt\<version>


I completely clean out the system of any qt related files between each install. The install works perfectly, and I can compile each version from source perfectly, but only the 4.1.0 version executables actually work without giving me that error.

Spockmeat
10th April 2006, 14:25
Well, no one has any idea? Is there anyone else around running win2000 and using qt 4.1.1 or 4.1.2? It would be nice to know if this is my problem, in which case I can try wiping the drive and starting over.

GreyGeek
10th April 2006, 21:47
Well, no one has any idea? Is there anyone else around running win2000 and using qt 4.1.1 or 4.1.2? It would be nice to know if this is my problem, in which case I can try wiping the drive and starting over.

I'm running 4.1.0 on a W2K box but I've been waiting before I upgrade because I am in the middle of deploying a production app and I don't want to "switch horses in the middle of the stream". As soon as the production is running to everyone's satisfaction I'll be upgrading to the latest and greatest Qt4.x. That could be later this week or next, but as soon as I do I'll post the results here.

dimitri
11th April 2006, 21:18
Well, no one has any idea? Is there anyone else around running win2000 and using qt 4.1.1 or 4.1.2?
Qt is routinely tested on Windows 2000, there are no known issues with Windows 2000 - which doesn't mean there are no unknown issues :-)

Kapil
12th April 2006, 06:17
Hi...

I am also running the QT versions 4.1.1 or 4.1.2 on Win 2K and are perfectly running fine..

Though it seems odd but you can try this thing out.. This might help..
On you C:\Qt\ directory, just let there be only one version existing at a time.. remove all of them or move them to some other location.. dont let them be there in C:\qt... best would be to some other directory..
Then run the configure and then the make... this would set ur current version as the compiling one and then use it to execute other applications..
This is not the best soln but worked for me sometimes... dont forget to set the enviornment variables of ur current version..

Kapil

ingenium
12th April 2006, 10:28
I have the same problem on my Windows 2000 SP4.
I installed QT4.1.2 last night, which was the first QT installation on my system.
All tools like Designer, Linguist etc. are crashing at startup with the same error-message.

I hope somebody can help me, too

Ingenium

dimitri
13th April 2006, 19:06
Although the message says an error log is being generated, I don't see where any is saved. Anyone have any idea of what I could try?
It would really help to get the log. Maybe it's saved in the system log?

dimitri
13th April 2006, 19:26
This looks like a problem with corrupted Windows 2000 systems, nothing specific to Qt. It happens with other programs too:
Can NOT start R in windows2000 (http://bugs.r-project.org/cgi-bin/R/not-reproducible?id=1678;user=guest#followup1)
WinMgmt.exe (http://www.uwm.edu/~bobtreat/messages/7.shtml)
MyODBC won't open DAO connection with new Windows Update (http://bugs.mysql.com/bug.php?id=11863)
But we really need the log to tell for sure.

The log files could be in the windows\system32 folder, otherwise search for a drwtsn32.log file on your system.

ingenium
14th April 2006, 01:55
Hi,


This looks like a problem with corrupted Windows 2000 systems, nothing specific to Qt. It happens with other programs too:

I don't think. I've installed it 2 month ago and it make no problems, except QT. I've installed the installer, not the source-package.


But we really need the log to tell for sure.

Well, here is my dump. But i don't know to interpret it:

Event Type: Information
Event Source: DrWatson
Event Category: None
Event ID: 4097
Date: 14.04.2006
Time: 01:41:03
User: N/A
Computer: NEWTON
Description:
The application, , generated an application error The error occurred on 04/14/2006 @ 01:41:03.050 The exception generated was c000001d at address 006817AA (<nosymbols>)
Data:
...

dimitri
15th April 2006, 11:14
I don't think. I've installed it 2 month ago and it make no problems, except QT. I've installed the installer, not the source-package.
I'm not saying this should happen with all other programs, it happens with some other programs. I still think it's not a Qt problem.

Just search Google for similar errors (http://www.google.com/search?q=c000001d+Windows+Watson)... According to some of the items returned by Google it could apparently be a problem with your anti-virus or the result of a hardware failure.

Also read How to troubleshoot program faults with Dr. Watson (http://support.microsoft.com/default.aspx?scid=kb;en-us;275481).

Spockmeat
17th April 2006, 21:30
Ok, I found the Dr. Watson log file. Here's the error report generated when I tried to start designer version 4.1.1. I stopped just about every process and service I could before trying to run designer.

The problem is definitely not related to anti-virus as I turned that off.
I'll be looking into this this week, I have a few ideas to try, but as this is a slow computer, it takes a while to try stuff.




Application exception occurred:
App: (pid=628)
When: 4/17/2006 @ 13:02:10.802
Exception number: c000001d (illegal instruction)

*----> System Information <----*
Computer Name: TESTBOX
User Name: Administrator
Number of Processors: 1
Processor Type: x86 Family 6 Model 6 Stepping 5
Windows 2000 Version: 5.0
Current Build: 2195
Service Pack: 4
Current Type: Uniprocessor Free
Registered Organization:
Registered Owner:

*----> Task List <----*
0 Idle.exe
8 System.exe
132 SMSS.exe
160 CSRSS.exe
180 WINLOGON.exe
208 SERVICES.exe
220 LSASS.exe
368 svchost.exe
584 svchost.exe
108 explorer.exe
1124 ccApp.exe
980 CTFMON.exe
628 designer.exe
1016 DRWTSN32.exe
0 _Total.exe

(00400000 - 004BD000)
(77F80000 - 77FFC000)
(7C570000 - 7C623000)
(6FBC0000 - 6FBC8000)
(78000000 - 78045000)
(10000000 - 101AD000)
(7C2D0000 - 7C335000)
(77D30000 - 77DA8000)
(7CE20000 - 7CF0F000)
(77F40000 - 77F7C000)
(77E10000 - 77E79000)
(75030000 - 75044000)
(75020000 - 75028000)
(004C0000 - 00678000)
(00680000 - 00BFC000)
(76B30000 - 76B6E000)
(70A70000 - 70AD6000)
(71710000 - 71794000)
(7CF30000 - 7D175000)
(75E60000 - 75E7A000)
(779B0000 - 77A4B000)
(77570000 - 775A0000)
(77800000 - 7781E000)
(76620000 - 76631000)
(00C00000 - 00C5E000)
(00C60000 - 00DB3000)
(00DC0000 - 00E3A000)
(60000000 - 60045000)
(01980000 - 019AF000)
(019B0000 - 01A05000)

State Dump for Thread Id 0x264

eax=000000ff ebx=0188abe0 ecx=00000000 edx=0022b990 esi=00000010 edi=0022b990
eip=006817aa esp=0022b8f0 ebp=0022b908 iopl=0 nv up ei ng nz na po cy
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00200287


function: <nosymbols>
0068178a 2d4871b200 sub eax,0xb27148
0068178f 0f6f ???
00681791 d88db4260000 fmul dword ptr [ebp+0x26b4] ss:0022dfbc=00000001
00681797 0000 add [eax],al ds:000000ff=??
00681799 8dbc2700000000 lea edi,[edi] ds:0022b990=00000000
006817a0 0f6e ???
006817a2 048f add al,0x8f
006817a4 0f60 ???
006817a6 c3 ret
006817a7 0f6f ???
006817a9 d00f ror byte ptr [edi],1 ds:0022b990=00
006817ab 70c0 jo ZN12QApplication5styleEv+0x44d (0069176d)
006817ad ff0f dec dword ptr [edi] ds:0022b990=00000000
006817af ef out dx,eax
006817b0 c70f6fc80f6e mov dword ptr [edi],0x6e0fc86f ds:0022b990=00000000
006817b6 048b add al,0x8b
006817b8 0f60 ???
006817ba c3 ret
006817bb 0fd5 ???
006817bd c10fdd ror dword ptr [edi],0xdd ds:0022b990=00000000
006817c0 c50f lds ecx,[edi] ds:0022b990=340700000000
006817c2 6f outsd

*----> Stack Back Trace <----*

FramePtr ReturnAd Param#1 Param#2 Param#3 Param#4 Function Name
0022B908 007B9A87 000000FF 00000000 00000000 00000000 !<nosymbols>
0022D9A8 007C07E1 0000000F 01892414 0022DDF0 00000080 !ZNK7QMatrix3mapERK7QRegion
0022DC28 007A8B33 01892008 0022DC50 00000000 00000000 !ZNK7QMatrix3mapERK7QRegion
0022DCB8 007AD3E6 018C33A8 01892F9C 007B9580 0022DDF0 !ZNK7QMatrix3mapERK7QRegion
0022DCE8 007AE0EF 018887A0 0022DDB0 0022DDF0 00000001 !ZNK7QMatrix3mapERK7QRegion
0022EEA8 0078396C 018887A0 0022EF80 01888860 0022EFA0 !ZNK7QMatrix3mapERK7QRegion
0022F018 0071FCC2 0022F170 0022F140 01888860 0022F1A0 !ZN8QPainter9drawImageERK6QRectFRK6QImageS2_6QFlag sIN2Qt19ImageConversionFlagEE
0022F218 007204B4 0022F2B0 01888860 0022F2C0 00000001 !ZNK6QImage11transformedERK7QMatrixN2Qt18Transform ationModeE
0022F328 0073DC90 0022F390 01888860 0022F410 00000000 !ZNK6QImage6scaledERK5QSizeN2Qt15AspectRatioModeEN S3_18TransformationModeE
0022F3C8 00713BEF 0022F450 0022F650 0022F410 00000000 !ZNK7QPixmap6scaledERK5QSizeN2Qt15AspectRatioModeE NS3_18TransformationModeE
0022F548 007110DB 0022F650 01888288 0022F5B8 00000000 !ZN5QIconC2ERK7QString
0022F568 00709F22 0022F650 0022F6F0 0022F5B8 00000000 !ZNK5QIcon6pixmapERK5QSizeNS_4ModeENS_5StateE
0022F678 0070A28D 0022F6F0 00000010 00000010 00F0B2B0 !ZN14QWidgetPrivate18setWindowTitle_sysERK7QString
0022F718 006DEC32 00F0B198 00000000 00F00688 0022F7D0 !ZN14QWidgetPrivate17setWindowIcon_sysEb
0022F8D8 00689D79 00F0B170 0022FCE0 0022FCE0 10008403 !ZN7QWidget5eventEP6QEvent
0022F908 00689F27 00F04400 00F0B170 0022FCE0 0071A821 !ZN19QApplicationPrivate13notify_helperEP7QObjectP 6QEvent
0022FC68 00689C47 0022FDF0 00F0B170 0022FCE0 0045309C !ZN12QApplication6notifyEP7QObjectP6QEvent
0022FD08 0040320D 0022FD60 0022FD70 00F043D8 00000000 !ZN12QApplication13setWindowIconERK5QIcon
0022FD98 004012F0 0022FDF0 0022FE30 00F043D8 00F04391 !<nosymbols>
0022FE28 0043D58B 00000001 00F043D8 00F04390 00000001 !<nosymbols>
0022FEF8 0043D22A 00400000 00000000 0023439F 00000001 !<nosymbols>
0022FF78 004011E7 00000001 00F03B40 00F02AE8 004A3000 !<nosymbols>
0022FFB0 00401258 00000002 00000009 0022FFF0 7C598989 !<nosymbols>
0022FFC0 7C598989 00000000 00000000 7FFDF000 C000001D !<nosymbols>
0022FFF0 00000000 00401240 00000000 000000C8 00000100 kernel32!ProcessIdToSessionId

*----> Raw Stack Dump <----*
0022b8f0 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b900 80 00 00 00 80 00 00 00 - a8 d9 22 00 87 9a 7b 00 .........."...{.
0022b910 ff 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b920 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b930 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b940 80 00 00 00 80 00 00 00 - 80 00 00 00 80 00 00 00 ................
0022b950 7c 00 00 00 d0 b9 22 00 - d0 b9 22 00 10 00 00 00 |....."...".....
0022b960 00 80 03 00 00 80 83 00 - a0 33 8b 01 e0 ab 88 01 .........3......
0022b970 00 00 00 00 00 00 08 00 - 80 00 00 00 80 00 00 00 ................
0022b980 d0 16 68 00 00 00 04 00 - 7f 0f 7f 03 10 00 00 00 ..h.............
0022b990 00 00 00 00 07 34 23 e4 - 1b c6 87 ff 04 1e 15 61 .....4#........a
0022b9a0 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b9b0 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b9c0 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b9d0 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b9e0 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022b9f0 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022ba00 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022ba10 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
0022ba20 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

Wurgl
20th April 2006, 00:05
Ok, I found the Dr. Watson log file. Here's the error report generated when I tried to start designer version 4.1.1. I stopped just about every process and service I could before trying to run designer.



Application exception occurred:
App: (pid=628)
When: 4/17/2006 @ 13:02:10.802
Exception number: c000001d (illegal instruction)


Same here. On a P-II (Deschutes) and on a P-Pro the program crashes with exactly the same illegal instruction, even the disassably looks very familiar.

The same executable is running fine on newer machines, even with Win-ME :D

I am compiling the whole stuff with the additional option -march=i586 and will look tomorrow. In parallel I wrote a mail to the mingw guys, maybe their dll needs a modern processor.

Wurgl
20th April 2006, 13:14
I am compiling the whole stuff with the additional option -march=i586 and will look tomorrow.

Okay! Works now. I added -march=i586 to the makefiles in gui and corelib cleared out all those object files and recompiled these two directories.

Works fine.

Spockmeat
24th April 2006, 18:51
Awesome! I did just that on QT 4.1.1 and it seems to be working just fine now. I'll try the same on QT 4.1.2 just to make sure that works as well, so I'll post again in another day or two when that's done compiling.

Incidentally, the celeron in this comp is old enough to be based on the Pentium II architecture. I was wondering if something like that were the problem, I'm glad you found the answer so quickly :)

dimitri
25th April 2006, 00:26
Ah, that's interesting. I wouldn't have thought MinGW generates code for relatively recent processors by default.

By the way, have you find any documentation or other link? I haven't able to find anything relevant with Google.

Ah, a different search came up with:

GnuWin32 - Notes on compilation (http://gnuwin32.sourceforge.net/compile.html) (see Compiler options)

Spockmeat
26th April 2006, 14:48
Yep, 4.1.2 works fine now. What I did to make sure everything was compiled ok was to add the -march=i586 to the line

QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -march=i586

in the file $QTDIR\mkspecs\win32-g++\qmake.conf
I guess something changed enough between 4.1.0 and 4.1.1 for mingw to compile something different enough to break things by default. I'm glad this is all sorted out now :D

dimitri
1st May 2006, 15:19
I've looked into the Qt source files and found in src/gui/painting/painting.pri:

} else:sse|win32-g++ {
sse_compiler.commands = $$QMAKE_CXX -c -msse [...]
[...]
QMAKE_EXTRA_COMPILERS += sse_compiler
DEFINES += QT_HAVE_SSE

SSE_SOURCES += painting/qdrawhelper_x86.cpp

It looks like Qt forces the compilation of this file with -msse which looks wrong to me since the default target for MinGW is still -march=i386. It could be that adding -march=i586 to QMAKE_CXXFLAGS overrides -msse and fixes the problem.

Now I don't understand why the problem occurs with Qt 4.1.1 and Qt 4.1.2 only. This part of src/gui/painting/painting.pri hasn't changed since Qt 4.1.0. Maybe this is the result of adding new code in src/gui/painting/qdrawhelper_x86.cpp that really takes advantage of the -msse optimization?

This needs some additional investigation... Could you do me a favor? Try rebuilding Qt after removing -msse from src/gui/painting/painting.pri and without adding -march=i586. Does it help?

Spockmeat
1st May 2006, 16:57
Ya I can try that, it'll be a day or so for it to recompile. Using sse instructions would definitly fail on that processor though, I checked it with cpuz, and the only extension listed is mmx, it's that old of a chip.

dimitri
1st May 2006, 18:44
Mmmh... I've checked this issue with the relevant developer and the code compiled with -msse shouldn't be called unless a run-time test finds SSE is supported (which shouldn't be the case for your processor).

I really don't know. Are you using a standard MinGW instalaltion? Does the compiler generate i386 code by default as expected?

Also the stack trace looks broken, which doesn't help identifying the problem :-(

Spockmeat
1st May 2006, 20:47
I'm just using the standard mingw that was isntalled with qt. How would I check that it builds i386 code by default? Everything about the install is as clean as I can make it.

When I remove the -march=i586 and remove the -msse from that .pri file you said, I get all sorts of compile errors. Way more than will even fit in the command window. Here's the first few lines of the error output.


In file included from painting/qdrawhelper_x86.cpp:30:
C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/include/mmintrin.h:34:3: #error "MMX instruction set not enabled"
In file included from painting/qdrawhelper_x86.cpp:32:
C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/include/xmmintrin.h:34:3: #error "SSE instruction set not enabled"
painting/qdrawhelper_x86.cpp:55: error: `__m64' does not name a type
painting/qdrawhelper_x86.cpp:63: error: `m64' does not name a type
painting/qdrawhelper_x86.cpp:68: error: `m64' does not name a type
painting/qdrawhelper_x86.cpp:74: error: `m64' does not name a type
painting/qdrawhelper_x86.cpp:79: error: `m64' does not name a type
painting/qdrawhelper_x86.cpp:88: error: `m64' does not name a type


Actually, if you do the same thing, remove the -msse from the compile options in the painting.pri file, I'll bet compiling it will fail for you as well. If I put that -msse flag back in everything will compile fine again, but it won't work obviously unless I stick that -march=i586 back in again.

dimitri
1st May 2006, 23:29
When I remove the -march=i586 and remove the -msse from that .pri file you said, I get all sorts of compile errors.
My wrong. Since src/gui/painting/qdrawhelper_x86.cpp contains explicit SSE instructions, it will obviously not compile without -msse. However these SSE instructions will not be executed unless SSE support has been detected, which shouldn't be the case on your machine.

Chances are this is a gcc bug. However in order to get really sure the problem is not caused by errors in the SSE detection code, you could modify src/gui/painting/qdrawhelper.cpp to totally disable SSE:

static uint detectCPUFeatures() {
return 0
}
Or leave src/gui/painting/qdrawhelper_x86.cpp out of the build process altogether by removing it from src/gui/painting/painting.pri.

I don't know how willing you are to spend time on this...

You could also send a bug report to the MinGW project:
MinGW bugs (http://sourceforge.net/tracker/?group_id=2435&atid=102435)
To send a helpful bug report, see also:
default target architecture? (http://sourceforge.net/mailarchive/forum.php?thread_id=10256402&forum_id=5123)

Spockmeat
2nd May 2006, 17:04
Ya, I can spend a little time on this. Is there anything specific you want me to try? I'll throw that code to disable the sse check in and see what happens, again it'll be a day before the compile completes though. And this will be without the -march=i586 command. So essentially it should be a fresh build with only the SSE check disabled.

I read through that bug report, but I didn't see anyone asking for any more specific information than what is already provided. Would be interesting to see if any on that list try building Qt4.1.2 on an old processor.

dimitri
2nd May 2006, 18:58
Some more specific information is asked in the thread. Generally speaking, you provide detailed and accurate information. Make sure you specify all of these in a bug report:

Which exact programs crash? The Qt build process executes some Qt programs such as moc and uic. If the Qt build process succeeds, it means these programs didn't crash. Is that corrrect? Do moc and uic crash when run after Qt has been installed? What about rcc, lrelease and lupdate? Do only GUI programs crash?
How exactly was Qt built?
Which exact version of MinGW is this? Where was it downloaded from?
In every bug report, specify the exact processor model and OS version. You did that right, but others did not - P-II or P-Pro is not detailed enough. The information can be found in the Dr. Watson log file, it would be useful to always attach this log file.
The Dr. Watson log posted here shows a very broken stack trace that cannot be used to debug the problem. Is this always the case?


Otherwise, I don't expect much from disabling SSE detection. That's just to be 100% sure the problem is elsewhere...

If the problem is with gcc as I believe it is, try building Qt with the latest version of gcc. Which version of gcc are using right now? I understand you've using the MinGW package bundled with Qt? It's not really up-to-date anymore, I'd try a more recent version of MinGW.

Spockmeat
2nd May 2006, 20:56
The compile process does indeed finish properly. moc and uic are fine, as are rcc, lupdate and lrelease. If I try to start any gui application it crashs right away, whether it is my own program or designer or any of the examples.

Qt build process:
Install 4.1.2 source from install file (also downloads and installs mingw at this time). configure -plugin-sql-mysql -I c:\mysql\include -L c:\mysql\lib -fast
make

Mingw version:
Downloaded during the install process automatically, I think it comes from trolltech's servers or something. mingw32-gcc --version displays:
mingw32-gcc (GCC) 3.4.2 (mingw-special)
Which is the version listed under the Current section of the downloads. I could get the candidate version (3.4.5) and try that if you want.

CPU version:
Intel Celeron 433MHz family 6, model 6, stepping 5, revision mB0 (pentium II based)
OS: Windows 2000 sp4 with all critical updates applied.

Dr. Watson log:
I don't know what the log is suppose to look like, or what you mean when you say it shows a broken stack. All the entries relating to Qt crashs look almost exactly the same.


If disabling the SSE check doesn't work, I'll try the newer version of gcc tomorrow.

dimitri
2nd May 2006, 22:55
Mingw version:
Downloaded during the install process automatically, I think it comes from trolltech's servers or something. mingw32-gcc --version displays:
mingw32-gcc (GCC) 3.4.2 (mingw-special)
Which is the version listed under the Current section of the downloads. I could get the candidate version (3.4.5) and try that if you want.
There are two pages, the Download page on mingw.org (http://www.mingw.org/download.shtml) and the File Release System page on SourceForge.net (http://sourceforge.net/project/showfiles.php?group_id=2435). I stiil haven't understood which one is authoritative... Anyway, gcc 3.4.2 should be good enough, it's best to stay with Current and not mess with Candidate for now.


Dr. Watson log:
I don't know what the log is suppose to look like, or what you mean when you say it shows a broken stack. All the entries relating to Qt crashs look almost exactly the same.

As far as I know, the log should indicate where the program crashes. What I see in the log doesn't make any sense though.

It's interesting that only GUI programs crash, not uic or moc. It's also interesting that these crashes have only been reproduced on Windows 2000 so far, maybe the crash is related to the classical Windows style and threfore doesn't occur on Windows XP. You could also try building Qt with other styles in addition to the Windows style such as the CDE style (is that possible with Qt/Win open source edition?) and see if you can reproduce the problem with other styles. Just a shoot in the dark, I really don't have a clear idea of what could be going wrong...

Also is another copy of Qt installed on your system? Maybe they're interfering somehow?

Spockmeat
3rd May 2006, 15:12
whelllllll....

what would you say if I told you after compiling everything from scratch, with that SSE check disabled, that everything works just fine now.

Looks to me like that is the issue.

dimitri
3rd May 2006, 23:29
whelllllll....

what would you say if I told you after compiling everything from scratch, with that SSE check disabled, that everything works just fine now.
Thanks for looking into this! So you're positive that the only thing that has changed is that the SSE check is disabled? How did you disable it exactly? As follows?

static uint detectCPUFeatures() {
return 0;
}
Are you able to reproduce the problem again by putting the original detectCPUFeatures() back into qdrawhelper_x86.cpp and running make again? I'm sorry for asking all these questions again and again, but I need to be certain this is the cause of the crash.

So it looks like detectCPUFeatures() is wrong. We still have to find how it is wrong. I may have to create a small standalone program that calls detectCPUFeatures() and outputs the results. Then I'll ask you to run it on your machine.

I'll look into this.

Spockmeat
4th May 2006, 14:58
Yes, in that detectCPUFeatures() method I stuck a return 0; and commented out the rest. I am quite confident that is the problem, I just set the function back to the original, changed to the gui directory and just ran make. The output is libQtGui4.a, and when I try to run any gui programs they crash outright. Setting the function back to
1.
static uint detectCPUFeatures() {
2.
return 0;
3.
}
and recompiling results in everything working properly again.

Actually, the function detectCPUFeatures() is located in qdrawhelper.cpp, not qdrawhelper_x86.cpp.

dimitri
4th May 2006, 23:29
This has been fixed this this morning in Oslo. Just change the source code of function detectCPUFeatures() in file src/gui/painting/qdrawhelper.cpp from:


"pushf\n"
"pop %%eax\n"
"xor %%ebx, %%eax\n"
"jz 1f\n"

"mov $0x00000001, %%eax\n"
"cpuid\n"
"mov %%edx, %0\n"
"1:\n"
"pop %%ebx\n"
: "=r" (result)
:
: "%eax", "%ecx", "%edx"
to:


"pushf\n"
"pop %%eax\n"
"xor %%edx, %%edx\n"
"xor %%ebx, %%eax\n"
"jz 1f\n"

"mov $0x00000001, %%eax\n"
"cpuid\n"
"1:\n"
"pop %%ebx\n"
"mov %%edx, %0\n"
: "=r" (result)
:
: "%eax", "%ecx", "%edx"
Does it work for you?

Spockmeat
5th May 2006, 15:46
yes indeed it seems to work :)
Much thanks for your help.