aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-11-21 17:22:41 +1030
committerAlan Modra <amodra@gmail.com>2019-11-21 19:09:18 +1030
commit5b537ffc55757b05ca2d7dbd1bbe2d59d88c24a4 (patch)
tree19fff230f4870272fd18eff9eb9f571cefe86734 /ld
parentb13e475ed21ee0b57c5ce0f3cf8489a4164734e7 (diff)
downloadgdb-5b537ffc55757b05ca2d7dbd1bbe2d59d88c24a4.zip
gdb-5b537ffc55757b05ca2d7dbd1bbe2d59d88c24a4.tar.gz
gdb-5b537ffc55757b05ca2d7dbd1bbe2d59d88c24a4.tar.bz2
PR46, cygwin: FAIL: cdtest with -Ur
See the comment in pe.sc to understand why ld -Ur won't work. PR 46 binutils/ * testsuite/lib/binutils-common.exp (is_pecoff_format): Rewrite with positive logic and add more target triples. ld/ * scripttempl/pe.sc: Comment on ld -Ur fail. Wrap .gcc_exc comment. * scripttempl/pep.sc: Likewise. * testsuite/ld-cdtest/cdtest.exp (test2): xfail for pe.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/scripttempl/i386beos.sc2
-rw-r--r--ld/scripttempl/mcorepe.sc2
-rw-r--r--ld/scripttempl/pe.sc7
-rw-r--r--ld/scripttempl/pep.sc7
-rw-r--r--ld/testsuite/ld-cdtest/cdtest.exp5
6 files changed, 26 insertions, 6 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 39646cb..e4e3f74 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2019-11-21 Alan Modra <amodra@gmail.com>
+
+ PR 46
+ * scripttempl/pe.sc: Comment on ld -Ur fail. Wrap .gcc_exc comment.
+ * scripttempl/pep.sc: Likewise.
+ * scripttempl/i386beos.sc: Wrap .gcc_exc comment.
+ * scripttempl/mcorepe.sc: Likewise.
+ * testsuite/ld-cdtest/cdtest.exp (test2): xfail for pe.
+
2019-11-12 Jim Wilson <jimw@sifive.com>
PR 25181
diff --git a/ld/scripttempl/i386beos.sc b/ld/scripttempl/i386beos.sc
index f4ce42c..b45b83f 100644
--- a/ld/scripttempl/i386beos.sc
+++ b/ld/scripttempl/i386beos.sc
@@ -69,7 +69,7 @@ SECTIONS
${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
LONG (-1); *(.dtors); *(.dtor); LONG (0); }
${RELOCATING+ KEEP (*(SORT_NONE(.fini)))}
- /* ??? Why is .gcc_exc here? */
+ ${RELOCATING+/* ??? Why is .gcc_exc here? */}
${RELOCATING+ *(.gcc_exc)}
${RELOCATING+ etext = .;}
${RELOCATING+ __text_end__ = .;}
diff --git a/ld/scripttempl/mcorepe.sc b/ld/scripttempl/mcorepe.sc
index e7cf3d3..eea7027 100644
--- a/ld/scripttempl/mcorepe.sc
+++ b/ld/scripttempl/mcorepe.sc
@@ -76,7 +76,7 @@ SECTIONS
${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
LONG (-1); *(.dtors); *(.dtor); LONG (0); }
${RELOCATING+ KEEP (*(SORT_NONE(.fini)))}
- /* ??? Why is .gcc_exc here? */
+ ${RELOCATING+/* ??? Why is .gcc_exc here? */}
${RELOCATING+ *(.gcc_exc)}
${RELOCATING+ etext = .;}
*(.gcc_except_table)
diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc
index 865ee58..8b5e1a1 100644
--- a/ld/scripttempl/pe.sc
+++ b/ld/scripttempl/pe.sc
@@ -104,6 +104,7 @@ SECTIONS
expectation that they will be overridden by the definitions
here. If we PROVIDE the symbols then they will not be
overridden and global constructors will not be run.
+ See PR 22762 for more details.
This does mean that it is not possible for a user to define
their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do,
@@ -113,7 +114,9 @@ SECTIONS
(The custom script can just be a copy of this script with the
PROVIDE() qualifiers added).
- See PR 22762 for more details. */
+ In particular this means that ld -Ur does not work, because
+ the proper __CTOR_LIST__ set by ld -Ur is overridden by a
+ bogus __CTOR_LIST__ set by the final link. See PR 46. */
___CTOR_LIST__ = .;
__CTOR_LIST__ = .;
LONG (-1);
@@ -134,7 +137,7 @@ SECTIONS
LONG (0);
}
${RELOCATING+KEEP (*(SORT_NONE(.fini)))}
- /* ??? Why is .gcc_exc here? */
+ ${RELOCATING+/* ??? Why is .gcc_exc here? */}
${RELOCATING+ *(.gcc_exc)}
${RELOCATING+PROVIDE (etext = .);}
${RELOCATING+PROVIDE (_etext = .);}
diff --git a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc
index e6d594c..950f578 100644
--- a/ld/scripttempl/pep.sc
+++ b/ld/scripttempl/pep.sc
@@ -105,6 +105,7 @@ SECTIONS
expectation that they will be overridden by the definitions
here. If we PROVIDE the symbols then they will not be
overridden and global constructors will not be run.
+ See PR 22762 for more details.
This does mean that it is not possible for a user to define
their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do,
@@ -114,7 +115,9 @@ SECTIONS
(The custom script can just be a copy of this script with the
PROVIDE() qualifiers added).
- See PR 22762 for more details. */
+ In particular this means that ld -Ur does not work, because
+ the proper __CTOR_LIST__ set by ld -Ur is overridden by a
+ bogus __CTOR_LIST__ set by the final link. See PR 46. */
___CTOR_LIST__ = .;
__CTOR_LIST__ = .;
LONG (-1); LONG (-1);
@@ -135,7 +138,7 @@ SECTIONS
LONG (0); LONG (0);
}
${RELOCATING+KEEP (*(SORT_NONE(.fini)))}
- /* ??? Why is .gcc_exc here? */
+ ${RELOCATING+/* ??? Why is .gcc_exc here? */}
${RELOCATING+ *(.gcc_exc)}
${RELOCATING+PROVIDE (etext = .);}
${RELOCATING+ KEEP (*(.gcc_except_table))}
diff --git a/ld/testsuite/ld-cdtest/cdtest.exp b/ld/testsuite/ld-cdtest/cdtest.exp
index 5d4d5fa..0628538 100644
--- a/ld/testsuite/ld-cdtest/cdtest.exp
+++ b/ld/testsuite/ld-cdtest/cdtest.exp
@@ -92,6 +92,11 @@ if ![ld_link $CC tmpdir/cdtest {tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/c
}
}
+# PR 46
+if [is_pecoff_format] {
+ setup_xfail *-*-*
+}
+
if ![ld_relocate $ld tmpdir/cdtest.o {-Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o}] {
fail $test2
} else {