Add support for the ASCII directive inside linker scripts.

* ldlex.l: Add ASCII token.
 * ldgram.y: Add parsing of the ASCII command.
 * ldlang.c (lang_add_string): Add maximum size parameter.  Move escape character handling code into separate function.
 * ldlang.h (lang_add_string): Update prototype.
 * NEWS: Mention the new feature.
 * ld.texi (Output Section Data): Document the new directives.
 * testsuite/ld-scripts/asciz.t: Adjust to work on more architectures and to test more aspects of the ASCIZ directive.
 * testsuite/ld-scripts/asciz.d: Adjust to match the changes to the test linker script.
 * testsuite/ld-scripts/ascii.d: New test driver.
 * testsuite/ld-scripts/ascii.s: New test assembler source.
 * testsuite/ld-scripts/ascii.t: New test script.
 * testsuite/ld-scripts/script.exp: Run the new test.
This commit is contained in:
Nick Clifton
2023-02-16 16:27:08 +00:00
parent 6f63b61dd1
commit 9fe129a410
13 changed files with 222 additions and 60 deletions

View File

@@ -646,8 +646,9 @@ extern void pop_stat_ptr
(void);
extern void lang_add_data
(int, union etree_union *);
extern bfd_vma charcount(const char *s);
extern void lang_add_string
(const char *);
(size_t, const char *s);
extern void lang_add_reloc
(bfd_reloc_code_real_type, reloc_howto_type *, asection *, const char *,
union etree_union *);