diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2017-05-03 13:13:52 -0700 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2022-11-28 18:16:12 -0800 |
commit | d0a2cfbd3141dae38498fa077b01ae6bb394462b (patch) | |
tree | 8cb6fc2a729622c8b9dd3cbbce771a418e3a088f /ld | |
parent | cb44f89ce977b1ab2d4063f2487950bddfb75bc7 (diff) | |
download | gdb-d0a2cfbd3141dae38498fa077b01ae6bb394462b.zip gdb-d0a2cfbd3141dae38498fa077b01ae6bb394462b.tar.gz gdb-d0a2cfbd3141dae38498fa077b01ae6bb394462b.tar.bz2 |
xtensa: allow dynamic configuration
Import include/xtensa-dynconfig.h that defines XCHAL_* macros as fields
of a structure returned from the xtensa_get_config_v<x> function call.
Define that structure and fill it with default parameter values
specified in the include/xtensa-config.h.
Define reusable function xtensa_load_config that tries to load
configuration and return an address of an exported object from it.
Define functions xtensa_get_config_v{1,2} that use xtensa_load_config
to get structures xtensa_config_v{1,2}, either dynamically configured
or the default.
bfd/
* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Append
xtensa-dynconfig.c.
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac (xtensa_elf32_be_vec, xtensa_elf32_le_vec): Add
xtensa-dynconfig.lo to the tb.
* elf32-xtensa.c (xtensa-config.h): Replace #include with
xtensa-dynconfig.h.
(XSHAL_ABI, XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): Remove
definitions.
* xtensa-dynconfig.c: New file.
* xtensa-isa.c (xtensa-dynconfig.h): New #include.
(xtensa_get_modules): New function.
(xtensa_isa_init): Call xtensa_get_modules instead of taking
address of global xtensa_modules.
gas/
* config/tc-xtensa.c (xtensa-config.h): Replace #include with
xtensa-dynconfig.h.
(XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0, XTENSA_MARCH_EARLIEST):
Remove definitions.
* config/tc-xtensa.h (xtensa-config.h): Replace #include with
xtensa-dynconfig.h.
* config/xtensa-relax.c (xtensa-config.h): Replace #include with
xtensa-dynconfig.h.
(XCHAL_HAVE_WIDE_BRANCHES): Remove definition.
include/
* xtensa-dynconfig.h: New file.
ld/
* emultempl/xtensaelf.em (xtensa-config.h): Replace #include
with xtensa-dynconfig.h.
(XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): Remove definitions.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/emultempl/xtensaelf.em | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em index 9d527da..09ce258 100644 --- a/ld/emultempl/xtensaelf.em +++ b/ld/emultempl/xtensaelf.em @@ -24,7 +24,7 @@ # fragment <<EOF -#include <xtensa-config.h> +#include <xtensa-dynconfig.h> #include "../bfd/elf-bfd.h" #include "elf/xtensa.h" #include "bfd.h" @@ -34,14 +34,6 @@ fragment <<EOF #define XTHAL_ABI_UNDEFINED -1 #endif -#ifndef XTHAL_ABI_WINDOWED -#define XTHAL_ABI_WINDOWED 0 -#endif - -#ifndef XTHAL_ABI_CALL0 -#define XTHAL_ABI_CALL0 1 -#endif - static void xtensa_wild_group_interleave (lang_statement_union_type *); static void xtensa_colocate_output_literals (lang_statement_union_type *); static void xtensa_strip_inconsistent_linkonce_sections |