diff options
author | Nick Clifton <nickc@redhat.com> | 2014-02-27 14:09:29 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2014-02-27 14:13:43 +0000 |
commit | 5063daf7357ccdc2c9e899ca0421c2e8e580c88d (patch) | |
tree | ad294aff0d6abde7e8064a16f4503d01dfe90867 /ld/configure | |
parent | db434ba03edb5491d48415069d6116b5037e6fa1 (diff) | |
download | gdb-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')
-rwxr-xr-x | ld/configure | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/ld/configure b/ld/configure index 8452a13..30c6a36 100755 --- a/ld/configure +++ b/ld/configure @@ -605,6 +605,7 @@ LIBOBJS TESTBFDLIB EMULATION_LIBPATH LIB_PATH +EMUL_EXTRA_BINARIES EMUL_EXTRA_OFILES EMULATION_OFILES EMUL @@ -12193,7 +12194,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12196 "configure" +#line 12197 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12299,7 +12300,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12302 "configure" +#line 12303 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -16837,6 +16838,7 @@ all_targets= EMUL= all_emuls= all_emul_extras= +all_emul_extra_binaries= all_libpath= rm -f tdirs @@ -16944,6 +16946,15 @@ do ;; esac done + + for i in $targ_extra_binaries; do + case " $all_emul_extra_binaries " in + *" ${i} "*) ;; + *) + all_emul_extra_binaries="$all_emul_extra_binaries ${i}" + ;; + esac + done fi done @@ -16959,14 +16970,17 @@ if test x${all_targets} = xtrue; then EMULATION_OFILES='$(ALL_EMULATIONS)' fi EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES)' + EMUL_EXTRA_BINARIES='$(ALL_EMUL_EXTRA_BINARIES)' else EMULATION_OFILES=$all_emuls EMUL_EXTRA_OFILES=$all_emul_extras + EMUL_EXTRA_BINARIES=$all_emul_extra_binaries fi + EMULATION_LIBPATH=$all_libpath |