GNU bug report logs -
#17176
24.3.50; Problem with manifests on cygw32 build with new binutils
Previous Next
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):
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.