]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - ld/configure
This patch adds a default manifest in to the final links performed by the Cygwin...
authorNick Clifton <nickc@redhat.com>
Thu, 27 Feb 2014 14:09:29 +0000 (14:09 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 27 Feb 2014 14:13:43 +0000 (14:13 +0000)
commit5063daf7357ccdc2c9e899ca0421c2e8e580c88d
treead294aff0d6abde7e8064a16f4503d01dfe90867
parentdb434ba03edb5491d48415069d6116b5037e6fa1
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.
17 files changed:
ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/configure
ld/configure.in
ld/configure.tgt
ld/emulparams/i386pe.sh
ld/emulparams/i386pep.sh
ld/emultempl/default-manifest.rc [new file with mode: 0644]
ld/ld.texinfo
ld/scripttempl/pe.sc
ld/scripttempl/pep.sc
ld/testsuite/ChangeLog
ld/testsuite/ld-pe/longsecn-1.d
ld/testsuite/ld-pe/longsecn-2.d
ld/testsuite/ld-pe/longsecn.d
ld/testsuite/ld-pe/secrel.d