I have tried to launch application on a device in debug mode and I have found this :
CreateProcess(4873762a,testDLLexe.exe,2a000000) CertVerify: \Temp\testDLLexe.exe trust = 2 LoadDLL(4873762a,8bc3e7e0,coredll.dll,03f5b000) [Cpu] 71 70802731 03F6CE4C 8B8FBB6C 03FE5744 08/28/2008 14:49:03 [D :: KEY] PV_DRIVERGLOBAL->misc.ucEnableTouchPanel=1 KeyUp(ACTION) 08/28/2008 14:49:03 [D :: KEY] KeyToOS(0x0d,2) [Cpu] 100 70802937 8494AB4C 8B8FBB6C 03FE5744 [Cpu] 100 70803151 03EB2B20 8B8FBB6C 03FE5744 [Cpu] 100 70803363 03FB05E8 8B8FBB6C 03FE5744 [Cpu] 100 70803585 8494A3A4 8B8FBB6C 03FE5744 [Cpu] 100 70803800 03EB2B20 8B8FBB6C 03FE5744 CertVerify: cegcc.dll trust = 2 LoadDLL(ffffffff,8a4c73e0,cegcc.dll,78810000) Data Abort: Thread=897522c8 Proc=84b98080 '' AKY=00120011 PC=8494f630(NK.EXE+0x00027630) RA=00000c3c(???+0x00000c3c) BVA=78888000 FSR=00000007 EXCEPTION_RECORD(c0000005(EXCEPTION_ACCESS_VIOLATION),0(continuable),0,8494f630,2) ExceptionInformation: 0 : 0 1 : 78888000 === ThreadInfo 897522C8 === Proc = 84b98080 Owner Proc = 84b98080 Stack Base= c20a0000 StartAddr = 8495592c >>>[Callstack 897522C8]<<< [1 8496962C] [2 84969C78] [3 849419D0] [4 84933B84] [5 8492F470] [6 8494F630] [7 84954790] [8 8494F680] [9 8495566C] [10 84955A44] <<<[Callstack]>>> R0=8a4c7450 R1=897656ec R2=84b95f7c R3=00078000 R4=8a4c7450 R5=00000000 R6=897656ec R7=00000002 R8=78810000 R9=78888000 R10=78888000 R11=c20afd4c R12=c20afd5c SP=c20afc88 Lr=00000c3c PC=8494f630 Psr=6000001f TerminateProcess(4873762a) DeleteProcess(4873762a) So there is an access violation in kernel, unfortunately without map file it's going to be hard to analyze... Keep on digging but it's not to be easy if we don't have access to PE loader source... On Thu, 28 Aug 2008 10:03:50 +0200, Jérôme Decoodt <[EMAIL PROTECTED]> wrote: > Hello, > >> I have attached an bz2 archive with sources you provided and two >> "makefile", one for cegcc and the other one for Visual 2005. >> Could you please check we are using same compilation flags. > > Indeed, I was compiling this way : > > /opt/mingw32ce/libexec/gcc/arm-wince-mingw32ce/4.1.0/cc1 -quiet > -D__COREDLL__ -D__MINGW32__ -D__MINGW32CE__ -D__CEGCC_VERSION__ > -idirafter ../include/w32api -idirafter ../../include/w32api testDLL.c > -quiet -dumpbase testDLL.c -auxbase testDLL -version -o testDLL.s > > /opt/mingw32ce/lib/gcc/arm-wince-mingw32ce/4.1.0/../../../../arm-wince-mingw32ce/bin/as > -o testDLL.o testDLL.s > > /opt/mingw32ce/libexec/gcc/arm-wince-mingw32ce/4.1.0/collect2 --shared > -Bdynamic -e DllMain -o testDLL.dll testDLL.o -lcoredll > > These commands come from those printed with arm-wince-mingw32ce-gcc -v > -shared -o testDLL.dll testDLL.c. I just simplified a lot the collect2 > command to use DllMain as entry point to be sure it always return TRUE. > > Furthermore, I'm compiling with mingw32ce instead of cegcc. BTW, I > tested your binaries and they behave as mine : visuals display "DLL OK" > while cegccs display "testDLLexe.exe is not a valid Pocket PC > application" (not because testDLL.dll was larger than 64kB (-O3 reduced > a lot the code) but because cegcc.dll is 2.6MB). > > Thanks for your help, > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel