Quantcast

investigations about arm-mingw32ce-ar.exe failure on i586-mingw32msvc host

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

investigations about arm-mingw32ce-ar.exe failure on i586-mingw32msvc host

Sébastien Lorquet
Hi,

see https://sourceforge.net/tracker/?func=detail&atid=865514&aid=2942499&group_id=173455

I investigated this one too. Same as the ld one , I can't understand why this happens only in mingw and not in linux.

I made an ar file decoder to find who is right, together with this ( http://en.wikipedia.org/wiki/Ar_%28Unix%29#File_format_details ) description of the ar file format.

Decoding an ar file made on linux, I get:

reading global header for C:\Documents and Settings\squalyl\Bureau\difference\libloaderfs-madeonlinux.a
global header: !<arch>

global header ok
file name: /              
this is the symbol lookup table
file mod timestamp: 1264948266 
file oid: 0    
file gid: 0    
file mode: 0      
file size: 122      
magic 1 ok
magic 2 ok
skipping file contents (122 bytes)
file name: //             
this is the extended file list
file mod timestamp:            
file oid:      
file gid:      
file mode:        
file size: 18       
magic 1 ok
magic 2 ok
reading extended file name table (18 bytes)
file name: /0             
file mod timestamp: 1264948266 
file oid: 1000 
file gid: 1000 
file mode: 100644 
file size: 3094     
magic 1 ok
magic 2 ok
skipping file contents (3094 bytes)
EOF

This is clearly correct.

however, with the arm-mingw32ce-ar.exe (on i586-mingw32msvc host) compiled one, I get:

reading global header for C:\Documents and Settings\squalyl\Bureau\difference\libloaderfs.a
global header: !<arch>

global header ok
file name: /              
this is the symbol lookup table
file mod timestamp: 244213345533
file oid: 197232
file gid: 666709
file mode: 10604430
file size: 122      
magic 1 ok
magic 2 ok
skipping file contents (122 bytes)
file name: //             
this is the extended file list
file mod timestamp:            
file oid:      
file gid:      
file mode:        
file size: 2576980379
magic 1 ok
magic 2 ok
invalid size, cannot continue: For input string: "2576980379"

wow. my file suddenly grew this much?
the stamp and ID looks random too.

So either the ar format has changed, or the generated files are invalid.

Using "arm-mingw32ce-ar.exe -r -s -D" does absolutely nothing, this is the -D compiled archive:

reading global header for C:\Documents and Settings\squalyl\Bureau\difference\libloaderfs.a
global header: !<arch>

global header ok
file name: /              
this is the symbol lookup table
file mod timestamp: 244213345533
file oid: 197232
file gid: 666709
file mode: 10604430
file size: 122      
magic 1 ok
magic 2 ok
skipping file contents (122 bytes)
file name: //             
this is the extended file list
file mod timestamp:            
file oid:      
file gid:      
file mode:        
file size: 2576980379
magic 1 ok
magic 2 ok
invalid size, cannot continue: For input string: "2576980379"

For me these are uninitialized variables. What do you think of this?

Sebastien

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Cegcc-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: investigations about arm-mingw32ce-ar.exe failure on i586-mingw32msvc host

Sébastien Lorquet
A "working" archive file is also invalid according to my tool. I assume it works because ld or other tools only look at the symbol table header.

Sebastien


------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Cegcc-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: investigations about arm-mingw32ce-ar.exe failure on i586-mingw32msvc host

Sébastien Lorquet
this will drive me nuts.

Adding a dummy.c file to the archive, containing a

char test_if_this_will_fix_the_problem; (or any name, of course ;) )

fixes the problem, and the file format invalid error disappears. This will be a workaround, but we need to fix it.

Sebastien


------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Cegcc-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: investigations about arm-mingw32ce-ar.exe failure on i586-mingw32msvc host

Sébastien Lorquet
sorry false alarm. This does NOT fix anything.

another sample output from my decoder:

reading global header for C:\sources\ucvm\trunk\Debug\arm-wince\libloaderfs.a
global header: !<arch>

global header ok
file name: /              
this is the symbol lookup table
file mod timestamp: 666709491344
file oid: 197232
file gid: 666709
file mode: 10604430
file size: 142      
magic 1 ok
magic 2 ok
skipping file contents (142 bytes)
file name: //             
this is the extended file list
file mod timestamp:            
file oid:      
file gid:      
file mode:        
file size: 3006477109
magic 1 ok
magic 2 ok
invalid size, cannot continue: For input string: "3006477109"

The file mod is not even a valid octal string.

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Cegcc-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel
Loading...