The compiler look to be very good. For the floating point with the VFP, it's go 5 - 6 times faster that with MSVS with the hard lib used. I want to use it for some modules in a ms visual studio application. I try with dll to use it from MSVS app and I have some trouble. That's the way I try it: # Compile arm-wince-mingw32ce-gcc -shared -c gccdll.cpp # Produce necessary files for dll generation arm-wince-mingw32ce-dlltool -e gccdll -l gccdll.lib -z gccdll.def gccdll.o # Produce dll arm-wince-mingw32ce-gcc -shared gccdll.o gccdll -o gccdll.dll # Change .text attribute for removing the MS linker warning arm-wince-mingw32ce-objcopy --set-section-flags .text=contents,alloc,load,code,readonly gccdll.lib
When I try the .exe file that use the .dll on the target, I got an access violation if the seccinit module (from BSP with buffer validation stuff) with a very trivial test. dll source: extern "C" int __declspec(dllexport) TestDll(void) { return 9999; } exe source: #include "stdafx.h" extern "C" int __declspec(dllexport) TestDll(void); int _tmain(int argc, _TCHAR* argv[]) { int a = TestDll(); return 0; } The object dump of the dll genarate by gcc look like this: gccdll.dll: file format pei-arm-wince-little Sections: Idx Name Size VMA LMA File off Algn 0 .text 000003d4 00011000 00011000 00000600 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 00000004 00012000 00012000 00000a00 2**2 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000010 00013000 00013000 00000000 2**2 ALLOC 3 .edata 000000a5 00014000 00014000 00000c00 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .idata 00000100 00015000 00015000 00000e00 2**2 CONTENTS, ALLOC, LOAD, DATA 5 .reloc 00000044 00016000 00016000 00001000 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 6 .debug_aranges 000000a0 00017000 00017000 00001200 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_pubnames 000001b3 00018000 00018000 00001400 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_info 00000cb2 00019000 00019000 00001600 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_abbrev 00000416 0001a000 0001a000 00002400 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_line 00000416 0001b000 0001b000 00002a00 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_frame 000001c8 0001c000 0001c000 00003000 2**0 CONTENTS, READONLY, DEBUGGING 12 .debug_str 00000034 0001d000 0001d000 00003200 2**0 CONTENTS, READONLY, DEBUGGING 13 .debug_loc 0000033f 0001e000 0001e000 00003400 2**0 CONTENTS, READONLY, DEBUGGING And an object dump of the dll genarate by MSVS look like this: MSDLL.dll: file format pei-arm-wince-little Sections: Idx Name Size VMA LMA File off Algn 0 .text 00000520 10001000 10001000 00000400 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .rdata 00000144 10002000 10002000 00000a00 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 2 .data 00000040 10003000 10003000 00000c00 2**2 CONTENTS, ALLOC, LOAD, DATA 3 .pdata 00000080 10004000 10004000 00000e00 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .reloc 00000092 10005000 10005000 00001000 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA Any idea or reference of what happens and a way to go out of this trail or it's dead end ? Regards, Guy ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel