Subject: Re: bug#17176: 24.3.50; Problem with manifests on cygw32 build with new binutils

From: Eli Zaretskii <[email-masked]>
Date: Wed, 02 Apr 2014 23:59:07 +0300

> Date: Wed, 02 Apr 2014 23:29:35 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked]
> 
> > Date: Wed, 02 Apr 2014 15:07:23 -0400
> > From: Ken Brown <[email-masked]>
> > 
> > binutils has changed so that, on Cygwin, executables have a manifest 
> > built in by default.  A consequence is that the cygw32 build of emacs 
> > produces an emacs.exe which, after it is stripped, won't run:
> > 
> > $ ./emacs-stripped.exe
> > -bash: ./emacs-stripped.exe: cannot execute binary file
> > 
> > This is presumably caused by the fact that the cygw32 build already 
> > incorporates a manifest via nt/emacs.res.
> 
> Are you sure this is the cause?  If so, can you explain how stripping
> makes this problem rear its head?  What do you see in the .rsrc
> section in the unstripped and in stripped emacs.exe?

Also, what about those Cygwin users who didn't yet upgrade to this new
version of Binutils? they will be left with no manifest.

And are you sure the Cygwin manifest does everything our manifest
does?

If there's a linker switch to disable this automatic embedding of
Cygwin manifest, I'd suggest to use it, at least for emacs-24 branch.
That sounds like a better short-run solution.

Failing that, a configure-time test for this version of Binutils will
be needed, I think.