<pre style='margin:0'>
Mojca Miklavec (mojca) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/b68581304c59051a605f9be17ca0827f1ffce3b3">https://github.com/macports/macports-ports/commit/b68581304c59051a605f9be17ca0827f1ffce3b3</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit b68581304c59051a605f9be17ca0827f1ffce3b3
</span>Author: Mojca Miklavec <mojca@macports.org>
AuthorDate: Mon Jul 16 18:28:16 2018 +0200

<span style='display:block; white-space:pre;color:#404040;'>    *-w64-mingw32-binutils: update to 2.31
</span>---
 cross/i686-w64-mingw32-binutils/Portfile           |   5 +-
 .../patch-upstream-fix-pe-static-constructors.diff | 110 ---------------------
 cross/x86_64-w64-mingw32-binutils/Portfile         |   5 +-
 .../patch-upstream-fix-pe-static-constructors.diff | 110 ---------------------
 4 files changed, 2 insertions(+), 228 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/cross/i686-w64-mingw32-binutils/Portfile b/cross/i686-w64-mingw32-binutils/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3227b3a..f8df6ab 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/cross/i686-w64-mingw32-binutils/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cross/i686-w64-mingw32-binutils/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,13 +7,10 @@ PortGroup           crossbinutils 1.0
</span> set mingw_name      w64-mingw32
 set mingw_arch      i686
 set mingw_target    ${mingw_arch}-${mingw_name}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-crossbinutils.setup ${mingw_target} 2.30
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+crossbinutils.setup ${mingw_target} 2.31
</span> 
 maintainers         {mojca @mojca} openmaintainer
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          patch-upstream-fix-pe-static-constructors.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.args-append \
                     --disable-multilib \
                     --disable-werror
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/cross/i686-w64-mingw32-binutils/files/patch-upstream-fix-pe-static-constructors.diff b/cross/i686-w64-mingw32-binutils/files/patch-upstream-fix-pe-static-constructors.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 36db853..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/cross/i686-w64-mingw32-binutils/files/patch-upstream-fix-pe-static-constructors.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,110 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a985e9b9deabd81e16754584f4397a638e9d3f36
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Nick Clifton <nickc@redhat.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 5 Feb 2018 09:12:42 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Import patch from mainline to remove PROVODE qualifiers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- around definitions of __CTOR_LIST__ and __DTOR_LIST__ in PE linker scripts.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   PR 22762
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   * scripttempl/pe.sc: Remove PROVIDE()s from __CTOR_LIST__ and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   __DTOR_LIST__ symbols.  Add a comment explaining why this is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   necessary.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   * scripttemp/pep.sc: Likewise.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   * ld.texinfo (PROVIDE): Add a note about the effect of common
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   symbols.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ld/ld.texinfo.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ld/ld.texinfo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4001,6 +4001,12 @@ underscore), the linker will silently use the definition in the program.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- If the program references @samp{etext} but does not define it, the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- linker will use the definition in the linker script.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Note - the @code{PROVIDE} directive considers a common symbol to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+defined, even though such a symbol could be combined with the symbol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+that the @code{PROVIDE} would create.  This is particularly important
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+when considering constructor and destructor list symbols such as
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@samp{__CTOR_LIST__} as these are often defined as common symbols.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @node PROVIDE_HIDDEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @subsection PROVIDE_HIDDEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @cindex PROVIDE_HIDDEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ld/scripttempl/pe.sc.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ld/scripttempl/pe.sc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -98,8 +98,22 @@ SECTIONS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${RELOCATING+*(.glue_7t)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${RELOCATING+*(.glue_7)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(___CTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(__CTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          we do not PROVIDE them.  This is because the ctors.o startup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    code in libgcc defines them as common symbols, with the 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          expectation that they will be overridden by the definitions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    here.  If we PROVIDE the symbols then they will not be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    overridden and global constructors will not be run.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    This does mean that it is not possible for a user to define
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    their own __CTOR_LIST__ and __DTOR_LIST__ symbols.  If that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ability is needed a custom linker script will have to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    used.  (The custom script can just be a copy of this script
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    with the PROVIDE() qualifiers added).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    See PR 22762 for more details.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ___CTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       __CTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP(*(.ctors));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP(*(.ctor));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -107,8 +121,10 @@ SECTIONS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(___DTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(__DTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       /* See comment about __CTOR_LIST__ above.  The same reasoning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          applies here too.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ___DTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       __DTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP(*(.dtors));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP(*(.dtor));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ld/scripttempl/pep.sc.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ld/scripttempl/pep.sc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -99,8 +99,22 @@ SECTIONS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${RELOCATING+*(.glue_7)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+. = ALIGN(8);}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(___CTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(__CTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          we do not PROVIDE them.  This is because the ctors.o startup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    code in libgcc defines them as common symbols, with the 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          expectation that they will be overridden by the definitions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    here.  If we PROVIDE the symbols then they will not be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    overridden and global constructors will not be run.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    This does mean that it is not possible for a user to define
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    their own __CTOR_LIST__ and __DTOR_LIST__ symbols.  If that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ability is needed a custom linker script will have to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    used.  (The custom script can just be a copy of this script
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    with the PROVIDE() qualifiers added).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    See PR 22762 for more details.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ___CTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       __CTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (-1); LONG (-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP (*(.ctors));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP (*(.ctor));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -108,8 +122,10 @@ SECTIONS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (0); LONG (0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(___DTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(__DTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       /* See comment about __CTOR_LIST__ above.  The same reasoning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            applies here too.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ___DTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       __DTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (-1); LONG (-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP (*(.dtors));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP (*(.dtor));
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/cross/x86_64-w64-mingw32-binutils/Portfile b/cross/x86_64-w64-mingw32-binutils/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 99739bf..546e7c9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/cross/x86_64-w64-mingw32-binutils/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cross/x86_64-w64-mingw32-binutils/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,13 +7,10 @@ PortGroup           crossbinutils 1.0
</span> set mingw_name      w64-mingw32
 set mingw_arch      x86_64
 set mingw_target    ${mingw_arch}-${mingw_name}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-crossbinutils.setup ${mingw_target} 2.30
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+crossbinutils.setup ${mingw_target} 2.31
</span> 
 maintainers         {mojca @mojca} openmaintainer
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          patch-upstream-fix-pe-static-constructors.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.args-append \
                     --disable-multilib \
                     --disable-werror
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/cross/x86_64-w64-mingw32-binutils/files/patch-upstream-fix-pe-static-constructors.diff b/cross/x86_64-w64-mingw32-binutils/files/patch-upstream-fix-pe-static-constructors.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 36db853..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/cross/x86_64-w64-mingw32-binutils/files/patch-upstream-fix-pe-static-constructors.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,110 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a985e9b9deabd81e16754584f4397a638e9d3f36
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Nick Clifton <nickc@redhat.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 5 Feb 2018 09:12:42 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Import patch from mainline to remove PROVODE qualifiers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- around definitions of __CTOR_LIST__ and __DTOR_LIST__ in PE linker scripts.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   PR 22762
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   * scripttempl/pe.sc: Remove PROVIDE()s from __CTOR_LIST__ and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   __DTOR_LIST__ symbols.  Add a comment explaining why this is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   necessary.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   * scripttemp/pep.sc: Likewise.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   * ld.texinfo (PROVIDE): Add a note about the effect of common
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   symbols.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ld/ld.texinfo.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ld/ld.texinfo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4001,6 +4001,12 @@ underscore), the linker will silently use the definition in the program.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- If the program references @samp{etext} but does not define it, the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- linker will use the definition in the linker script.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Note - the @code{PROVIDE} directive considers a common symbol to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+defined, even though such a symbol could be combined with the symbol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+that the @code{PROVIDE} would create.  This is particularly important
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+when considering constructor and destructor list symbols such as
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@samp{__CTOR_LIST__} as these are often defined as common symbols.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @node PROVIDE_HIDDEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @subsection PROVIDE_HIDDEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @cindex PROVIDE_HIDDEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ld/scripttempl/pe.sc.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ld/scripttempl/pe.sc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -98,8 +98,22 @@ SECTIONS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${RELOCATING+*(.glue_7t)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${RELOCATING+*(.glue_7)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(___CTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(__CTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          we do not PROVIDE them.  This is because the ctors.o startup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    code in libgcc defines them as common symbols, with the 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          expectation that they will be overridden by the definitions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    here.  If we PROVIDE the symbols then they will not be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    overridden and global constructors will not be run.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    This does mean that it is not possible for a user to define
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    their own __CTOR_LIST__ and __DTOR_LIST__ symbols.  If that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ability is needed a custom linker script will have to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    used.  (The custom script can just be a copy of this script
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    with the PROVIDE() qualifiers added).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    See PR 22762 for more details.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ___CTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       __CTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP(*(.ctors));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP(*(.ctor));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -107,8 +121,10 @@ SECTIONS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(___DTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(__DTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       /* See comment about __CTOR_LIST__ above.  The same reasoning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          applies here too.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ___DTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       __DTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP(*(.dtors));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP(*(.dtor));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ld/scripttempl/pep.sc.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ld/scripttempl/pep.sc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -99,8 +99,22 @@ SECTIONS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${RELOCATING+*(.glue_7)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+. = ALIGN(8);}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(___CTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(__CTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          we do not PROVIDE them.  This is because the ctors.o startup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    code in libgcc defines them as common symbols, with the 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          expectation that they will be overridden by the definitions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    here.  If we PROVIDE the symbols then they will not be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    overridden and global constructors will not be run.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    This does mean that it is not possible for a user to define
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    their own __CTOR_LIST__ and __DTOR_LIST__ symbols.  If that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ability is needed a custom linker script will have to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    used.  (The custom script can just be a copy of this script
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    with the PROVIDE() qualifiers added).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    See PR 22762 for more details.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ___CTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       __CTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (-1); LONG (-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP (*(.ctors));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP (*(.ctor));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -108,8 +122,10 @@ SECTIONS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (0); LONG (0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CONSTRUCTING+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(___DTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       PROVIDE(__DTOR_LIST__ = .);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       /* See comment about __CTOR_LIST__ above.  The same reasoning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            applies here too.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ___DTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       __DTOR_LIST__ = .;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        LONG (-1); LONG (-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP (*(.dtors));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        KEEP (*(.dtor));
</span></pre><pre style='margin:0'>

</pre>