Vincent R. wrote: >> So Dave, question coundn't we manually change .idata section >> characteristics for instance instead of disabling auto-import ? > > > Ok I just tried to modify .idata section characteristics by removing write > attributes and of course now I don't even have an error message, nothing > happens.
Yep; if you are using auto-import, you have to have writeable .rodata sections, and since WM/CE doesn't allow that, it looks like auto-import is screwed on WMCE and your choices are either 1) annotate all w32api headers with dllimport, or 2) get v2 pseudo-relocs working. > .idata section BUT IAT needs to have write access. In french we have an > expression that could be translated by "a snake swallowing its own tail"... In Liverpool we talk about Our Rob or Ross ... > Second issue is .bss and from my limited knowledge of low level stuff this > is the place where should go uninitialized data but of course they might be > received a value during program execution so once again they need write > attribute. So I would recommend to put .bss in .data. Of course I cannot > guarantee it will sove our issue but this is the only thing I can propose > for now. The real problem here (I think, without having recently built cegcc and tested it) is that auto-import works by scattering little import tables throughout the .text, .data and even (and this is a particular part of the problem) .rodata section(s) of your exe. That means they have to be made writable, otherwise when the run-time loader tries to fix up all the IAT entries, it will SEGV - it knows enough to make the .idata section writeable, but that doesn't help because auto-import works by putting import tables in other places. That's not a problem on (e.g.) the windows PE platforms, because the runtime loader there is less strict, but what I think we've all found out over the past little while is that the WMCE loader is much more rigorous about the executable image file format. Pseudo-relocs v2. solves this problem by not (ab)using the runtime loader's import resolution facility at all, but by keeping track of all the imported addresses in a list, and running a bit of code at CRT startup time that switches the relevant pages into read/write mode before relocating the imports, thus avoiding the access violation that crashes the runtime loader. I would expect that to solve the problem on WMCE too. cheers, DaveK ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel