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

From: Eli Zaretskii <[email-masked]>
Date: Mon, 08 Apr 2013 19:24:49 +0300

> Date: Mon, 08 Apr 2013 11:25:43 -0400
> From: Ken Brown <[email-masked]>
> CC: [email-masked], [email-masked]
> 
> $ 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

That doesn't look right, the format shouldn't be pe-i386.  What do you
get for any .o file compiled by the 64-bit Cygwin GCC?

> > > 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.

Then please try editing emacs.rc to change

  #ifdef WIN64
  1 24 "emacs-x64.manifest"
  #else
  1 24 "emacs-x86.manifest"
  #endif

into

  #ifdef __x86_64__
  1 24 "emacs-x64.manifest"
  #else
  1 24 "emacs-x86.manifest"
  #endif

and see if that helps.