Commit Graph

3 Commits

Author SHA1 Message Date
Andrew Burgess
62bdf2d66e ld/testing: Fix error and warning checks in run_dump_test
The options warning_output and error_output to the run_dump_test
function were incorrectly checking the return value from the regexp_diff
function, and so, as a result failing tests were showing as a pass.
Fixed in this commit.

ld/ChangeLog:

	* testsuite/lib/ld-lib.exp (run_dump_test): Fix check of return
	value from regexp_diff.
	* testsuite/ld-elf/orphan-5.l: Fix expected output.
	* testsuite/ld-elf/orphan-6.l: Likewise.
2016-03-30 17:58:05 +01:00
Andrew Burgess
c005eb9e34 ld: Extend options for altering orphan handling behaviour.
Replace the options --warn-orphan and --no-warn-orphan with a single
option --orphan-handling=MODE, where mode can be place, warn, error, and
discard.

Mode 'place' is the default, and is the current behaviour, placing the
orphan section into a suitable output section.

Mode 'warn' is the same as '--warn-orphan'.  The orphan is also placed
using the same algorithm as for 'place'.

Mode 'error' is the same as '--warn-orphan' and '--fatal-warnings'.

Mode 'discard' assigns all output sections to the /DISCARD/ section.

ld/ChangeLog:

	* ld.h (enum orphan_handling_enum): New.
	(ld_config_type): Remove warn_orphan, add orphan_handling.
	* ldemul.c (ldemul_place_orphan): Remove warning about orphan
	sections.
	* ldlang.c (ldlang_place_orphan): New function.
	(lang_place_orphans): Call ldlang_place_orphan.
	* ldlex.h (enum option_values): Remove OPTION_WARN_ORPHAN and
	OPTION_NO_WARN_ORPHAN, add OPTION_ORPHAN_HANDLING.
	* lexsup.c (ld_options): Remove 'warn-orphan' and
	'no-warn-orphan', add 'orphan-handling'.
	(parse_args): Remove handling for OPTION_WARN_ORPHAN and
	OPTION_NO_WARN_ORPHAN, add handling for OPTION_ORPHAN_HANDLING.
	* NEWS: Replace text about --warn-orphan with --orphan-handling.
	* ld.texinfo (Options): Remove --warn-orphan entry and add
	entry on --orphan-handling.
	(Orphan Sections): Add reference to relevant command line options.

ld/testsuite/ChangeLog:

	* ld-elf/elf.exp: Switch to rely on run_dump_test.
	* ld-elf/orphan-5.l: Update expected output.
	* ld-elf/orphan-5.d: New file.
	* ld-elf/orphan-6.d: New file.
	* ld-elf/orphan-6.l: New file.
	* ld-elf/orphan-7.d: New file.
	* ld-elf/orphan-7.map: New file.
	* ld-elf/orphan-8.d: New file.
	* ld-elf/orphan-8.map: New file.
2015-09-04 22:30:55 +01:00
Nick Clifton
3ea6077552 Add new linker option: --warn-orphan which generates warning messages when orphan sections are detected.
ld	* ld.h (struct ld_config_type): Add new field: warn_orphan.
	* ldlex.h (enum option_values): Add OPTION_WARN_ORPHAN and
	OPTION_NO_WARN_ORPHAN.
	* lexsup.c (ld_options): Add --warn-orphan and --no-warn-orphan.
	(parse_args): Handle the new options.
	* ldemul.c (ldemul_place_orphan): If requested, generate a warning
	message when an orphan section is placed in the output file.
	* ld.texinfo: Document the new option.
	* NEWS: Mention the new feature.

tests	* ld-elf/orphan-5.l: New test - checks the linker's output with
	--warn-orphan enabled.
	* ld-elf/elf.exp: Run the new test.
2015-04-07 16:29:41 +01:00