toolchain: binutils: remove old versions
Oldest supported release is 2.44 for upcoming release (25.12). Signed-off-by: Konstantin Demin <rockdrilla@gmail.com> Link: https://github.com/openwrt/openwrt/pull/21997 Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
parent
b6b09a2ad8
commit
a368faf2e1
@ -6,14 +6,6 @@ choice
|
|||||||
help
|
help
|
||||||
Select the version of binutils you wish to use.
|
Select the version of binutils you wish to use.
|
||||||
|
|
||||||
config BINUTILS_USE_VERSION_2_42
|
|
||||||
bool "Binutils 2.42"
|
|
||||||
select BINUTILS_VERSION_2_42
|
|
||||||
|
|
||||||
config BINUTILS_USE_VERSION_2_43
|
|
||||||
bool "Binutils 2.43.1"
|
|
||||||
select BINUTILS_VERSION_2_43
|
|
||||||
|
|
||||||
config BINUTILS_USE_VERSION_2_44
|
config BINUTILS_USE_VERSION_2_44
|
||||||
bool "Binutils 2.44"
|
bool "Binutils 2.44"
|
||||||
select BINUTILS_VERSION_2_44
|
select BINUTILS_VERSION_2_44
|
||||||
|
|||||||
@ -1,10 +1,4 @@
|
|||||||
|
|
||||||
config BINUTILS_VERSION_2_42
|
|
||||||
bool
|
|
||||||
|
|
||||||
config BINUTILS_VERSION_2_43
|
|
||||||
bool
|
|
||||||
|
|
||||||
config BINUTILS_VERSION_2_44
|
config BINUTILS_VERSION_2_44
|
||||||
default y if !TOOLCHAINOPTS
|
default y if !TOOLCHAINOPTS
|
||||||
bool
|
bool
|
||||||
@ -14,7 +8,5 @@ config BINUTILS_VERSION_2_45
|
|||||||
|
|
||||||
config BINUTILS_VERSION
|
config BINUTILS_VERSION
|
||||||
string
|
string
|
||||||
default "2.42" if BINUTILS_VERSION_2_42
|
|
||||||
default "2.43.1" if BINUTILS_VERSION_2_43
|
|
||||||
default "2.44" if BINUTILS_VERSION_2_44
|
default "2.44" if BINUTILS_VERSION_2_44
|
||||||
default "2.45.1" if BINUTILS_VERSION_2_45
|
default "2.45.1" if BINUTILS_VERSION_2_45
|
||||||
|
|||||||
@ -16,14 +16,6 @@ PKG_CPE_ID:=cpe:/a:gnu:binutils
|
|||||||
|
|
||||||
TAR_OPTIONS += --exclude='*.rej'
|
TAR_OPTIONS += --exclude='*.rej'
|
||||||
|
|
||||||
ifeq ($(PKG_VERSION),2.42)
|
|
||||||
PKG_HASH:=f6e4d41fd5fc778b06b7891457b3620da5ecea1006c6a4a41ae998109f85a800
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PKG_VERSION),2.43.1)
|
|
||||||
PKG_HASH:=13f74202a3c4c51118b797a39ea4200d3f6cfbe224da6d1d95bb938480132dfd
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PKG_VERSION),2.44)
|
ifeq ($(PKG_VERSION),2.44)
|
||||||
PKG_HASH:=ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237
|
PKG_HASH:=ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237
|
||||||
endif
|
endif
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,218 +0,0 @@
|
|||||||
From 3c6c32951e292a51ede70b8087bb0308d7dbc4fc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alan Modra <amodra@gmail.com>
|
|
||||||
Date: Thu, 28 Mar 2024 20:33:32 +1030
|
|
||||||
Subject: [PATCH 2/2] PR 30569, delete _bfd_mips_elf_early_size_sections
|
|
||||||
|
|
||||||
PR30569 was triggered by a patch of mine 6540edd52cc0 moving the call
|
|
||||||
to always_size_sections in bfd_elf_size_dynamic_sections earlier, made
|
|
||||||
to support the x86 DT_RELR implementation. This broke mips16 code
|
|
||||||
handling stubs when --export-dynamic is passed to the linker, because
|
|
||||||
numerous symbols then became dynamic after always_size_sections. The
|
|
||||||
mips backend fiddles with symbols in its always_size_sections. Maciej
|
|
||||||
in 902e9fc76a0e had moved the call to always_size_sections to after
|
|
||||||
the export-dynamic code. Prior to that, Nathan in 04c3a75556c0 moved
|
|
||||||
it before the exec stack code, back to the start of
|
|
||||||
bfd_elf_size_dynamic_sections which was where Ian put it originally
|
|
||||||
in ff12f303355b. So the call has moved around a little. I'm leaving
|
|
||||||
it where it is, and instead calling mips_elf_check_symbols from
|
|
||||||
late_size_sections (the old size_dynamic_sections) which is now always
|
|
||||||
called. In fact, the whole of _bfd_mips_elf_early_size_sections can
|
|
||||||
be merged into _bfd_mips_elf_late_size_sections.
|
|
||||||
---
|
|
||||||
bfd/elf32-mips.c | 1 -
|
|
||||||
bfd/elf64-mips.c | 2 --
|
|
||||||
bfd/elfn32-mips.c | 1 -
|
|
||||||
bfd/elfxx-mips.c | 84 +++++++++++++++++++----------------------------
|
|
||||||
bfd/elfxx-mips.h | 2 --
|
|
||||||
5 files changed, 34 insertions(+), 56 deletions(-)
|
|
||||||
|
|
||||||
--- a/bfd/elf32-mips.c
|
|
||||||
+++ b/bfd/elf32-mips.c
|
|
||||||
@@ -2537,7 +2537,6 @@ static const struct ecoff_debug_swap mip
|
|
||||||
#define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag
|
|
||||||
#define elf_backend_adjust_dynamic_symbol \
|
|
||||||
_bfd_mips_elf_adjust_dynamic_symbol
|
|
||||||
-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections
|
|
||||||
#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections
|
|
||||||
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
|
|
||||||
#define elf_backend_relocate_section _bfd_mips_elf_relocate_section
|
|
||||||
--- a/bfd/elf64-mips.c
|
|
||||||
+++ b/bfd/elf64-mips.c
|
|
||||||
@@ -4748,8 +4748,6 @@ const struct elf_size_info mips_elf64_si
|
|
||||||
#define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag
|
|
||||||
#define elf_backend_adjust_dynamic_symbol \
|
|
||||||
_bfd_mips_elf_adjust_dynamic_symbol
|
|
||||||
-#define elf_backend_early_size_sections \
|
|
||||||
- _bfd_mips_elf_early_size_sections
|
|
||||||
#define elf_backend_late_size_sections \
|
|
||||||
_bfd_mips_elf_late_size_sections
|
|
||||||
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
|
|
||||||
--- a/bfd/elfn32-mips.c
|
|
||||||
+++ b/bfd/elfn32-mips.c
|
|
||||||
@@ -4138,7 +4138,6 @@ static const struct ecoff_debug_swap mip
|
|
||||||
#define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag
|
|
||||||
#define elf_backend_adjust_dynamic_symbol \
|
|
||||||
_bfd_mips_elf_adjust_dynamic_symbol
|
|
||||||
-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections
|
|
||||||
#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections
|
|
||||||
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
|
|
||||||
#define elf_backend_relocate_section _bfd_mips_elf_relocate_section
|
|
||||||
--- a/bfd/elfxx-mips.c
|
|
||||||
+++ b/bfd/elfxx-mips.c
|
|
||||||
@@ -9644,48 +9644,6 @@ _bfd_mips_elf_adjust_dynamic_symbol (str
|
|
||||||
return _bfd_elf_adjust_dynamic_copy (info, h, s);
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* This function is called after all the input files have been read,
|
|
||||||
- and the input sections have been assigned to output sections. We
|
|
||||||
- check for any mips16 stub sections that we can discard. */
|
|
||||||
-
|
|
||||||
-bool
|
|
||||||
-_bfd_mips_elf_early_size_sections (bfd *output_bfd,
|
|
||||||
- struct bfd_link_info *info)
|
|
||||||
-{
|
|
||||||
- asection *sect;
|
|
||||||
- struct mips_elf_link_hash_table *htab;
|
|
||||||
- struct mips_htab_traverse_info hti;
|
|
||||||
-
|
|
||||||
- htab = mips_elf_hash_table (info);
|
|
||||||
- BFD_ASSERT (htab != NULL);
|
|
||||||
-
|
|
||||||
- /* The .reginfo section has a fixed size. */
|
|
||||||
- sect = bfd_get_section_by_name (output_bfd, ".reginfo");
|
|
||||||
- if (sect != NULL)
|
|
||||||
- {
|
|
||||||
- bfd_set_section_size (sect, sizeof (Elf32_External_RegInfo));
|
|
||||||
- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* The .MIPS.abiflags section has a fixed size. */
|
|
||||||
- sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags");
|
|
||||||
- if (sect != NULL)
|
|
||||||
- {
|
|
||||||
- bfd_set_section_size (sect, sizeof (Elf_External_ABIFlags_v0));
|
|
||||||
- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- hti.info = info;
|
|
||||||
- hti.output_bfd = output_bfd;
|
|
||||||
- hti.error = false;
|
|
||||||
- mips_elf_link_hash_traverse (mips_elf_hash_table (info),
|
|
||||||
- mips_elf_check_symbols, &hti);
|
|
||||||
- if (hti.error)
|
|
||||||
- return false;
|
|
||||||
-
|
|
||||||
- return true;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
/* If the link uses a GOT, lay it out and work out its size. */
|
|
||||||
|
|
||||||
static bool
|
|
||||||
@@ -9990,7 +9948,8 @@ mips_elf_set_plt_sym_value (struct mips_
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* Set the sizes of the dynamic sections. */
|
|
||||||
+/* Set the sizes of the dynamic sections, some mips non-dynamic sections,
|
|
||||||
+ and check for any mips16 stub sections that we can discard. */
|
|
||||||
|
|
||||||
bool
|
|
||||||
_bfd_mips_elf_late_size_sections (bfd *output_bfd,
|
|
||||||
@@ -10000,14 +9959,39 @@ _bfd_mips_elf_late_size_sections (bfd *o
|
|
||||||
asection *s, *sreldyn;
|
|
||||||
bool reltext;
|
|
||||||
struct mips_elf_link_hash_table *htab;
|
|
||||||
+ struct mips_htab_traverse_info hti;
|
|
||||||
|
|
||||||
htab = mips_elf_hash_table (info);
|
|
||||||
BFD_ASSERT (htab != NULL);
|
|
||||||
- dynobj = elf_hash_table (info)->dynobj;
|
|
||||||
+
|
|
||||||
+ /* The .reginfo section has a fixed size. */
|
|
||||||
+ s = bfd_get_section_by_name (output_bfd, ".reginfo");
|
|
||||||
+ if (s != NULL)
|
|
||||||
+ {
|
|
||||||
+ bfd_set_section_size (s, sizeof (Elf32_External_RegInfo));
|
|
||||||
+ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* The .MIPS.abiflags section has a fixed size. */
|
|
||||||
+ s = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags");
|
|
||||||
+ if (s != NULL)
|
|
||||||
+ {
|
|
||||||
+ bfd_set_section_size (s, sizeof (Elf_External_ABIFlags_v0));
|
|
||||||
+ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ hti.info = info;
|
|
||||||
+ hti.output_bfd = output_bfd;
|
|
||||||
+ hti.error = false;
|
|
||||||
+ mips_elf_link_hash_traverse (htab, mips_elf_check_symbols, &hti);
|
|
||||||
+ if (hti.error)
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
+ dynobj = htab->root.dynobj;
|
|
||||||
if (dynobj == NULL)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
- if (elf_hash_table (info)->dynamic_sections_created)
|
|
||||||
+ if (htab->root.dynamic_sections_created)
|
|
||||||
{
|
|
||||||
/* Set the contents of the .interp section to the interpreter. */
|
|
||||||
if (bfd_link_executable (info) && !info->nointerp)
|
|
||||||
@@ -10147,7 +10131,7 @@ _bfd_mips_elf_late_size_sections (bfd *o
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (bfd_link_executable (info)
|
|
||||||
- && ! mips_elf_hash_table (info)->use_rld_obj_head
|
|
||||||
+ && !htab->use_rld_obj_head
|
|
||||||
&& startswith (name, ".rld_map"))
|
|
||||||
{
|
|
||||||
/* We add a room for __rld_map. It will be filled in by the
|
|
||||||
@@ -10156,7 +10140,7 @@ _bfd_mips_elf_late_size_sections (bfd *o
|
|
||||||
}
|
|
||||||
else if (SGI_COMPAT (output_bfd)
|
|
||||||
&& startswith (name, ".compact_rel"))
|
|
||||||
- s->size += mips_elf_hash_table (info)->compact_rel_size;
|
|
||||||
+ s->size += htab->compact_rel_size;
|
|
||||||
else if (s == htab->root.splt)
|
|
||||||
{
|
|
||||||
/* If the last PLT entry has a branch delay slot, allocate
|
|
||||||
@@ -10196,7 +10180,7 @@ _bfd_mips_elf_late_size_sections (bfd *o
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (elf_hash_table (info)->dynamic_sections_created)
|
|
||||||
+ if (htab->root.dynamic_sections_created)
|
|
||||||
{
|
|
||||||
/* Add some entries to the .dynamic section. We fill in the
|
|
||||||
values later, in _bfd_mips_elf_finish_dynamic_sections, but we
|
|
||||||
@@ -14939,7 +14923,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str
|
|
||||||
input_section->flags &= ~SEC_HAS_CONTENTS;
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* Size has been set in _bfd_mips_elf_early_size_sections. */
|
|
||||||
+ /* Size has been set in _bfd_mips_elf_late_size_sections. */
|
|
||||||
BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0));
|
|
||||||
|
|
||||||
/* Skip this section later on (I don't think this currently
|
|
||||||
@@ -14998,7 +14982,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str
|
|
||||||
input_section->flags &= ~SEC_HAS_CONTENTS;
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* Size has been set in _bfd_mips_elf_early_size_sections. */
|
|
||||||
+ /* Size has been set in _bfd_mips_elf_late_size_sections. */
|
|
||||||
BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo));
|
|
||||||
|
|
||||||
/* Skip this section later on (I don't think this currently
|
|
||||||
--- a/bfd/elfxx-mips.h
|
|
||||||
+++ b/bfd/elfxx-mips.h
|
|
||||||
@@ -67,8 +67,6 @@ extern bool _bfd_mips_elf_check_relocs
|
|
||||||
(bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
|
|
||||||
extern bool _bfd_mips_elf_adjust_dynamic_symbol
|
|
||||||
(struct bfd_link_info *, struct elf_link_hash_entry *);
|
|
||||||
-extern bool _bfd_mips_elf_early_size_sections
|
|
||||||
- (bfd *, struct bfd_link_info *);
|
|
||||||
extern bool _bfd_mips_elf_late_size_sections
|
|
||||||
(bfd *, struct bfd_link_info *);
|
|
||||||
extern int _bfd_mips_elf_relocate_section
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
From 8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sam James <sam@gentoo.org>
|
|
||||||
Date: Sat, 16 Nov 2024 05:03:52 +0000
|
|
||||||
Subject: [PATCH] opcodes: fix -std=gnu23 compatibility wrt static_assert
|
|
||||||
|
|
||||||
static_assert is declared in C23 so we can't reuse that identifier:
|
|
||||||
* Define our own static_assert conditionally;
|
|
||||||
|
|
||||||
* Rename "static assert" hacks to _N as we do already in some places
|
|
||||||
to avoid a conflict.
|
|
||||||
|
|
||||||
ChangeLog:
|
|
||||||
PR ld/32372
|
|
||||||
|
|
||||||
* i386-gen.c (static_assert): Define conditionally.
|
|
||||||
* mips-formats.h (MAPPED_INT): Rename identifier.
|
|
||||||
(MAPPED_REG): Rename identifier.
|
|
||||||
(OPTIONAL_MAPPED_REG): Rename identifier.
|
|
||||||
* s390-opc.c (static_assert): Define conditionally.
|
|
||||||
---
|
|
||||||
opcodes/i386-gen.c | 2 ++
|
|
||||||
opcodes/mips-formats.h | 6 +++---
|
|
||||||
opcodes/s390-opc.c | 2 ++
|
|
||||||
3 files changed, 7 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
--- a/opcodes/i386-gen.c
|
|
||||||
+++ b/opcodes/i386-gen.c
|
|
||||||
@@ -30,7 +30,9 @@
|
|
||||||
|
|
||||||
/* Build-time checks are preferrable over runtime ones. Use this construct
|
|
||||||
in preference where possible. */
|
|
||||||
+#ifndef static_assert
|
|
||||||
#define static_assert(e) ((void)sizeof (struct { int _:1 - 2 * !(e); }))
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
static const char *program_name = NULL;
|
|
||||||
static int debug = 0;
|
|
||||||
--- a/opcodes/mips-formats.h
|
|
||||||
+++ b/opcodes/mips-formats.h
|
|
||||||
@@ -49,7 +49,7 @@
|
|
||||||
#define MAPPED_INT(SIZE, LSB, MAP, PRINT_HEX) \
|
|
||||||
{ \
|
|
||||||
typedef char ATTRIBUTE_UNUSED \
|
|
||||||
- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
+ static_assert_3[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
static const struct mips_mapped_int_operand op = { \
|
|
||||||
{ OP_MAPPED_INT, SIZE, LSB }, MAP, PRINT_HEX \
|
|
||||||
}; \
|
|
||||||
@@ -83,7 +83,7 @@
|
|
||||||
#define MAPPED_REG(SIZE, LSB, BANK, MAP) \
|
|
||||||
{ \
|
|
||||||
typedef char ATTRIBUTE_UNUSED \
|
|
||||||
- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
+ static_assert_4[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
static const struct mips_reg_operand op = { \
|
|
||||||
{ OP_REG, SIZE, LSB }, OP_REG_##BANK, MAP \
|
|
||||||
}; \
|
|
||||||
@@ -93,7 +93,7 @@
|
|
||||||
#define OPTIONAL_MAPPED_REG(SIZE, LSB, BANK, MAP) \
|
|
||||||
{ \
|
|
||||||
typedef char ATTRIBUTE_UNUSED \
|
|
||||||
- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
+ static_assert_5[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
static const struct mips_reg_operand op = { \
|
|
||||||
{ OP_OPTIONAL_REG, SIZE, LSB }, OP_REG_##BANK, MAP \
|
|
||||||
}; \
|
|
||||||
--- a/opcodes/s390-opc.c
|
|
||||||
+++ b/opcodes/s390-opc.c
|
|
||||||
@@ -36,7 +36,9 @@
|
|
||||||
|
|
||||||
/* Build-time checks are preferrable over runtime ones. Use this construct
|
|
||||||
in preference where possible. */
|
|
||||||
+#ifndef static_assert
|
|
||||||
#define static_assert(e) ((void)sizeof (struct { int _:1 - 2 * !(e); }))
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
|
||||||
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
--- a/ld/Makefile.am
|
|
||||||
+++ b/ld/Makefile.am
|
|
||||||
@@ -50,7 +50,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CFLAGS)
|
|
||||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
|
||||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
|
||||||
# directives need to be different for native and cross linkers.
|
|
||||||
-scriptdir = $(tooldir)/lib
|
|
||||||
+scriptdir = $(libdir)
|
|
||||||
|
|
||||||
EMUL = @EMUL@
|
|
||||||
EMULATION_OFILES = @EMULATION_OFILES@
|
|
||||||
--- a/ld/Makefile.in
|
|
||||||
+++ b/ld/Makefile.in
|
|
||||||
@@ -583,7 +583,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CFLAGS)
|
|
||||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
|
||||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
|
||||||
# directives need to be different for native and cross linkers.
|
|
||||||
-scriptdir = $(tooldir)/lib
|
|
||||||
+scriptdir = $(libdir)
|
|
||||||
BASEDIR = $(srcdir)/..
|
|
||||||
BFDDIR = $(BASEDIR)/bfd
|
|
||||||
INCDIR = $(BASEDIR)/include
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
--- a/bfd/elfxx-mips.c
|
|
||||||
+++ b/bfd/elfxx-mips.c
|
|
||||||
@@ -8149,6 +8149,7 @@ _bfd_mips_elf_create_dynamic_sections (b
|
|
||||||
|
|
||||||
name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
|
|
||||||
bh = NULL;
|
|
||||||
+ if (0) {
|
|
||||||
if (!(_bfd_generic_link_add_one_symbol
|
|
||||||
(info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
|
|
||||||
NULL, false, get_elf_backend_data (abfd)->collect, &bh)))
|
|
||||||
@@ -8161,6 +8162,7 @@ _bfd_mips_elf_create_dynamic_sections (b
|
|
||||||
|
|
||||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
|
||||||
return false;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (! mips_elf_hash_table (info)->use_rld_obj_head)
|
|
||||||
{
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
--- a/bfd/config.bfd
|
|
||||||
+++ b/bfd/config.bfd
|
|
||||||
@@ -962,8 +962,8 @@ case "${targ}" in
|
|
||||||
want64=true
|
|
||||||
;;
|
|
||||||
mips64*el-*-linux*)
|
|
||||||
- targ_defvec=mips_elf32_ntrad_le_vec
|
|
||||||
- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
|
|
||||||
+ targ_defvec=mips_elf64_trad_le_vec
|
|
||||||
+ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
|
|
||||||
;;
|
|
||||||
mips64*-*-linux*-gnuabi64)
|
|
||||||
targ_defvec=mips_elf64_trad_be_vec
|
|
||||||
@@ -971,8 +971,8 @@ case "${targ}" in
|
|
||||||
want64=true
|
|
||||||
;;
|
|
||||||
mips64*-*-linux*)
|
|
||||||
- targ_defvec=mips_elf32_ntrad_be_vec
|
|
||||||
- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
|
|
||||||
+ targ_defvec=mips_elf64_trad_be_vec
|
|
||||||
+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
|
|
||||||
;;
|
|
||||||
mips*el-*-linux*)
|
|
||||||
targ_defvec=mips_elf32_trad_le_vec
|
|
||||||
--- a/ld/configure.tgt
|
|
||||||
+++ b/ld/configure.tgt
|
|
||||||
@@ -597,8 +597,8 @@ mips64*el-*-linux-gnuabi64)
|
|
||||||
targ_extra_emuls="elf64btsmip elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
|
|
||||||
- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
|
|
||||||
+mips64*el-*-linux-*) targ_emul=elf64ltsmip
|
|
||||||
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
mips64*-*-linux-gnuabi64)
|
|
||||||
@@ -606,8 +606,8 @@ mips64*-*-linux-gnuabi64)
|
|
||||||
targ_extra_emuls="elf64ltsmip elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
-mips64*-*-linux-*) targ_emul=elf32btsmipn32
|
|
||||||
- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
|
|
||||||
+mips64*-*-linux-*) targ_emul=elf64btsmip
|
|
||||||
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
mips*el-*-linux-*) targ_emul=elf32ltsmip
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
From 8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sam James <sam@gentoo.org>
|
|
||||||
Date: Sat, 16 Nov 2024 05:03:52 +0000
|
|
||||||
Subject: [PATCH] opcodes: fix -std=gnu23 compatibility wrt static_assert
|
|
||||||
|
|
||||||
static_assert is declared in C23 so we can't reuse that identifier:
|
|
||||||
* Define our own static_assert conditionally;
|
|
||||||
|
|
||||||
* Rename "static assert" hacks to _N as we do already in some places
|
|
||||||
to avoid a conflict.
|
|
||||||
|
|
||||||
ChangeLog:
|
|
||||||
PR ld/32372
|
|
||||||
|
|
||||||
* i386-gen.c (static_assert): Define conditionally.
|
|
||||||
* mips-formats.h (MAPPED_INT): Rename identifier.
|
|
||||||
(MAPPED_REG): Rename identifier.
|
|
||||||
(OPTIONAL_MAPPED_REG): Rename identifier.
|
|
||||||
* s390-opc.c (static_assert): Define conditionally.
|
|
||||||
---
|
|
||||||
opcodes/i386-gen.c | 2 ++
|
|
||||||
opcodes/mips-formats.h | 6 +++---
|
|
||||||
opcodes/s390-opc.c | 2 ++
|
|
||||||
3 files changed, 7 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
--- a/opcodes/i386-gen.c
|
|
||||||
+++ b/opcodes/i386-gen.c
|
|
||||||
@@ -30,7 +30,9 @@
|
|
||||||
|
|
||||||
/* Build-time checks are preferrable over runtime ones. Use this construct
|
|
||||||
in preference where possible. */
|
|
||||||
+#ifndef static_assert
|
|
||||||
#define static_assert(e) ((void)sizeof (struct { int _:1 - 2 * !(e); }))
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
static const char *program_name = NULL;
|
|
||||||
static int debug = 0;
|
|
||||||
--- a/opcodes/mips-formats.h
|
|
||||||
+++ b/opcodes/mips-formats.h
|
|
||||||
@@ -49,7 +49,7 @@
|
|
||||||
#define MAPPED_INT(SIZE, LSB, MAP, PRINT_HEX) \
|
|
||||||
{ \
|
|
||||||
typedef char ATTRIBUTE_UNUSED \
|
|
||||||
- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
+ static_assert_3[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
static const struct mips_mapped_int_operand op = { \
|
|
||||||
{ OP_MAPPED_INT, SIZE, LSB }, MAP, PRINT_HEX \
|
|
||||||
}; \
|
|
||||||
@@ -83,7 +83,7 @@
|
|
||||||
#define MAPPED_REG(SIZE, LSB, BANK, MAP) \
|
|
||||||
{ \
|
|
||||||
typedef char ATTRIBUTE_UNUSED \
|
|
||||||
- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
+ static_assert_4[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
static const struct mips_reg_operand op = { \
|
|
||||||
{ OP_REG, SIZE, LSB }, OP_REG_##BANK, MAP \
|
|
||||||
}; \
|
|
||||||
@@ -93,7 +93,7 @@
|
|
||||||
#define OPTIONAL_MAPPED_REG(SIZE, LSB, BANK, MAP) \
|
|
||||||
{ \
|
|
||||||
typedef char ATTRIBUTE_UNUSED \
|
|
||||||
- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
+ static_assert_5[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
|
|
||||||
static const struct mips_reg_operand op = { \
|
|
||||||
{ OP_OPTIONAL_REG, SIZE, LSB }, OP_REG_##BANK, MAP \
|
|
||||||
}; \
|
|
||||||
--- a/opcodes/s390-opc.c
|
|
||||||
+++ b/opcodes/s390-opc.c
|
|
||||||
@@ -36,7 +36,9 @@
|
|
||||||
|
|
||||||
/* Build-time checks are preferrable over runtime ones. Use this construct
|
|
||||||
in preference where possible. */
|
|
||||||
+#ifndef static_assert
|
|
||||||
#define static_assert(e) ((void)sizeof (struct { int _:1 - 2 * !(e); }))
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
|
||||||
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
--- a/ld/Makefile.am
|
|
||||||
+++ b/ld/Makefile.am
|
|
||||||
@@ -50,7 +50,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CFLAGS)
|
|
||||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
|
||||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
|
||||||
# directives need to be different for native and cross linkers.
|
|
||||||
-scriptdir = $(tooldir)/lib
|
|
||||||
+scriptdir = $(libdir)
|
|
||||||
|
|
||||||
EMUL = @EMUL@
|
|
||||||
EMULATION_OFILES = @EMULATION_OFILES@
|
|
||||||
--- a/ld/Makefile.in
|
|
||||||
+++ b/ld/Makefile.in
|
|
||||||
@@ -583,7 +583,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CFLAGS)
|
|
||||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
|
||||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
|
||||||
# directives need to be different for native and cross linkers.
|
|
||||||
-scriptdir = $(tooldir)/lib
|
|
||||||
+scriptdir = $(libdir)
|
|
||||||
BASEDIR = $(srcdir)/..
|
|
||||||
BFDDIR = $(BASEDIR)/bfd
|
|
||||||
INCDIR = $(BASEDIR)/include
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
--- a/bfd/elfxx-mips.c
|
|
||||||
+++ b/bfd/elfxx-mips.c
|
|
||||||
@@ -8161,6 +8161,7 @@ _bfd_mips_elf_create_dynamic_sections (b
|
|
||||||
|
|
||||||
name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
|
|
||||||
bh = NULL;
|
|
||||||
+ if (0) {
|
|
||||||
if (!(_bfd_generic_link_add_one_symbol
|
|
||||||
(info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
|
|
||||||
NULL, false, get_elf_backend_data (abfd)->collect, &bh)))
|
|
||||||
@@ -8173,6 +8174,7 @@ _bfd_mips_elf_create_dynamic_sections (b
|
|
||||||
|
|
||||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
|
||||||
return false;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (! mips_elf_hash_table (info)->use_rld_obj_head)
|
|
||||||
{
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
--- a/bfd/config.bfd
|
|
||||||
+++ b/bfd/config.bfd
|
|
||||||
@@ -962,8 +962,8 @@ case "${targ}" in
|
|
||||||
want64=true
|
|
||||||
;;
|
|
||||||
mips64*el-*-linux*)
|
|
||||||
- targ_defvec=mips_elf32_ntrad_le_vec
|
|
||||||
- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
|
|
||||||
+ targ_defvec=mips_elf64_trad_le_vec
|
|
||||||
+ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
|
|
||||||
;;
|
|
||||||
mips64*-*-linux*-gnuabi64)
|
|
||||||
targ_defvec=mips_elf64_trad_be_vec
|
|
||||||
@@ -971,8 +971,8 @@ case "${targ}" in
|
|
||||||
want64=true
|
|
||||||
;;
|
|
||||||
mips64*-*-linux*)
|
|
||||||
- targ_defvec=mips_elf32_ntrad_be_vec
|
|
||||||
- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
|
|
||||||
+ targ_defvec=mips_elf64_trad_be_vec
|
|
||||||
+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
|
|
||||||
;;
|
|
||||||
mips*el-*-linux*)
|
|
||||||
targ_defvec=mips_elf32_trad_le_vec
|
|
||||||
--- a/ld/configure.tgt
|
|
||||||
+++ b/ld/configure.tgt
|
|
||||||
@@ -597,8 +597,8 @@ mips64*el-*-linux-gnuabi64)
|
|
||||||
targ_extra_emuls="elf64btsmip elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
|
|
||||||
- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
|
|
||||||
+mips64*el-*-linux-*) targ_emul=elf64ltsmip
|
|
||||||
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
mips64*-*-linux-gnuabi64)
|
|
||||||
@@ -606,8 +606,8 @@ mips64*-*-linux-gnuabi64)
|
|
||||||
targ_extra_emuls="elf64ltsmip elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
-mips64*-*-linux-*) targ_emul=elf32btsmipn32
|
|
||||||
- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
|
|
||||||
+mips64*-*-linux-*) targ_emul=elf64btsmip
|
|
||||||
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
mips*el-*-linux-*) targ_emul=elf32ltsmip
|
|
||||||
Loading…
Reference in New Issue
Block a user