aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2014-02-27 14:09:29 +0000
committerNick Clifton <nickc@redhat.com>2014-02-27 14:13:43 +0000
commit5063daf7357ccdc2c9e899ca0421c2e8e580c88d (patch)
treead294aff0d6abde7e8064a16f4503d01dfe90867 /ld/emultempl
parentdb434ba03edb5491d48415069d6116b5037e6fa1 (diff)
downloadgdb-5063daf7357ccdc2c9e899ca0421c2e8e580c88d.zip
gdb-5063daf7357ccdc2c9e899ca0421c2e8e580c88d.tar.gz
gdb-5063daf7357ccdc2c9e899ca0421c2e8e580c88d.tar.bz2
This patch adds a default manifest in to the final links performed by the Cygwin and MinGW targets.
The manifest is necessary in order for the linked binaries to be executed in a Windows 8 environment. The manifest is added using a linker script so that this feature will be compiler-neutral. The resource merging code in the linker means that if an application provides its own manifest then the default manifest will be ignored. * configure.in (all_emul_extra_binaries): New variable. Populated by invoking configure.tgt. (EMUL_EXTRA_BINARIES): New substitution. * configure: Regenerate. * configure.tgt (target_extra_binaries): New variable. Set to default-manifest.o for Cygwin and MinGW targets. * Makefile.am (EMUL_EXTRA_BINARIES): New variable. Initialised by the configure script. (ALL_EMUL_EXTRA_BINARIES): New variable. (default-manifest.o): New rule to build the default manifest. (ld_new_DEPENDENCIES): Add EMUL_EXTRA_BINARIES. (install-data-local): Add EMUL_EXTRA_BINARIES. * Makefile.in: Regenerate. * ld.texinfo: Document default manifest support. * emulparams/i386pe.sh (DEFAULT_MANIFEST): Define. * emulparams/i386pep.sh (DEFAULT_MANIFEST): Define. * emultempl/default-manifest.rc: New file. * scripttempl/pe.sc (R_RSRC): Include DEFAULT_MANIFEST, if defined. * scripttempl/pep.sc (R_RSRC): Likewise. * ld-pe/longsecn-1.d: Allow for extra sections. * ld-pe/longsecn-2.d: Likewise. * ld-pe/longsecn.d: Likewise. * ld-pe/secrel.d: Likewise.
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/default-manifest.rc28
1 files changed, 28 insertions, 0 deletions
diff --git a/ld/emultempl/default-manifest.rc b/ld/emultempl/default-manifest.rc
new file mode 100644
index 0000000..a4d303f
--- /dev/null
+++ b/ld/emultempl/default-manifest.rc
@@ -0,0 +1,28 @@
+LANGUAGE 0, 0
+
+/* CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST MOVEABLE PURE DISCARDABLE */
+1 9 MOVEABLE PURE DISCARDABLE
+BEGIN
+ "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\n"
+ "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\n"
+ " <trustInfo xmlns=""urn:schemas-microsoft-com:asm.v3"">\n"
+ " <security>\n"
+ " <requestedPrivileges>\n"
+ " <requestedExecutionLevel level=""asInvoker""/>\n"
+ " </requestedPrivileges>\n"
+ " </security>\n"
+ " </trustInfo>\n"
+ " <compatibility xmlns=""urn:schemas-microsoft-com:compatibility.v1"">\n"
+ " <application>\n"
+ " <!--The ID below indicates application support for Windows Vista -->\n"
+ " <supportedOS Id=""{e2011457-1546-43c5-a5fe-008deee3d3f0}""/>\n"
+ " <!--The ID below indicates application support for Windows 7 -->\n"
+ " <supportedOS Id=""{35138b9a-5d96-4fbd-8e2d-a2440225f93a}""/>\n"
+ " <!--The ID below indicates application support for Windows 8 -->\n"
+ " <supportedOS Id=""{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}""/>\n"
+ " <!--The ID below indicates application support for Windows 8.1 -->\n"
+ " <supportedOS Id=""{1f676c76-80e1-4239-95bb-83d0f6d0da78}""/> \n"
+ " </application>\n"
+ " </compatibility>\n"
+ "</assembly>\n"
+END