winegcc: Add Macho-o lib detection support

André Hentschel nerv at dawncrow.de
Mon Nov 8 12:35:06 CST 2010


Am 08.11.2010 19:27, schrieb Charles Davis:
> On 11/8/10 10:52 AM, André Hentschel wrote:
>> @@ -321,7 +321,8 @@ static int check_platform( struct options *opts, const char *file )
>>          unsigned char header[16];
>>          if (read( fd, header, sizeof(header) ) == sizeof(header))
>>          {
>> -            /* FIXME: only ELF is supported, platform is not checked beyond 32/64 */
>> +            /* FIXME: only ELF and Macho-o is supported, platform is not checked beyond 32/64 */
> Typo 'Macho-o'.
>> @@ -331,6 +332,15 @@ static int check_platform( struct options *opts, const char *file )
>>                      ret = (opts->force_pointer_size == 4 ||
>>                             (!opts->force_pointer_size && opts->target_cpu != CPU_x86_64));
>>              }
>> +            /* Big Endian or Little Endian Mach-o File */
>> +            else if (!memcmp( header, "\376\355\372\316", 4 ) || !memcmp( header, "\316\372\355\376", 4 ))
> For 64-bit files, the magic number is 0xfeedfacf, not 0xfeedface.
> (Notice how the 64-bit magic is one more than the 32-bit magic.) You
> should check for that, too.
> 
> I would like to take this time to point out that on Mac OS, there are no
> separate 32-bit and 64-bit library directories (i.e. no lib32 and lib64,
> only lib). If you want a 32-bit and a 64-bit version of a binary or
> library installed, you're expected to build a fat binary/library. Nearly
> all of the system libraries and binaries installed with Mac OS X are in
> fact fat.
> 
> Chip
> 
Ok, thx.
Then this was just silly...

-- 

Best Regards, André Hentschel



More information about the wine-devel mailing list