From: Sébastien L. <sq...@gm...> - 2010-01-31 16:27:51
|
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 |