Pelles C forum

C language => Pocket PC and Smartphone questions => Topic started by: rhubarb on October 04, 2010, 09:23:47 PM

Title: POLINK: fatal error: Invalid machine type in object 'SDL.dll
Post by: rhubarb on October 04, 2010, 09:23:47 PM
I have been searching far and wide for a way to build WinCe programs based on SDL.

At the moment I am trying Pelles C and MYSDL at http://emreburhan.com/blog/?p=159 (http://emreburhan.com/blog/?p=159)

My test program compiles and the link seems to find all the symbols in the SDL.lib file but then it fails with the error in the title.

1) why is Pelles C looking for SDL.DLL. That should not be needed until I execute my program on my IPAQ
2) where is Pelles C finding the SDL.DLL file in the error message. I probably have a ton of them lying around on my laptop (some not ARM)
3) MYSDL supplies the (hopefully correct) DLLs but I have no idea in what folder to put them on my laptop in order to fix the error

Peter
Title: Re: POLINK: fatal error: Invalid machine type in object 'SDL.dll
Post by: rhubarb on October 04, 2010, 09:50:37 PM
Hi
sorry, it looks like I have the same issue as someone else. Podump sez my lib file (and hence DLL) might include Thumb instructions.

l\lib>podump /headers SDL.dll
Dump of SDL.dll
File type: DLL
FILE HEADER
     1C2 machine (Thumb)
       5 number of sections
4A0135CE time date stamp (Wed May  6 09:01:34 2009)
       0 offset to symbol table
       0 number of symbols
      E0 size of optional header
    2102 characteristics:
           File is executable
           32 bit word machine
           File is dynamic link library
OPTIONAL HEADER
     10B magic # (PE32)
    9.00 linker version
   2EA00 size of code
    B000 size of initialized data
       0 size of uninitialized data

I will try hacking my .lib file in the hope that there are actually no Thumb instructions present in the DLL as suggested in the other post.

I dont quite understand how to that. Do I need to change the value from IC2 to IC0 in the file using an editor? Or do I need to regenerate the Lib file from the Dll using

polib.exe /machine:arm SDL.dll -out:SDL.lib

Peter