diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2018-05-22 21:48:09 -0700 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2018-06-04 10:36:39 -0700 |
commit | 8255c61b8ad5ac933672d26e5c9454aaf09ccaeb (patch) | |
tree | 4943f03256f08b0ec0bd4729b5a5b6eaa8e9616c /gas/config/tc-xtensa.c | |
parent | 95da9854466ada2572b42f5528711a06a2d42db1 (diff) | |
download | gdb-8255c61b8ad5ac933672d26e5c9454aaf09ccaeb.zip gdb-8255c61b8ad5ac933672d26e5c9454aaf09ccaeb.tar.gz gdb-8255c61b8ad5ac933672d26e5c9454aaf09ccaeb.tar.bz2 |
xtensa: add separate property sections option
It is currently not possible to correctly match .xt.prop information
for sections with identical VMA. Allow creation of separate property
sections in the BFD. Add assembler option --separate-prop-tables to
allow creation of separate property sections.
2018-06-04 Volodymyr Arbatov <arbatov@cadence.com>
bfd/
* elf32-xtensa.c (elf32xtensa_separate_props): New global
variable.
(xtensa_add_names): New function.
(xtensa_property_section_name): Add new parameter
separate_sections, use it to choose property section name.
(xtensa_get_separate_property_section): New function.
(xtensa_get_property_section): Invoke
xtensa_get_separate_property_section to get individual property
section if it exists, common property section otherwise.
(xtensa_make_property_section): Pass elf32xtensa_separate_props
to xtensa_property_section_name.
gas/
* config/tc-xtensa.c (elf32xtensa_separate_props): New
declaration.
(option_separate_props, option_no_separate_props): New
enumeration constants.
(md_longopts): Add separate-prop-tables option.
(md_parse_option): Add cases for option_separate_props and
option_no_separate_props.
(md_show_usage): Add help for [no-]separate-prop-tables options.
Diffstat (limited to 'gas/config/tc-xtensa.c')
-rw-r--r-- | gas/config/tc-xtensa.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 84211dd..d3a2f8e 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -637,6 +637,9 @@ static bfd_boolean enforce_three_byte_loop_align = FALSE; static bfd_boolean workaround_all_short_loops = FALSE; +/* Generate individual property section for every section. + This option is defined in BDF library. */ +extern bfd_boolean elf32xtensa_separate_props; static void xtensa_setup_hw_workarounds (int earliest, int latest) @@ -722,6 +725,9 @@ enum option_auto_litpools, option_no_auto_litpools, option_auto_litpool_limit, + + option_separate_props, + option_no_separate_props, }; const char *md_shortopts = ""; @@ -801,6 +807,8 @@ struct option md_longopts[] = { "no-auto-litpools", no_argument, NULL, option_no_auto_litpools }, { "auto-litpool-limit", required_argument, NULL, option_auto_litpool_limit }, + { "separate-prop-tables", no_argument, NULL, option_separate_props }, + { NULL, no_argument, NULL, 0 } }; @@ -1021,6 +1029,14 @@ md_parse_option (int c, const char *arg) return 1; } + case option_separate_props: + elf32xtensa_separate_props = TRUE; + return 1; + + case option_no_separate_props: + elf32xtensa_separate_props = FALSE; + return 1; + default: return 0; } @@ -1051,7 +1067,11 @@ Xtensa options:\n\ --auto-litpool-limit=<value>\n\ (range 100-10000) Maximum number of blocks of\n\ instructions to emit between literal pool\n\ - locations; implies --auto-litpools flag\n", stream); + locations; implies --auto-litpools flag\n\ + --[no-]separate-prop-tables\n\ + [Do not] place Xtensa property records into\n\ + individual property sections for each section.\n\ + Default is to generate single property section.\n", stream); } |