GNU bug report logs - #17176
24.3.50; Problem with manifests on cygw32 build with new binutils

Previous Next

Package: emacs;

Reported by: Ken Brown <kbrown <at> cornell.edu>

Date: Wed, 2 Apr 2014 19:08:01 UTC

Severity: important

Found in version 24.3.50

Fixed in version 24.4

Done: Ken Brown <kbrown <at> cornell.edu>

Bug is archived. No further changes may be made.

Full log


Message #17 received at 17176 <at> debbugs.gnu.org (full text, mbox):

From: Ken Brown <kbrown <at> cornell.edu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 17176 <at> debbugs.gnu.org, Daniel Colascione <dancol <at> dancol.org>
Subject: Re: bug#17176: 24.3.50;	Problem with manifests on cygw32 build with
 new binutils
Date: Wed, 02 Apr 2014 18:19:34 -0400
On 4/2/2014 4:59 PM, Eli Zaretskii wrote:
>> Date: Wed, 02 Apr 2014 23:29:35 +0300
>> From: Eli Zaretskii <eliz <at> gnu.org>
>> Cc: 17176 <at> debbugs.gnu.org
>>
>>> Date: Wed, 02 Apr 2014 15:07:23 -0400
>>> From: Ken Brown <kbrown <at> cornell.edu>
>>>
>>> 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?

No, but I don't think it matters.  I think the patch is correct anyway, 
for reasons I'll explain below.

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

They don't need one.  Cygwin binaries generally have no manifest (prior 
to the Binutils change).  The only exceptions are for programs that need 
a manifest to avoid UAC problems because their names happen to contain 
"update" or "patch", for instance.  Not that Binutils has changed, 
people doing builds on Cygwin never have to think about manifests even 
in these exceptional cases.

The fact that the cygw32 build of emacs uses a manifest is a consequence 
(probably unintended, but only Daniel could say for sure) of the fact 
that emacs.res is linked in.  And the only reason for linking in 
emacs.res is to get the emacs icon into the cygw32 build.

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

This isn't necessary.  The old Binutils works fine after the patch.  The 
only difference is that there's no manifest but, as I said above, none 
is needed.

Ken





This bug report was last modified 11 years and 49 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.