Add --enable-linker-version option to bfd linker to add an entry in the .comment section.

PR 30187
  * NEWS: Mention the new feature. * ld.texi: Document the new feature. * ldgram.y: Handle LINKER_VERSION token. * ldlang.c (lang_add_version): New function. (enable_linker_version): New global variable. * ldlang.h (land_add_version): Prototype. (enable_linker_version): Export. * ldlex.h (OPTION_ENABLE_LINKER_VERSION): Define. (OPTION_DISABLE_LINKER_VERSION): Define. * ldlex.l (LINKER_VERSION): Add token. * lexsup.c (ld_options): Add --enable-linker-version and --disable-linker-version. (parse_args): Handle the new options. * scripttempl/arclinux.sc: Remove stabs and comment sections and replace with inclusion of misc-sections.sc * scripttempl/avr.sc: Likewise. * scripttempl/dlx.sc: Likewise. * scripttempl/elf.sc: Likewise. * scripttempl/elf32cr16.sc: Likewise. * scripttempl/elf32crx.sc: Likewise. * scripttempl/elf32msp430.sc: Likewise. * scripttempl/elf64bpf.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfarc.sc: Likewise. * scripttempl/elfarcv2.sc: Likewise. * scripttempl/elfd10v.sc: Likewise. * scripttempl/elfd30v.sc: Likewise. * scripttempl/elfm68hc11.sc: Likewise. * scripttempl/elfm68hc12.sc: Likewise. * scripttempl/elfm9s12z.sc: Likewise. * scripttempl/elfmicroblaze.sc: Likewise. * scripttempl/elfxgate.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/epiphany_4x4.sc: Likewise. * scripttempl/ft32.sc: Likewise. * scripttempl/ip2k.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/mep.sc: Likewise. * scripttempl/nds32elf.sc: Likewise. * scripttempl/pru.sc: Likewise. * scripttempl/v850.sc: Likewise. * scripttempl/v850_rh850.sc: Likewise. * scripttempl/visium.sc: Likewise. * scripttempl/xstormy16.sc: Likewise. * scripttempl/z80.sc: Likewise. * testsuite/ld-scripts/script.exp: Run new tests. * scripttempl/misc-sections.sc: New file. * testsuite/ld-scripts/ld-version-2.d: New file. * testsuite/ld-scripts/ld-version.d: New file. * testsuite/ld-scripts/ld-version.t: New file.
