[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#17176: 24.3.50; Problem with manifests on cygw32 build with new binu
From: |
Ken Brown |
Subject: |
bug#17176: 24.3.50; Problem with manifests on cygw32 build with new binutils |
Date: |
Wed, 02 Apr 2014 15:07:23 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
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. The following patch fixes
this and does some related manifest-related cleanup:
=== modified file 'configure.ac'
--- configure.ac 2014-03-27 21:29:32 +0000
+++ configure.ac 2014-04-02 17:47:41 +0000
@@ -1834,11 +1834,6 @@
W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o"
W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o"
EMACSRES="emacs.res"
- case "$canonical" in
- x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;;
- *) EMACS_MANIFEST="emacs-x86.manifest" ;;
- esac
- UPDATE_MANIFEST=update-game-score.exe.manifest
if test "${opsys}" = "cygwin"; then
W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
@@ -1846,6 +1841,11 @@
# the rc file), not a linker script.
W32_RES_LINK="-Wl,emacs.res"
else
+ case "$canonical" in
+ x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;;
+ *) EMACS_MANIFEST="emacs-x86.manifest" ;;
+ esac
+ UPDATE_MANIFEST=update-game-score.exe.manifest
W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o"
W32_LIBS="$W32_LIBS -lwinmm -lgdi32 -lcomdlg32"
W32_LIBS="$W32_LIBS -lmpr -lwinspool -lole32 -lcomctl32 -lusp10"
=== modified file 'nt/emacs.rc'
--- nt/emacs.rc 2014-03-21 10:12:53 +0000
+++ nt/emacs.rc 2014-04-02 18:30:53 +0000
@@ -1,10 +1,12 @@
Emacs ICON icons/emacs.ico
32649 CURSOR icons/hand.cur
-#if defined (WIN64) || defined (__x86_64__)
+#ifndef __CYGWIN__
+#ifdef WIN64
1 24 "emacs-x64.manifest"
#else
1 24 "emacs-x86.manifest"
#endif
+#endif
#ifndef VS_VERSION_INFO
#define VS_VERSION_INFO 1
=== modified file 'src/Makefile.in'
--- src/Makefile.in 2014-01-12 17:27:17 +0000
+++ src/Makefile.in 2014-04-02 18:29:50 +0000
@@ -259,7 +259,7 @@
## emacs.res if HAVE_W32
EMACSRES = @EMACSRES@
-## emacs-*.manifest if HAVE_W32
+## emacs-*.manifest if WINDOWSNT
EMACS_MANIFEST = @EMACS_MANIFEST@
## If HAVE_W32, compiler arguments for including
## the resource file in the binary.
OK to apply to the emacs-24 branch?
Ken
- bug#17176: 24.3.50; Problem with manifests on cygw32 build with new binutils,
Ken Brown <=