Hello,
I have some winCE apps they would like to run on Android. Since WINE for Android will not be out for several months I thought I would investigate how to get applications running under the winece that is currently available. I successfully installed it on a pandaboard and the demo applications that come with the install work (e.g. clock.exe). I downloaded what I thought was a typical application that did not have any additional dlls (putty.exe) but it immediately returns with:
wine: Invalid address
I am a fairly competent c programmer but I was hoping I could get some pointers on where to get started since there is a lot of codebase to wade through.
If you think it cannot be done by a newbie please don't hesitate to say so :)
Thanks!
= Mark
-----------------------
Here is the results from windump putty.exe
File Header
� Machine:��������������������� 01C0 (ARM)
� Number of Sections:���������� 5
� TimeDateStamp:��������������� 45E5F329 (Wed Feb 28 15:24:57 2007) offset 216
� PointerToSymbolTable:�������� 00000000
� NumberOfSymbols:������������� 00000000
� SizeOfOptionalHeader:�������� 00E0
� Characteristics:������������� 010F
��� RELOCS_STRIPPED
��� EXECUTABLE_IMAGE
��� LINE_NUMS_STRIPPED
��� LOCAL_SYMS_STRIPPED
��� 32BIT_MACHINE
Optional Header (32bit)
� Magic����������������������������� 0x10B��������� 267
� linker version�������������������� 6.24
� size of code���������������������� 0x53c00������� 343040
� size of initialized data���������� 0x1f200������� 127488
� size of uninitialized data�������� 0x0����������� 0
� entrypoint RVA�������������������� 0x5499c������� 346524
� base of code���������������������� 0x1000�������� 4096
� base of data���������������������� 0x55000������� 348160
� image base������������������������ 0x10000������� 65536
� section align��������������������� 0x1000�������� 4096
� file align������������������������ 0x200��������� 512
� required OS version��������������� 4.00
� image version��������������������� 0.00
� subsystem version����������������� 4.20
� Win32 Version��������������������� 0x0����������� 0
� size of image��������������������� 0x75000������� 479232
� size of headers������������������� 0x400��������� 1024
� checksum�������������������������� 0x0����������� 0
� Subsystem������������������������� 0x9 (Windows CE GUI)
� DLL characteristics:�������������� 0x0
� stack reserve size���������������� 0x10000������� 65536
� stack commit size����������������� 0x1000�������� 4096
� heap reserve size����������������� 0x100000������ 1048576
� heap commit size������������������ 0x1000�������� 4096
� loader flags���������������������� 0x0����������� 0
� RVAs & sizes���������������������� 0x10���������� 16
Data Directory
� EXPORT������ rva: 0x0�������� size: 0x0������
� IMPORT������ rva: 0x62258���� size: 0x28�����
� RESOURCE���� rva: 0x73000���� size: 0x1f4c���
� EXCEPTION��� rva: 0x71000���� size: 0x1e90���
� SECURITY���� rva: 0x0�������� size: 0x0������
� BASERELOC��� rva: 0x0�������� size: 0x0������
� DEBUG������� rva: 0x0�������� size: 0x0������
� ARCHITECTURE rva: 0x0�������� size: 0x0������
� GLOBALPTR��� rva: 0x0�������� size: 0x0������
� TLS��������� rva: 0x0�������� size: 0x0������
� LOAD_CONFIG� rva: 0x0�������� size: 0x0������
� Bound IAT��� rva: 0x0�������� size: 0x0������
� IAT��������� rva: 0x63000���� size: 0x368����
� Delay IAT��� rva: 0x0�������� size: 0x0������
� CLR Header�� rva: 0x0�������� size: 0x0������
�������������� rva: 0x0�������� size: 0x0������
-----------------
Here is the last several lines from setting WINDEDEBUG=+all
0030: open_key( parent=0010, access=000f003f, attributes=00000000, name=L"Software\\Wine\\DllOverrides" )
0030: open_key() = OBJECT_NAME_NOT_FOUND { hkey=0000 }
0030: close_handle( handle=0010 )
0030: close_handle() = 0
0030: get_handle_fd( handle=000c )
0030: *fd* 000c -> 21
0030: get_handle_fd() = 0 { type=1, cacheable=1, access=00120089, options=00000000 }
0030: create_mapping( access=000f0005, attributes=00000000, protect=00000145, size=00000000, file_handle=000c, objattr={rootdir=0000,sd={},name=L""} )
0030: create_mapping() = 0 { handle=0010 }
0030: get_mapping_info( handle=0010, access=00000004 )
0030: get_mapping_info() = 0 { size=00075000, protect=325, header_size=1024, base=00010000, mapping=0014, shared_file=0000 }
0030: get_handle_fd( handle=0010 )
0030: *fd* 0010 -> 22
0030: get_handle_fd() = 0 { type=1, cacheable=1, access=000f0005, options=00000020 }
0030: close_handle( handle=0014 )
0030: close_handle() = 0
0030: close_handle( handle=0010 )
0030: close_handle() = 0
0030: close_handle( handle=000c )
0030: close_handle() = 0
0030: terminate_process( handle=0000, exit_code=487 )
0030: terminate_process() = 0 { self=1 }
0030: terminate_process( handle=ffffffff, exit_code=487 )
0030: terminate_process() = 0 { self=1 }
0030: *killed* exit_code=487
002f: *process killed*