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.
This commit is contained in:
Alan Modra 2019-11-21 17:22:41 +10:30
parent b13e475ed2
commit 5b537ffc55
8 changed files with 41 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2019-11-21 Alan Modra <amodra@gmail.com>
* testsuite/lib/binutils-common.exp (is_pecoff_format): Rewrite
with positive logic and add more target triples.
2019-11-19 Alan Modra <amodra@gmail.com>
PR 24499

View File

@ -95,14 +95,17 @@ proc is_aout_format {} {
# True if the object format is known to be PE COFF.
#
proc is_pecoff_format {} {
if { ![istarget *-*-mingw*]
&& ![istarget *-*-cygwin*]
&& ![istarget *-*-cegcc*]
&& ![istarget *-*-pe*] } {
return 0
if { [istarget *-*-beospe*]
|| [istarget *-*-cegcc*]
|| [istarget *-*-cygwin*]
|| [istarget *-*-interix*]
|| [istarget *-*-mingw*]
|| [istarget *-*-netbsdpe*]
|| [istarget *-*-pe*]
|| [istarget *-*-winnt*] } {
return 1
}
return 1
return 0
}
proc is_som_format {} {

View File

@ -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

View File

@ -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__ = .;}

View File

@ -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)

View File

@ -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 = .);}

View File

@ -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))}

View File

@ -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 {