aboutsummaryrefslogtreecommitdiff
path: root/ld/configure.tgt
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/configure.tgt
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/configure.tgt')
-rw-r--r--ld/configure.tgt12
1 files changed, 10 insertions, 2 deletions
diff --git a/ld/configure.tgt b/ld/configure.tgt
index c2c3eab..2f7d60a 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -26,7 +26,8 @@
# targ_emul name of linker emulation to use
# targ_extra_emuls additional linker emulations to provide
# targ_extra_libpath additional linker emulations using LIB_PATH
-# targ_extra_ofiles additional objects needed by the emulation
+# targ_extra_ofiles additional host-compiled objects needed by the emulation
+# targ_extra_binaries additional target-built binaries needed by the emulation
# targ64_extra_emuls additional linker emulations to provide if
# --enable-64-bit-bfd is given or if host is 64 bit.
# targ64_extra_libpath additional linker emulations using LIB_PATH if
@@ -309,23 +310,30 @@ i[3-7]86-*-gnu*) targ_emul=elf_i386 ;;
i[3-7]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
i[3-7]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
i[3-7]86-*-winnt*) targ_emul=i386pe ;
+ targ_extra_binaries="default-manifest.o" ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3-7]86-*-pe) targ_emul=i386pe ;
+ targ_extra_binaries="default-manifest.o" ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3-7]86-*-cygwin*) targ_emul=i386pe ;
- targ_extra_ofiles="deffilep.o pe-dll.o"
+ targ_extra_binaries="default-manifest.o" ;
+ targ_extra_ofiles="deffilep.o pe-dll.o" ;
test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
i[3-7]86-*-mingw32*) targ_emul=i386pe ;
+ targ_extra_binaries="default-manifest.o" ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;
x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ;
targ_extra_emuls=i386pe ;
+ targ_extra_binaries="default-manifest.o" ;
targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
x86_64-*-cygwin) targ_emul=i386pep ;
targ_extra_emuls=i386pe
+ targ_extra_binaries="default-manifest.o" ;
targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
x86_64-*-mingw*) targ_emul=i386pep ;
targ_extra_emuls=i386pe
+ targ_extra_binaries="default-manifest.o" ;
targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
i[3-7]86-*-interix*) targ_emul=i386pe_posix;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;