Subject: bug#12993: Wrong icon for Cygw32-Emacs

From: Ken Brown <[email-masked]>
Date: Mon, 08 Apr 2013 11:25:43 -0400

On 4/8/2013 10:53 AM, Eli Zaretskii wrote:
>> Date: Mon, 08 Apr 2013 09:02:55 -0400
>> From: Ken Brown <[email-masked]>
>> CC: [email-masked], [email-masked]
>>
>> I tried again on a different computer, after updating to the current
>> emacs trunk, and this time I got a meaningful error message:
>>
>> /usr/lib/gcc/x86_64-pc-cygwin/4.8.0/../../../../x86_64-pc-cygwin/bin/ld:
>> i386 architecture of input file `emacs.res' is incompatible with
>> i386:x86-64 output
>>
>> This made me think that the problem was the "pe-i386" in the following
>> line of configure.ac:
>>
>>     W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res"
>>
>> I made several guesses as to what should be there (including
>> "pe-x86-64", which seemed the most likely), but I kept getting the same
>> error message.
>
> What does "objdump -fh emacs.res" say?

$ objdump -fh src/emacs.res

src/emacs.res:     file format pe-i386
architecture: i386, flags 0x00000039:
HAS_RELOC, HAS_DEBUG, HAS_SYMS, HAS_LOCALS
start address 0x00000000

Sections:
Idx Name          Size      VMA               LMA               File off 
  Algn
   0 .rsrc         0000d5f0  00000000  00000000  0000003c  2**2
                   CONTENTS, ALLOC, LOAD, RELOC, DATA

> > Is it possible that the problem is in nt/emacs.rc after all?
>
> Unlikely, since it works with the 64-bit Microsoft compiler.  Does
> Cygwin64 define WIN64?  If not, it might be getting the wrong version
> of the manifest.

No, it doesn't define WIN64.  It does define __x86_64__ if that helps.

Ken