/* Xtensa-specific support for 32-bit ELF.
- Copyright (C) 2003-2022 Free Software Foundation, Inc.
+ Copyright (C) 2003-2023 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
#include "elf/xtensa.h"
#include "splay-tree.h"
#include "xtensa-isa.h"
-#include "xtensa-config.h"
+#include "xtensa-dynconfig.h"
/* All users of this file have bfd_octets_per_byte (abfd, sec) == 1. */
#define OCTETS_PER_BYTE(ABFD, SEC) 1
#define XTENSA_NO_NOP_REMOVAL 0
-#ifndef XSHAL_ABI
-#define XSHAL_ABI 0
-#endif
-
#ifndef XTHAL_ABI_UNDEFINED
#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
-
/* Local helper functions. */
static bool add_extra_plt_sections (struct bfd_link_info *, int);
(if undefined or weak). */
h1 = r_reloc_get_hash_entry (&src1->r_rel);
h2 = r_reloc_get_hash_entry (&src2->r_rel);
+
+ /* Keep start_stop literals always unique to avoid dropping it due to them
+ having late initialization.
+ Now they are equal because initialized with zeroed values. */
+ if (h2 && h2->start_stop)
+ return false;
+
if (r_reloc_is_defined (&src1->r_rel)
&& (final_static_link
|| ((!h1 || h1->root.type != bfd_link_hash_defweak)