This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Commit: LD: Remove default-manifest.o from Cygwin/MingGW links


Hi Guys,

  I am checking in the patch below to remove the inclusion of the
  default manifest in final links for the Cygwin and MinGW targets.  The
  .rsrc section merging code has a bug which generates corrupt
  executables (16807) and the manifest support triggers other build-time
  and run-time problems.

  It has been decided to move the manifest itself into its own project,
  and to move the responsibility for including the manifest in a
  Cygwin/MinGW binary into gcc, so the PE linker scripts no longer need
  to specifically include it.  I will be creating a follow up patch to
  remove the rest of the default manifest support code tomorrow, but I
  wanted to make sure that the linker is able to produce working
  binaries today.

Cheers
  Nick

ld/ChangeLog
2014-04-08  Nick Clifton  <nickc@redhat.com>

	* scripttempl/pe.sc (R_RSRC): Remove default manifest.
	* scripttempl/pep.sc (R_RSRC): Remove default manifest.

diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc
index e9e5f64..579c0c8 100644
--- a/ld/scripttempl/pe.sc
+++ b/ld/scripttempl/pe.sc
@@ -44,23 +44,9 @@ if test "${RELOCATING}"; then
     *(.tls$)
     *(SORT(.tls$*))
     *(.tls$ZZZ)'
-  if test -z "$DEFAULT_MANIFEST"; then
-    R_RSRC='
-      *(.rsrc)
-      *(.rsrc$*)'
-  else
-    R_RSRC="
-      /* The default manifest contains information necessary for
-         binaries to run under Windows 8 (or later).  It is included as
-         the last resource file so that if the application has provided
-         its own manifest then that one will take precedence.
-
-	 Note - the .rsrc section merging code relies upon the fact
-	 that the input .rsrc sections are *not* sorted.  */
-      *(EXCLUDE_FILE (*$DEFAULT_MANIFEST) .rsrc)
-      *(.rsrc*)
-      KEEP ($DEFAULT_MANIFEST(.rsrc))"
-  fi
+  R_RSRC='
+    *(.rsrc)
+    *(.rsrc$*)'
 else
   R_TEXT=
   R_DATA=
diff --git a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc
index 5f97d31..a71dd21 100644
--- a/ld/scripttempl/pep.sc
+++ b/ld/scripttempl/pep.sc
@@ -44,23 +44,9 @@ if test "${RELOCATING}"; then
     *(.tls$)
     *(SORT(.tls$*))
     *(.tls$ZZZ)'
-  if test -z "$DEFAULT_MANIFEST"; then
-    R_RSRC='
-      *(.rsrc)
-      *(.rsrc$*)'
-  else
-    R_RSRC="
-      /* The default manifest contains information necessary for
-         binaries to run under Windows 8 (or later).  It is included as
-         the last resource file so that if the application has provided
-         its own manifest then that one will take precedence.
-
-	 Note - the .rsrc section merging code relies upon the fact
-	 that the input .rsrc sections are *not* sorted.  */
-      *(EXCLUDE_FILE (*$DEFAULT_MANIFEST) .rsrc)
-      *(.rsrc*)
-      KEEP ($DEFAULT_MANIFEST(.rsrc))"
-  fi
+  R_RSRC='
+    *(.rsrc)
+    *(.rsrc$*)'
 else
   R_TEXT=
   R_DATA=


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]