This commit is contained in:
Nick Clifton
2023-03-15 14:27:21 +00:00
parent 71f646f2b3
commit 2d5783fad7
46 changed files with 243 additions and 278 deletions
+55
View File
@@ -1,3 +1,58 @@
2023-03-15 Nick Clifton <nickc@redhat.com>
PR 30187
* NEWS: Mention the new feature.
* ld.texi: Document the new feature.
* ldgram.y: Handle LINKER_VERSION token.
* ldlang.c (lang_add_version): New function.
(enable_linker_version): New global variable.
* ldlang.h (land_add_version): Prototype.
(enable_linker_version): Export.
* ldlex.h (OPTION_ENABLE_LINKER_VERSION): Define.
(OPTION_DISABLE_LINKER_VERSION): Define.
* ldlex.l (LINKER_VERSION): Add token.
* lexsup.c (ld_options): Add --enable-linker-version and
--disable-linker-version.
(parse_args): Handle the new options.
* scripttempl/arclinux.sc: Remove stabs and comment sections and
replace with inclusion of misc-sections.sc
* scripttempl/avr.sc: Likewise.
* scripttempl/dlx.sc: Likewise.
* scripttempl/elf.sc: Likewise.
* scripttempl/elf32cr16.sc: Likewise.
* scripttempl/elf32crx.sc: Likewise.
* scripttempl/elf32msp430.sc: Likewise.
* scripttempl/elf64bpf.sc: Likewise.
* scripttempl/elf64hppa.sc: Likewise.
* scripttempl/elf_chaos.sc: Likewise.
* scripttempl/elfarc.sc: Likewise.
* scripttempl/elfarcv2.sc: Likewise.
* scripttempl/elfd10v.sc: Likewise.
* scripttempl/elfd30v.sc: Likewise.
* scripttempl/elfm68hc11.sc: Likewise.
* scripttempl/elfm68hc12.sc: Likewise.
* scripttempl/elfm9s12z.sc: Likewise.
* scripttempl/elfmicroblaze.sc: Likewise.
* scripttempl/elfxgate.sc: Likewise.
* scripttempl/elfxtensa.sc: Likewise.
* scripttempl/epiphany_4x4.sc: Likewise.
* scripttempl/ft32.sc: Likewise.
* scripttempl/ip2k.sc: Likewise.
* scripttempl/iq2000.sc: Likewise.
* scripttempl/mep.sc: Likewise.
* scripttempl/nds32elf.sc: Likewise.
* scripttempl/pru.sc: Likewise.
* scripttempl/v850.sc: Likewise.
* scripttempl/v850_rh850.sc: Likewise.
* scripttempl/visium.sc: Likewise.
* scripttempl/xstormy16.sc: Likewise.
* scripttempl/z80.sc: Likewise.
* testsuite/ld-scripts/script.exp: Run new tests.
* scripttempl/misc-sections.sc: New file.
* testsuite/ld-scripts/ld-version-2.d: New file.
* testsuite/ld-scripts/ld-version.d: New file.
* testsuite/ld-scripts/ld-version.t: New file.
2023-02-23 Fangrui Song <i@maskray.me>
* emultempl/riscvelf.em: Add option parsing.
+4
View File
@@ -1,5 +1,9 @@
-*- text -*-
* For most ELF based targets, if the --enable-linker-version option is used
then the version of the linker will be inserted as a string into the .comment
section.
* The linker script syntax has a new command for output sections: ASCIZ "string"
This will insert a zero-terminated string at the current location.
+29 -1
View File
@@ -461,6 +461,22 @@ will contain a colon separated list of audit interfaces to use. This
option is only meaningful on ELF platforms supporting the rtld-audit interface.
The -P option is provided for Solaris compatibility.
@kindex --enable-linker-version
@item --enable-linker-version
Enables the @code{LINKER_VERSION} linker script directive, described
in @ref{Output Section Data}. If this directive is used in a linker
script and this option has been enabled then a string containing the
linker version will be inserted at the current point.
Note - this location of this option on the linker command line is
significant. It will only affect linker scripts that come after it on
the command line, or which are built into the linker.
@kindex --disable-linker-version
@item --disable-linker-version
Disables the @code{LINKER_VERSION} linker script directive, so that it
does not insert a version string. This is the default.
@kindex --enable-non-contiguous-regions
@item --enable-non-contiguous-regions
This option avoids generating an error if an input section does not
@@ -1168,7 +1184,9 @@ in a linker script.
@itemx --version
@itemx -V
Display the version number for @command{ld}. The @option{-V} option also
lists the supported emulations.
lists the supported emulations. See also the description of the
@option{--enable-linker-version} in @ref{Options,,Command-line Options}
which can be used to insert the linker version string into a binary.
@kindex -x
@kindex --discard-all
@@ -5393,6 +5411,16 @@ entire section. If both are used, the @code{FILL} command takes
precedence. @xref{Output Section Fill}, for details on the fill
expression.
@kindex LINKER_VERSION
@cindex LINKER_VERSION
Inserts a string containing the version of the linker at the current
point. Note - by default this directive is disabled and will do
nothing. It only becomes active if the
@option{--enable-linker-version} command line option is used.
Built-in linker scripts for ELF based targets already include this
directive in their @samp{.comment} section.
@node Output Section Keywords
@subsection Output Section Keywords
There are a couple of keywords which can appear as output section
+5 -1
View File
@@ -126,7 +126,7 @@ static int error_index;
%token END
%left <token> '('
%token <token> ALIGN_K BLOCK BIND QUAD SQUAD LONG SHORT BYTE ASCIZ
%token SECTIONS PHDRS INSERT_K AFTER BEFORE
%token SECTIONS PHDRS INSERT_K AFTER BEFORE LINKER_VERSION
%token DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END DATA_SEGMENT_END
%token SORT_BY_NAME SORT_BY_ALIGNMENT SORT_NONE
%token SORT_BY_INIT_PRIORITY
@@ -676,6 +676,10 @@ statement:
{
lang_add_fill ($3);
}
| LINKER_VERSION
{
lang_add_version_string ();
}
| ASSERT_K
{ ldlex_expression (); }
'(' exp ',' NAME ')' separator
+26 -2
View File
@@ -27,7 +27,6 @@
#include "obstack.h"
#include "bfdlink.h"
#include "ctf-api.h"
#include "ld.h"
#include "ldmain.h"
#include "ldexp.h"
@@ -42,9 +41,11 @@
#include "demangle.h"
#include "hashtab.h"
#include "elf-bfd.h"
#include "bfdver.h"
#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
#endif /* BFD_SUPPORTS_PLUGINS */
#endif
#ifndef offsetof
#define offsetof(TYPE, MEMBER) ((size_t) & (((TYPE*) 0)->MEMBER))
@@ -131,6 +132,7 @@ bool lang_has_input_file = false;
bool had_output_filename = false;
bool lang_float_flag = false;
bool delete_output_file_on_failure = false;
bool enable_linker_version = false;
struct lang_phdr *lang_phdr_list;
struct lang_nocrossrefs *nocrossref_list;
struct asneeded_minfo **asneeded_list_tail;
@@ -8261,6 +8263,28 @@ lang_process (void)
lang_end ();
}
void
lang_add_version_string (void)
{
if (! enable_linker_version)
return;
const char * str = "GNU ld ";
int len = strlen (str);
int i;
for (i = 0 ; i < len ; i++)
lang_add_data (BYTE, exp_intop (str[i]));
str = BFD_VERSION_STRING;
len = strlen (str);
for (i = 0 ; i < len ; i++)
lang_add_data (BYTE, exp_intop (str[i]));
lang_add_data (BYTE, exp_intop ('\0'));
}
/* EXPORTED TO YACC */
void
+4 -1
View File
@@ -530,6 +530,7 @@ extern bool lang_has_input_file;
extern lang_statement_list_type statement_list;
extern lang_statement_list_type *stat_ptr;
extern bool delete_output_file_on_failure;
extern bool enable_linker_version;
extern struct bfd_sym_chain entry_symbol;
extern const char *entry_section;
@@ -735,6 +736,8 @@ extern void
lang_add_gc_name (const char *);
extern bool
print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr);
print_one_symbol (struct bfd_link_hash_entry *, void *);
extern void lang_add_version_string
(void);
#endif
+2
View File
@@ -170,6 +170,8 @@ enum option_values
OPTION_NO_WARN_EXECSTACK,
OPTION_WARN_RWX_SEGMENTS,
OPTION_NO_WARN_RWX_SEGMENTS,
OPTION_ENABLE_LINKER_VERSION,
OPTION_DISABLE_LINKER_VERSION,
};
/* The initial parser states. */
+1
View File
@@ -310,6 +310,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<WILD>"SHORT" { RTOKEN(SHORT); }
<WILD>"BYTE" { RTOKEN(BYTE); }
<WILD>"ASCIZ" { RTOKEN(ASCIZ); }
<WILD>"LINKER_VERSION" { RTOKEN(LINKER_VERSION); }
<SCRIPT>"NOFLOAT" { RTOKEN(NOFLOAT); }
<SCRIPT,EXPRESSION>"NOCROSSREFS" { RTOKEN(NOCROSSREFS); }
<SCRIPT,EXPRESSION>"NOCROSSREFS_TO" { RTOKEN(NOCROSSREFS_TO); }
+11
View File
@@ -130,6 +130,10 @@ static const struct ld_option ld_options[] =
'\0', NULL, N_("Enable support of non-contiguous memory regions"), TWO_DASHES },
{ {"enable-non-contiguous-regions-warnings", no_argument, NULL, OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS},
'\0', NULL, N_("Enable warnings when --enable-non-contiguous-regions may cause unexpected behaviour"), TWO_DASHES },
{ {"disable-linker-version", no_argument, NULL, OPTION_DISABLE_LINKER_VERSION},
'\0', NULL, N_("Disable the LINKER_VERSION linker script directive"), TWO_DASHES },
{ {"enable-linker-version", no_argument, NULL, OPTION_ENABLE_LINKER_VERSION},
'\0', NULL, N_("Enable the LINKER_VERSION linker script directive"), TWO_DASHES },
{ {"EB", no_argument, NULL, OPTION_EB},
'\0', NULL, N_("Link big-endian objects"), ONE_DASH },
{ {"EL", no_argument, NULL, OPTION_EL},
@@ -1095,6 +1099,13 @@ parse_args (unsigned argc, char **argv)
break;
#endif
case OPTION_ENABLE_LINKER_VERSION:
enable_linker_version = true;
break;
case OPTION_DISABLE_LINKER_VERSION:
enable_linker_version = false;
break;
case OPTION_UNDEFINED_VERSION:
link_info.allow_undefined_version = true;
break;
+1 -12
View File
@@ -656,18 +656,7 @@ EOF
test -z "${NON_ALLOC_DYN}" || emit_dyn
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
+2 -9
View File
@@ -328,16 +328,9 @@ cat <<EOF
EOF
fi
cat <<EOF
. $srcdir/scripttempl/misc-sections.sc
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
cat <<EOF
.note.gnu.build-id ${RELOCATING-0} : { *(.note.gnu.build-id) }
EOF
+8
View File
@@ -38,5 +38,13 @@ SECTIONS
${RELOCATING+*(COMMON)}
${RELOCATING+end = .;}
}
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
}
EOF
+1 -14
View File
@@ -722,20 +722,7 @@ EOF
test -z "${NON_ALLOC_DYN}" || emit_dyn
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.gnu.build.attributes : { *(.gnu.build.attributes${RELOCATING+ .gnu.build.attributes.*}) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
+1 -2
View File
@@ -169,10 +169,9 @@ SECTIONS
__ISTACK_START = .;
}${RELOCATING+ > ram}
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -2
View File
@@ -167,10 +167,9 @@ SECTIONS
__ISTACK_START = .;
} > ram
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -8
View File
@@ -330,16 +330,9 @@ SECTIONS
/* Stabs for profiling information*/
.profiler 0 : { *(.profiler) }
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
test -n "${RELOCATING}" && cat <<EOF
+1 -14
View File
@@ -679,20 +679,7 @@ EOF
test -z "${NON_ALLOC_DYN}" || emit_dyn
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.gnu.build.attributes : { *(.gnu.build.attributes${RELOCATING+ .gnu.build.attributes.*}) }
EOF
. $srcdir/scripttempl/misc-sections.sc
cat <<EOF
${ATTRS_SECTIONS}
+1 -13
View File
@@ -533,19 +533,7 @@ if test -n "${NON_ALLOC_DYN}"; then
rm -f ldscripts/dyntmp.$$
fi
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -10
View File
@@ -325,18 +325,9 @@ cat <<EOF
${RELOCATING+PROVIDE (end = .);}
${STACK_ADDR+${STACK}}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -13
View File
@@ -409,19 +409,7 @@ test -n "${RELOCATING}" && cat <<EOF
}
EOF
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.note.gnu.build-id : { *(.note.gnu.build-id) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -9
View File
@@ -291,18 +291,10 @@ SECTIONS
${RELOCATING+ PROVIDE (__stack_top = (ORIGIN (${DATA_MEMORY}) + LENGTH (${DATA_MEMORY}) - 1) & -4);}
${RELOCATING+ PROVIDE (__end_heap = ORIGIN (${DATA_MEMORY}) + LENGTH (${DATA_MEMORY}) - 1);}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.note.gnu.build-id : { *(.note.gnu.build-id) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -10
View File
@@ -172,18 +172,9 @@ SECTIONS
${RELOCATING+$STACK}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -10
View File
@@ -197,18 +197,9 @@ SECTIONS
${RELOCATING+ PROVIDE (__eit_end = .) ; }
} ${RELOCATING+ > eit}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -10
View File
@@ -428,18 +428,9 @@ SECTIONS
${RELOCATING+${VECTORS}}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+3 -9
View File
@@ -430,17 +430,11 @@ SECTIONS
} ${RELOCATING+ > ${EEPROM_MEMORY}}
${RELOCATING+${VECTORS}}
EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
. $srcdir/scripttempl/misc-sections.sc
cat <<EOF
/* Treatment of DWARF debug section must be at end of the linker
script to avoid problems when there are undefined symbols. It's necessary
to avoid that the DWARF section is relocated before such undefined
+3 -9
View File
@@ -420,17 +420,11 @@ SECTIONS
} ${RELOCATING+ > ${EEPROM_MEMORY}}
${RELOCATING+${VECTORS}}
EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
. $srcdir/scripttempl/misc-sections.sc
cat <<EOF
/* Treatment of DWARF debug section must be at end of the linker
script to avoid problems when there are undefined symbols. It's necessary
to avoid that the DWARF section is relocated before such undefined
+6
View File
@@ -232,5 +232,11 @@ SECTIONS
${RELOCATING+*(.tbss.*)}
${RELOCATING+*(.gnu.linkonce.tb.*)}
}
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
}
EOF
+1 -11
View File
@@ -430,19 +430,9 @@ SECTIONS
} ${RELOCATING+ > ${EEPROM_MEMORY}}
${RELOCATING+${VECTORS}}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -12
View File
@@ -543,18 +543,7 @@ if test -n "${NON_ALLOC_DYN}"; then
rm -f ldscripts/dyntmp.$$
fi
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
+1 -12
View File
@@ -626,18 +626,7 @@ if test -n "${NON_ALLOC_DYN}"; then
rm -f ldscripts/dyntmp.$$
fi
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
-5
View File
@@ -69,10 +69,5 @@ SECTIONS
{
*(.stabstr)
}
EOF
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
}
EOF
+2 -9
View File
@@ -135,17 +135,10 @@ SECTIONS
/* Stack. */
PROVIDE (__stack = 0x01000FFF);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+2 -10
View File
@@ -406,18 +406,10 @@ cat <<EOF
${RELOCATING+_end = .;}
${RELOCATING+PROVIDE (end = .);}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+2 -10
View File
@@ -406,18 +406,10 @@ cat <<EOF
${RELOCATING+PROVIDE (end = .);}
${RELOCATING+${DATA_SEGMENT_END}}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+20
View File
@@ -0,0 +1,20 @@
# Copyright (C) 2014-2023 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.
#
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment : { *(.comment); LINKER_VERSION; }
.gnu.build.attributes : { *(.gnu.build.attributes${RELOCATING+ .gnu.build.attributes.*}) }
EOF
+1 -12
View File
@@ -601,18 +601,7 @@ EOF
test -z "${NON_ALLOC_DYN}" || emit_dyn
cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
+2 -8
View File
@@ -201,17 +201,11 @@ SECTIONS
place it in the target dmem memory. */
.pru_irq_map 0 : { *(.pru_irq_map) }
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.note.gnu.build-id ${RELOCATING-0} : { *(.note.gnu.build-id) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+2 -9
View File
@@ -196,17 +196,10 @@ SECTIONS
.note.renesas 0 : { KEEP(*(.note.renesas)) }
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+2 -9
View File
@@ -216,17 +216,10 @@ SECTIONS
.note.renesas 0 : { KEEP(*(.note.renesas)) }
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+1 -1
View File
@@ -163,7 +163,7 @@ SECTIONS
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.comment 0 : { *(.comment); LINKER_VERSION; }
EOF
+2 -11
View File
@@ -203,19 +203,10 @@ SECTIONS
${RELOCATING+PROVIDE (etext = .);}
${RELOCATING+${OTHER_READONLY_SECTIONS}}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
+6
View File
@@ -49,5 +49,11 @@ SECTIONS
*(bss)
${RELOCATING+ __Hbss = .;}
}
EOF
. $srcdir/scripttempl/misc-sections.sc
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
}
EOF
+8
View File
@@ -0,0 +1,8 @@
# source: data.s
# ld: --enable-linker-version -e 0
# readelf: -p.comment
# target: [is_elf_format]
# skip: ft32-*-* pru-*-*
String dump of section '.comment':
.*GNU ld \(GNU Binutils\) 2.*
+7
View File
@@ -0,0 +1,7 @@
# source: data.s
# ld: --enable-linker-version -T ld-version.t
# readelf: -p.comment
# target: [is_elf_format]
String dump of section '.comment':
.*GNU ld \(GNU Binutils\) 2.*
+9
View File
@@ -0,0 +1,9 @@
SECTIONS
{
.comment :
{
*(.comment);
LINKER_VERSION;
}
/DISCARD/ : { *(*) }
}
+2
View File
@@ -231,6 +231,8 @@ run_dump_test "asciz"
run_dump_test "align-with-input"
run_dump_test "pr20302"
run_dump_test "output-section-types"
run_dump_test "ld-version"
run_dump_test "ld-version-2"
run_dump_test "segment-start" {{name (default)}}
run_dump_test "segment-start" {{name (overridden)} \