All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/elf2flt: update to version 2023.09
@ 2023-09-12 11:04 Niklas Cassel via buildroot
  2023-09-13  8:15 ` Waldemar Brodkorb
  2023-09-14 20:33 ` Thomas Petazzoni via buildroot
  0 siblings, 2 replies; 3+ messages in thread
From: Niklas Cassel via buildroot @ 2023-09-12 11:04 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Greg Ungerer, Niklas Cassel, Damien Le Moal, Waldemar Brodkorb,
	Jesse T, buildroot

Several of our patches have been accepted upstream and are included in
elf2flt version 2023.09.

Patch 0001-elf2flt-handle-binutils-2.34.patch is upstream as of commit
c70b9f208979 ("elf2flt: handle binutils >= 2.34").

Patch 0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch is
upstream as of commit 679c94adf27c ("elf2flt.ld: reinstate 32 byte
alignment for .data section").

Patch 0003-elf2flt-add-riscv-64-bits-support.patch is upstream as of
commit c5c8043c4d79 ("elf2flt: add riscv 64-bits support").

Patch 0008-riscv64-add-more-relocations-required-to-be-handled.patch was
squashed into upstream commit c5c8043c4d79 ("elf2flt: add riscv 64-bits
support") during upstreaming.

Patch 0006-xtensa-fix-text-relocations.patch is upstream as of commit
26dfb54a59c8 ("elf2flt: xtensa: fix text relocations").

Patch 0007-elf2flt-remove-use-of-BFD_VMA_FMT.patch is upstream as of
commit a36df7407d9e ("elf2flt: remove use of BFD_VMA_FMT").

Patch 0004-elf2flt-create-a-common-helper-function.patch simply added
a helper function to make the changes in the follow-up patch
0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
less intrusive.

Patch 0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
is no longer needed as upstream has reverted the commit that necessitated
this patch, see upstream commit 35c692ca4546 ("Revert "elf2flt: fix for
segfault on some ARM ELFs""). The problem that the reverted upstream patch
solved is now instead solved by the combination of upstream commits
7a59b265c2dc ("Revert "elf2flt: fix relocations for read-only data"") and
a934fb42cf59 ("elf2flt: force ARM.exidx section into text").

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
---
Resending from an email address that is subscribed to the buildroot
mailing list, since my previous mail got rejected.

 .../0001-elf2flt-handle-binutils-2.34.patch   | 377 ------------------
 ...tate-32-byte-alignment-for-.data-sec.patch |  81 ----
 ...03-elf2flt-add-riscv-64-bits-support.patch | 103 -----
 ...2flt-create-a-common-helper-function.patch |  76 ----
 ...l-error-regression-on-m68k-xtensa-ri.patch |  74 ----
 .../0006-xtensa-fix-text-relocations.patch    |  51 ---
 ...07-elf2flt-remove-use-of-BFD_VMA_FMT.patch | 169 --------
 ...e-relocations-required-to-be-handled.patch |  40 --
 package/elf2flt/elf2flt.hash                  |   2 +-
 package/elf2flt/elf2flt.mk                    |   2 +-
 10 files changed, 2 insertions(+), 973 deletions(-)
 delete mode 100644 package/elf2flt/0001-elf2flt-handle-binutils-2.34.patch
 delete mode 100644 package/elf2flt/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch
 delete mode 100644 package/elf2flt/0003-elf2flt-add-riscv-64-bits-support.patch
 delete mode 100644 package/elf2flt/0004-elf2flt-create-a-common-helper-function.patch
 delete mode 100644 package/elf2flt/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
 delete mode 100644 package/elf2flt/0006-xtensa-fix-text-relocations.patch
 delete mode 100644 package/elf2flt/0007-elf2flt-remove-use-of-BFD_VMA_FMT.patch
 delete mode 100644 package/elf2flt/0008-riscv64-add-more-relocations-required-to-be-handled.patch

diff --git a/package/elf2flt/0001-elf2flt-handle-binutils-2.34.patch b/package/elf2flt/0001-elf2flt-handle-binutils-2.34.patch
deleted file mode 100644
index f9e493a761..0000000000
--- a/package/elf2flt/0001-elf2flt-handle-binutils-2.34.patch
+++ /dev/null
@@ -1,377 +0,0 @@
-From 2821fcb55cbe0f2b77237d89b5b3467fb3ad058b Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@smile.fr>
-Date: Wed, 5 Feb 2020 10:31:32 +0100
-Subject: [PATCH] elf2flt: handle binutils >= 2.34
-
-The latest Binutils release (2.34) is not compatible with elf2flt due
-to a change in bfd_section_* macros [1]. The issue has been reported
-to the Binutils mailing list but Alan Modra recommend to bundle
-libbfd library sources into each projects using it [2]. That's
-because the API is not stable over the time without any backward
-compatibility guaranties.
-
-On the other hand, the elf2flt tools needs to support modified
-version of binutils for specific arch/target [3].
-
-Add two tests in the configure script to detect this API change
-in order to support binutils < 2.34 and binutils >= 2.34.
-
-Upstream status: [4]
-
-[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=fd3619828e94a24a92cddec42cbc0ab33352eeb4
-[2] https://sourceware.org/ml/binutils/2020-02/msg00044.html
-[3] https://github.com/uclinux-dev/elf2flt/issues/14
-[4] https://github.com/uclinux-dev/elf2flt/pull/15
-
-Signed-off-by: Romain Naour <romain.naour@smile.fr>
----
- configure.ac | 16 +++++++++++
- elf2flt.c    | 81 +++++++++++++++++++++++++++++-----------------------
- 2 files changed, 61 insertions(+), 36 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index b7db2cb..fdc0876 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -229,6 +229,22 @@ AC_CHECK_FUNCS([ \
- 	strsignal \
- ])
- 
-+dnl Various bfd section macros and functions like bfd_section_size() have been
-+dnl modified starting with binutils >= 2.34.
-+dnl Check if the prototypes take a bfd argument.
-+if test "$binutils_build_dir" != "NONE"; then
-+    CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS"
-+fi
-+
-+AC_TRY_COMPILE([#include <bfd.h>],
-+ [const asection *sec; bfd_section_size(sec);],
-+ bfd_section_api_takes_bfd=no,
-+ bfd_section_api_takes_bfd=yes)
-+if test "$bfd_section_api_takes_bfd" = "yes" ; then
-+  AC_DEFINE(HAVE_BFD_SECTION_API_TAKES_BFD, 1,
-+   [define to 1 for binutils < 2.34])
-+fi
-+
- if test "$GCC" = yes ; then
- 	CFLAGS="-Wall $CFLAGS"
- 	if test "$werror" = 1 ; then
-diff --git a/elf2flt.c b/elf2flt.c
-index 7ac0617..ea6b5a1 100644
---- a/elf2flt.c
-+++ b/elf2flt.c
-@@ -149,6 +149,17 @@ const char *elf2flt_progname;
- #define O_BINARY 0
- #endif
- 
-+/*
-+ * The bfd parameter isn't actually used by any of the bfd_section funcs and
-+ * have been removed since binutils 2.34.
-+ */
-+#ifdef HAVE_BFD_SECTION_API_TAKES_BFD
-+#define elf2flt_bfd_section_size(s) bfd_section_size(NULL, s)
-+#define elf2flt_bfd_section_vma(s)  bfd_section_vma(NULL, s)
-+#else
-+#define elf2flt_bfd_section_size(s) bfd_section_size(s)
-+#define elf2flt_bfd_section_vma(s)  bfd_section_vma(s)
-+#endif
- 
- /* Extra output when running.  */
- static int verbose = 0;
-@@ -323,10 +334,8 @@ compare_relocs (const void *pa, const void *pb)
- 	else if (!rb->sym_ptr_ptr || !*rb->sym_ptr_ptr)
- 		return 1;
- 
--	a_vma = bfd_section_vma(compare_relocs_bfd,
--				(*(ra->sym_ptr_ptr))->section);
--	b_vma = bfd_section_vma(compare_relocs_bfd,
--				(*(rb->sym_ptr_ptr))->section);
-+	a_vma = elf2flt_bfd_section_vma((*(ra->sym_ptr_ptr))->section);
-+	b_vma = elf2flt_bfd_section_vma((*(rb->sym_ptr_ptr))->section);
- 	va = (*(ra->sym_ptr_ptr))->value + a_vma + ra->addend;
- 	vb = (*(rb->sym_ptr_ptr))->value + b_vma + rb->addend;
- 	return va - vb;
-@@ -403,7 +412,7 @@ output_relocs (
-   }
- 
-   for (a = abs_bfd->sections; (a != (asection *) NULL); a = a->next) {
--  	section_vma = bfd_section_vma(abs_bfd, a);
-+	section_vma = elf2flt_bfd_section_vma(a);
- 
- 	if (verbose)
- 		printf("SECTION: %s [%p]: flags=0x%x vma=0x%"PRIx32"\n",
-@@ -443,7 +452,7 @@ output_relocs (
- 	  continue;
- 	if (verbose)
- 	  printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n",
--			r->name, r, r->flags, bfd_section_vma(abs_bfd, r));
-+			r->name, r, r->flags, elf2flt_bfd_section_vma(r));
-   	if ((r->flags & SEC_RELOC) == 0)
-   	  continue;
- 	relsize = bfd_get_reloc_upper_bound(rel_bfd, r);
-@@ -695,7 +704,7 @@ output_relocs (
- 				case R_BFIN_RIMM16:
- 				case R_BFIN_LUIMM16:
- 				case R_BFIN_HUIMM16:
--				    sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+				    sym_vma = elf2flt_bfd_section_vma(sym_section);
- 				    sym_addr += sym_vma + q->addend;
- 
- 				    if (weak_und_symbol(sym_section->name, (*(q->sym_ptr_ptr))))
-@@ -728,7 +737,7 @@ output_relocs (
- 				    break;
- 
- 				case R_BFIN_BYTE4_DATA:
--				    sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+				    sym_vma = elf2flt_bfd_section_vma(sym_section);
- 				    sym_addr += sym_vma + q->addend;
- 
- 				    if (weak_und_symbol (sym_section->name, (*(q->sym_ptr_ptr))))
-@@ -886,7 +895,7 @@ output_relocs (
- #if defined(TARGET_m68k)
- 				case R_68K_32:
- 					relocation_needed = 1;
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					break;
- 				case R_68K_PC16:
-@@ -911,7 +920,7 @@ output_relocs (
- 							q->address, sym_addr,
- 							(*p)->howto->rightshift,
- 							*(uint32_t *)r_mem);
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					break;
- 				case R_ARM_GOT32:
-@@ -939,7 +948,7 @@ output_relocs (
- #ifdef TARGET_v850
- 				case R_V850_ABS32:
- 					relocation_needed = 1;
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					break;
- 				case R_V850_ZDA_16_16_OFFSET:
-@@ -961,7 +970,7 @@ output_relocs (
- 					sym_addr = (*(q->sym_ptr_ptr))->value;
- 					q->address -= 1;
- 					r_mem -= 1; /* tracks q->address */
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					sym_addr |= (*(unsigned char *)r_mem<<24);
- 					break;
-@@ -974,7 +983,7 @@ output_relocs (
- 					/* Absolute symbol done not relocation */
- 					relocation_needed = !bfd_is_abs_section(sym_section);
- 					sym_addr = (*(q->sym_ptr_ptr))->value;
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					break;
- 				case R_H8_DIR32:
-@@ -987,7 +996,7 @@ output_relocs (
- 					}
- 					relocation_needed = 1;
- 					sym_addr = (*(q->sym_ptr_ptr))->value;
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					break;
- 				case R_H8_PCREL16:
-@@ -1013,7 +1022,7 @@ output_relocs (
- #ifdef TARGET_microblaze
- 				case R_MICROBLAZE_64:
- 					/* work out the relocation */
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					/* Write relocated pointer back */
- 					r_mem[2] = (sym_addr >> 24) & 0xff;
-@@ -1027,7 +1036,7 @@ output_relocs (
- 					pflags = 0x80000000;
- 					break;
- 				case R_MICROBLAZE_32:
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					relocation_needed = 1;
- 					break;
-@@ -1059,7 +1068,7 @@ output_relocs (
- 				case R_NIOS2_BFD_RELOC_32:
- 					relocation_needed = 1;
- 					pflags = (FLAT_NIOS2_R_32 << 28);
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					/* modify target, in target order */
- 					*(unsigned long *)r_mem = htoniosl(sym_addr);
-@@ -1069,7 +1078,7 @@ output_relocs (
- 					unsigned long exist_val;
- 					relocation_needed = 1;
- 					pflags = (FLAT_NIOS2_R_CALL26 << 28);
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 
- 					/* modify target, in target order */
-@@ -1100,7 +1109,7 @@ output_relocs (
- 								? FLAT_NIOS2_R_HIADJ_LO : FLAT_NIOS2_R_HI_LO;
- 							pflags <<= 28;
- 
--							sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+							sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
- 							sym_addr += sym_vma + q->addend;
- 
- 							/* modify high 16 bits, in target order */
-@@ -1133,7 +1142,7 @@ output_relocs (
- 						goto NIOS2_RELOC_ERR;
- 					}
- 					/* _gp holds a absolute value, otherwise the ld cannot generate correct code */
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					//printf("sym=%x, %d, _gp=%x, %d\n", sym_addr+sym_vma, sym_addr+sym_vma, gp, gp);
- 					sym_addr += sym_vma + q->addend;
- 					sym_addr -= gp;
-@@ -1214,7 +1223,7 @@ NIOS2_RELOC_ERR:
- 				case R_SPARC_32:
- 				case R_SPARC_UA32:
- 					relocation_needed = 1;
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					break;
- 				case R_SPARC_PC22:
-@@ -1233,7 +1242,7 @@ NIOS2_RELOC_ERR:
- 				case R_SPARC_HI22:
- 					relocation_needed = 1;
- 					pflags = 0x80000000;
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					sym_addr |= (
- 						htonl(*(uint32_t *)r_mem)
-@@ -1243,7 +1252,7 @@ NIOS2_RELOC_ERR:
- 				case R_SPARC_LO10:
- 					relocation_needed = 1;
- 					pflags = 0x40000000;
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					sym_addr &= 0x000003ff;
- 					sym_addr |= (
-@@ -1257,7 +1266,7 @@ NIOS2_RELOC_ERR:
- #ifdef TARGET_sh
- 				case R_SH_DIR32:
- 					relocation_needed = 1;
--					sym_vma = bfd_section_vma(abs_bfd, sym_section);
-+					sym_vma = elf2flt_bfd_section_vma(sym_section);
- 					sym_addr += sym_vma + q->addend;
- 					break;
- 				case R_SH_REL32:
-@@ -1289,7 +1298,7 @@ NIOS2_RELOC_ERR:
- 				case R_E1_CONST31:
- 						relocation_needed = 1;
- 						DBG_E1("Handling Reloc <CONST31>\n");
--						sec_vma = bfd_section_vma(abs_bfd, sym_section);
-+						sec_vma = elf2flt_bfd_section_vma(sym_section);
- 						DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
- 										sec_vma, sym_addr, q->address);
- 						sym_addr = sec_vma + sym_addr;
-@@ -1304,7 +1313,7 @@ NIOS2_RELOC_ERR:
- 						relocation_needed = 0;
- 						DBG_E1("Handling Reloc <CONST31_PCREL>\n");
- 						DBG_E1("DONT RELOCATE AT LOADING\n");
--						sec_vma = bfd_section_vma(abs_bfd, sym_section);
-+						sec_vma = elf2flt_bfd_section_vma(sym_section);
- 						DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
- 										sec_vma, sym_addr, q->address);
- 						sym_addr =  sec_vma + sym_addr;
-@@ -1331,7 +1340,7 @@ NIOS2_RELOC_ERR:
- 						relocation_needed = 0;
- 						DBG_E1("Handling Reloc <DIS29W_PCREL>\n");
- 						DBG_E1("DONT RELOCATE AT LOADING\n");
--						sec_vma = bfd_section_vma(abs_bfd, sym_section);
-+						sec_vma = elf2flt_bfd_section_vma(sym_section);
- 						DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
- 										sec_vma, sym_addr, q->address);
- 						sym_addr =  sec_vma + sym_addr;
-@@ -1364,7 +1373,7 @@ NIOS2_RELOC_ERR:
- 						DBG_E1("Handling Reloc <DIS29B>\n");
- DIS29_RELOCATION:
- 						relocation_needed = 1;
--						sec_vma = bfd_section_vma(abs_bfd, sym_section);
-+						sec_vma = elf2flt_bfd_section_vma(sym_section);
- 						DBG_E1("sec_vma : [0x%x], sym_addr : [0x%08x]\n",
- 										sec_vma, sym_addr);
- 						sym_addr =  sec_vma + sym_addr;
-@@ -1381,7 +1390,7 @@ DIS29_RELOCATION:
- 						relocation_needed = 0;
- 						DBG_E1("Handling Reloc <IMM32_PCREL>\n");
- 						DBG_E1("DONT RELOCATE AT LOADING\n");
--						sec_vma = bfd_section_vma(abs_bfd, sym_section);
-+						sec_vma = elf2flt_bfd_section_vma(sym_section);
- 						DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
- 										sec_vma, sym_addr);
- 						sym_addr =  sec_vma + sym_addr;
-@@ -1407,7 +1416,7 @@ DIS29_RELOCATION:
- 				case R_E1_IMM32:
- 						relocation_needed = 1;
- 						DBG_E1("Handling Reloc <IMM32>\n");
--						sec_vma = bfd_section_vma(abs_bfd, sym_section);
-+						sec_vma = elf2flt_bfd_section_vma(sym_section);
- 						DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
- 										sec_vma, sym_addr);
- 						sym_addr =  sec_vma + sym_addr;
-@@ -1423,7 +1432,7 @@ DIS29_RELOCATION:
- 				case R_E1_WORD:
- 						relocation_needed = 1;
- 						DBG_E1("Handling Reloc <WORD>\n");
--						sec_vma = bfd_section_vma(abs_bfd, sym_section);
-+						sec_vma = elf2flt_bfd_section_vma(sym_section);
- 						DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
- 										sec_vma, sym_addr);
- 						sym_addr =  sec_vma + sym_addr;
-@@ -1450,7 +1459,7 @@ DIS29_RELOCATION:
- 			}
- 
- 			sprintf(&addstr[0], "+0x%lx", sym_addr - (*(q->sym_ptr_ptr))->value -
--					 bfd_section_vma(abs_bfd, sym_section));
-+					 elf2flt_bfd_section_vma(sym_section));
- 
- 
- 			/*
-@@ -1890,8 +1899,8 @@ int main(int argc, char *argv[])
-     } else
-       continue;
- 
--    sec_size = bfd_section_size(abs_bfd, s);
--    sec_vma  = bfd_section_vma(abs_bfd, s);
-+    sec_size = elf2flt_bfd_section_size(s);
-+    sec_vma  = elf2flt_bfd_section_vma(s);
- 
-     if (sec_vma < *vma) {
-       if (*len > 0)
-@@ -1920,7 +1929,7 @@ int main(int argc, char *argv[])
-                     (SEC_DATA | SEC_READONLY | SEC_RELOC)))
-       if (!bfd_get_section_contents(abs_bfd, s,
- 				   text + (s->vma - text_vma), 0,
--				   bfd_section_size(abs_bfd, s)))
-+				   elf2flt_bfd_section_size(s)))
-       {
- 	fatal("read error section %s", s->name);
-       }
-@@ -1950,7 +1959,7 @@ int main(int argc, char *argv[])
-                     (SEC_READONLY | SEC_RELOC)))
-       if (!bfd_get_section_contents(abs_bfd, s,
- 				   data + (s->vma - data_vma), 0,
--				   bfd_section_size(abs_bfd, s)))
-+				   elf2flt_bfd_section_size(s)))
-       {
- 	fatal("read error section %s", s->name);
-       }
--- 
-2.41.0
-
diff --git a/package/elf2flt/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch b/package/elf2flt/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch
deleted file mode 100644
index 8bd0383683..0000000000
--- a/package/elf2flt/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 37b281e4dd0fb5832181e51943a4eb3c74d4f618 Mon Sep 17 00:00:00 2001
-From: Niklas Cassel <niklas.cassel@wdc.com>
-Date: Mon, 4 Apr 2022 15:30:24 +0200
-Subject: [PATCH] elf2flt.ld: reinstate 32 byte alignment for .data section
-
-Commit 8a3e74446fe7 ("allow to build arm flat binaries") moved the
-following commands:
-	. = ALIGN(0x20) ;
-	@SYMBOL_PREFIX@_etext = . ;
-from the .text section to the top level in the SECTIONS node.
-
-The .text output section is being directed to a memory region using the
-"> flatmem :text" output section attribute. Commands in the top level in
-the SECTIONS node are not.
-
-This means that the ALIGN() command is no longer being appended to the
-flatmem memory region, it will simply update the Location Counter.
-
-The heuristic for placing an output section is described here:
-https://sourceware.org/binutils/docs-2.38/ld.html#Output-Section-Address
-
-"If an output memory region is set for the section then it is added to this
-region and its address will be the next free address in that region."
-
-Since the .data section is being directed to the same memory region as the
-.text section, this means that the Location Counter is not used when
-assigning an address to the .data output section, it will simply use the
-next free address.
-
-No longer directing these commands to the flatmem memory region means that
-the .data output section is no longer aligned to a 32 byte boundary.
-
-Before commit 8a3e74446fe7 ("allow to build arm flat binaries"):
-$ readelf -S busybox_unstripped.gdb | grep data
-  [ 3] .data             PROGBITS         0000000000035ac0  00036ac0
-$ readelf -s busybox_unstripped.gdb | grep _etext
- 19286: 0000000000035ac0     0 NOTYPE  GLOBAL DEFAULT    1 _etext
-
-After commit 8a3e74446fe7 ("allow to build arm flat binaries"):
-$ readelf -S busybox_unstripped.gdb | grep data
-  [ 3] .data             PROGBITS         0000000000035ab0  00036ab0
-$ readelf -s busybox_unstripped.gdb | grep _etext
- 19287: 0000000000035ac0     0 NOTYPE  GLOBAL DEFAULT    3 _etext
-
-The .data output section has to be aligned to a 32 byte boundary, see the
-FLAT_DATA_ALIGN 0x20 macro and its usage in fs/binfmt_flat.c:
-https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/binfmt_flat.c?h=v5.17#n59
-
-Readd an explicit ALIGN attribute on the .data section itself, since the
-linker will obey this attribute regardless if being directed to a memory
-region or not. Also remove the ALIGN() command before the .data section,
-since this misleads the reader to think that the Location Counter is used
-when assigning an address to the .data section, when it actually is not.
-
-Fixes: 8a3e74446fe7 ("allow to build arm flat binaries")
-Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
----
- elf2flt.ld.in | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/elf2flt.ld.in b/elf2flt.ld.in
-index 0df999d..e5aea14 100644
---- a/elf2flt.ld.in
-+++ b/elf2flt.ld.in
-@@ -94,12 +94,9 @@ W_RODAT:	*(.gnu.linkonce.r*)
- 		*(.ARM.exidx* .gnu.linkonce.armexidx.*)
- 	} > flatmem
- 	@SYMBOL_PREFIX@__exidx_end = .;
--
--	. = ALIGN(0x20) ;
- 	@SYMBOL_PREFIX@_etext = . ;
- 
--	.data : {
--		. = ALIGN(0x4) ;
-+	.data ALIGN(0x20): {
- 		@SYMBOL_PREFIX@_sdata = . ;
- 		@SYMBOL_PREFIX@__data_start = . ;
- 		@SYMBOL_PREFIX@data_start = . ;
--- 
-2.41.0
-
diff --git a/package/elf2flt/0003-elf2flt-add-riscv-64-bits-support.patch b/package/elf2flt/0003-elf2flt-add-riscv-64-bits-support.patch
deleted file mode 100644
index c2aa538d02..0000000000
--- a/package/elf2flt/0003-elf2flt-add-riscv-64-bits-support.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 1498503bde2a6055a83f1e9f3eaa6f2a104bd597 Mon Sep 17 00:00:00 2001
-From: Damien Le Moal <damien.lemoal@wdc.com>
-Date: Wed, 9 Sep 2020 17:31:33 +0900
-Subject: [PATCH] elf2flt: add riscv 64-bits support
-
-Add support for riscv 64bits ISA by defining the relocation types
-R_RISCV_32_PCREL, R_RISCV_ADD32, R_RISCV_SUB32, R_RISCV_32 and
-R_RISCV_64. riscv64 support also needs the __global_pointer$ symbol to
-be defined right after the relocation tables in the data section. To
-define this symbol, the "RISCV_GP" line prefix is added. The "RISCV_GP"
-string is removed if the target CPU type is riscv64 and the definition
-line is dropped for other CPU types.
-
-With these changes, buildroot and busybox build and run on riscv NOMMU
-systems with Linux kernel including patch 6045ab5fea4c
-("binfmt_flat: do not stop relocating GOT entries prematurely on riscv")
-fixing the binfmt_flat loader. Tested on QEMU and Canaan Kendryte K210
-boards.
-
-This patch is based on earlier work by Christoph Hellwig <hch@lst.de>.
-
-Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
----
- elf2flt.c     | 16 ++++++++++++++++
- elf2flt.ld.in |  1 +
- ld-elf2flt.c  |  8 ++++++++
- 3 files changed, 25 insertions(+)
-
-diff --git a/elf2flt.c b/elf2flt.c
-index ea6b5a1..c2816b6 100644
---- a/elf2flt.c
-+++ b/elf2flt.c
-@@ -81,6 +81,8 @@ const char *elf2flt_progname;
- #include <elf/v850.h>
- #elif defined(TARGET_xtensa)
- #include <elf/xtensa.h>
-+#elif defined(TARGET_riscv64)
-+#include <elf/riscv.h>
- #endif
- 
- #if defined(__MINGW32__)
-@@ -123,6 +125,8 @@ const char *elf2flt_progname;
- #define ARCH	"nios2"
- #elif defined(TARGET_xtensa)
- #define ARCH	"xtensa"
-+#elif defined(TARGET_riscv64)
-+#define ARCH	"riscv64"
- #else
- #error "Don't know how to support your CPU architecture??"
- #endif
-@@ -821,6 +825,18 @@ output_relocs (
- 					goto good_32bit_resolved_reloc;
- 				default:
- 					goto bad_resolved_reloc;
-+#elif defined(TARGET_riscv64)
-+				case R_RISCV_32_PCREL:
-+				case R_RISCV_ADD32:
-+				case R_RISCV_ADD64:
-+				case R_RISCV_SUB32:
-+				case R_RISCV_SUB64:
-+					continue;
-+				case R_RISCV_32:
-+				case R_RISCV_64:
-+					goto good_32bit_resolved_reloc;
-+				default:
-+					goto bad_resolved_reloc;
- #else
- 				default:
- 					/* The default is to assume that the
-diff --git a/elf2flt.ld.in b/elf2flt.ld.in
-index e5aea14..950849e 100644
---- a/elf2flt.ld.in
-+++ b/elf2flt.ld.in
-@@ -106,6 +106,7 @@ W_RODAT:	*(.gnu.linkonce.r*)
- 		. = ALIGN(0x20) ;
- 		LONG(-1)
- 		. = ALIGN(0x20) ;
-+RISCV_GP:	__global_pointer$ = . + 0x800 ;
- R_RODAT:	*(.rodata)
- R_RODAT:	*(.rodata1)
- R_RODAT:	*(.rodata.*)
-diff --git a/ld-elf2flt.c b/ld-elf2flt.c
-index 7cb02d5..75ee1bb 100644
---- a/ld-elf2flt.c
-+++ b/ld-elf2flt.c
-@@ -324,6 +324,14 @@ static int do_final_link(void)
- 		append_option(&other_options, concat(got_offset, "=", buf, NULL));
- 	}
- 
-+	/* riscv adds a global pointer symbol to the linker file with the
-+	   "RISCV_GP:" prefix. Remove the prefix for riscv64 architecture and
-+	   the entire line for other architectures. */
-+	if (streq(TARGET_CPU, "riscv64"))
-+		append_sed(&sed, "^RISCV_GP:", "");
-+	else
-+		append_sed(&sed, "^RISCV_GP:", NULL);
-+
- 	/* Locate the default linker script, if we don't have one provided. */
- 	if (!linker_script)
- 		linker_script = concat(ldscriptpath, "/elf2flt.ld", NULL);
--- 
-2.41.0
-
diff --git a/package/elf2flt/0004-elf2flt-create-a-common-helper-function.patch b/package/elf2flt/0004-elf2flt-create-a-common-helper-function.patch
deleted file mode 100644
index be8d57affa..0000000000
--- a/package/elf2flt/0004-elf2flt-create-a-common-helper-function.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 4f28e4329897b7f23d828b375fb365d0e30c9cb5 Mon Sep 17 00:00:00 2001
-From: Niklas Cassel <niklas.cassel@wdc.com>
-Date: Tue, 9 Aug 2022 12:13:50 +0200
-Subject: [PATCH] elf2flt: create a common helper function
-
-In order to make the code more maintainable,
-move duplicated code to a common helper function.
-
-No functional change intended.
-
-Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
----
- elf2flt.c | 19 +++++++++++--------
- 1 file changed, 11 insertions(+), 8 deletions(-)
-
-diff --git a/elf2flt.c b/elf2flt.c
-index c2816b6..8cd48d9 100644
---- a/elf2flt.c
-+++ b/elf2flt.c
-@@ -346,6 +346,13 @@ compare_relocs (const void *pa, const void *pb)
- }
- #endif
- 
-+static bool
-+ro_reloc_data_section_should_be_in_text(asection *s)
-+{
-+  return (s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
-+	  (SEC_DATA | SEC_READONLY | SEC_RELOC);
-+}
-+
- static uint32_t *
- output_relocs (
-   bfd *abs_bfd,
-@@ -437,8 +444,7 @@ output_relocs (
- 	 */
- 	if ((!pic_with_got || ALWAYS_RELOC_TEXT) &&
- 	    ((a->flags & SEC_CODE) ||
--	    ((a->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
--		         (SEC_DATA | SEC_READONLY | SEC_RELOC))))
-+	     ro_reloc_data_section_should_be_in_text(a)))
- 		sectionp = text + (a->vma - text_vma);
- 	else if (a->flags & SEC_DATA)
- 		sectionp = data + (a->vma - data_vma);
-@@ -1902,8 +1908,7 @@ int main(int argc, char *argv[])
-     bfd_vma sec_vma;
- 
-     if ((s->flags & SEC_CODE) ||
--       ((s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
--                    (SEC_DATA | SEC_READONLY | SEC_RELOC))) {
-+	ro_reloc_data_section_should_be_in_text(s)) {
-       vma = &text_vma;
-       len = &text_len;
-     } else if (s->flags & SEC_DATA) {
-@@ -1941,8 +1946,7 @@ int main(int argc, char *argv[])
-    * data sections.*/
-   for (s = abs_bfd->sections; s != NULL; s = s->next)
-     if ((s->flags & SEC_CODE) ||
--       ((s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
--                    (SEC_DATA | SEC_READONLY | SEC_RELOC)))
-+	ro_reloc_data_section_should_be_in_text(s))
-       if (!bfd_get_section_contents(abs_bfd, s,
- 				   text + (s->vma - text_vma), 0,
- 				   elf2flt_bfd_section_size(s)))
-@@ -1971,8 +1975,7 @@ int main(int argc, char *argv[])
-    * data sections already included in the text output section.*/
-   for (s = abs_bfd->sections; s != NULL; s = s->next)
-     if ((s->flags & SEC_DATA) &&
--       ((s->flags & (SEC_READONLY | SEC_RELOC)) !=
--                    (SEC_READONLY | SEC_RELOC)))
-+	!ro_reloc_data_section_should_be_in_text(s))
-       if (!bfd_get_section_contents(abs_bfd, s,
- 				   data + (s->vma - data_vma), 0,
- 				   elf2flt_bfd_section_size(s)))
--- 
-2.41.0
-
diff --git a/package/elf2flt/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch b/package/elf2flt/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
deleted file mode 100644
index 96befd53d8..0000000000
--- a/package/elf2flt/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 87d45736a6855f2147ef9c88d2bce2cabc84cb52 Mon Sep 17 00:00:00 2001
-From: Niklas Cassel <niklas.cassel@wdc.com>
-Date: Tue, 9 Aug 2022 21:06:05 +0200
-Subject: [PATCH] elf2flt: fix fatal error regression on m68k, xtensa, riscv64
-
-Commit ba379d08bb78 ("elf2flt: fix for segfault on some ARM ELFs")
-changed the condition of which input sections that should be included
-in the .text output section from:
-((a->flags & (SEC_DATA | SEC_READONLY)) == (SEC_DATA | SEC_READONLY))
-to:
-((a->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
-(SEC_DATA | SEC_READONLY | SEC_RELOC))
-
-On ARM, the .eh_frame input section does not have the SEC_RELOC flag set,
-so on ARM, this change caused .eh_frame to move from .text to .data.
-
-However, on e.g. m68k, xtensa and riscv64, the .eh_frame input section
-does have the SEC_RELOC flag set, which means that the change in
-commit ba379d08bb78 ("elf2flt: fix for segfault on some ARM ELFs")
-caused .eh_frame to move in an opposite way, i.e. from .data to .text.
-
-This resulted in a fatal error on m68k, xtensa and riscv64:
-ERROR: text=0x3bab8 overlaps data=0x33f60 ?
-
-This is because elf2flt cannot append to .text after .data has been
-appended to.
-
-Note that the binutils maintainer says that the correct thing is
-to put read-only relocation data sections in .text:
-https://sourceware.org/legacy-ml/binutils/2019-10/msg00132.html
-
-So the proper fix is probably to rewrite elf2flt so that it can append
-to .text after .data has been appended to (which will require elf2flt
-to move/relocate everything that has already been appended to .data,
-since the virtual addresses are contiguous).
-
-However, for now, add an exception for input sections which have all
-three flags SEC_DATA, SEC_READONLY, and SEC_RELOC set, and which have a
-name equal to a problematic input section (.eh_frame, .gcc_except_table).
-That way, we get the same behavior as older elf2flt releases for m68k,
-xtensa and riscv64, where we put read-only relocation data in .data,
-which was working perfectly fine.
-
-This exception will not change any behavior on ARM, as the .eh_frame
-input section does not have flag SEC_RELOC set.
-
-Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
----
- elf2flt.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/elf2flt.c b/elf2flt.c
-index 8cd48d9..60bfa57 100644
---- a/elf2flt.c
-+++ b/elf2flt.c
-@@ -349,8 +349,13 @@ compare_relocs (const void *pa, const void *pb)
- static bool
- ro_reloc_data_section_should_be_in_text(asection *s)
- {
--  return (s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
--	  (SEC_DATA | SEC_READONLY | SEC_RELOC);
-+  if ((s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
-+      (SEC_DATA | SEC_READONLY | SEC_RELOC)) {
-+    if (!strcmp(".eh_frame", s->name) || !strcmp(".gcc_except_table", s->name))
-+      return false;
-+    return true;
-+  }
-+  return false;
- }
- 
- static uint32_t *
--- 
-2.41.0
-
diff --git a/package/elf2flt/0006-xtensa-fix-text-relocations.patch b/package/elf2flt/0006-xtensa-fix-text-relocations.patch
deleted file mode 100644
index 19c47cca90..0000000000
--- a/package/elf2flt/0006-xtensa-fix-text-relocations.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 7e1c17d7fe72a0889d56d5e6a1390d493d1de144 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 29 Nov 2022 17:47:54 -0800
-Subject: [PATCH] xtensa: fix text relocations
-
-The commit 5e08f1968316 ("Don't always update text in !pic_with_got case")
-changed good_32bit_resolved_reloc to not do endianness swapping for
-relocated entries in the text segment. This broke little-endian xtensa
-FLAT images which after this change fail to start with the following
-message:
-
-  binfmt_flat: reloc outside program 0x24c80100 (0 - 0x6e430/0x56a20)
-
-Fix it by preserving 'update_text' when building for xtensa.
-
-Fixes: 5e08f1968316 ("Don't always update text in !pic_with_got case")
-Reported-by: Niklas Cassel <niklas.cassel@wdc.com>
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
- elf2flt.c | 15 ++++++++++++++-
- 1 file changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/elf2flt.c b/elf2flt.c
-index 60bfa57..0fcb747 100644
---- a/elf2flt.c
-+++ b/elf2flt.c
-@@ -833,7 +833,20 @@ output_relocs (
- 					continue;
- 				case R_XTENSA_32:
- 				case R_XTENSA_PLT:
--					goto good_32bit_resolved_reloc;
-+					if (bfd_big_endian (abs_bfd))
-+						sym_addr =
-+							(r_mem[0] << 24)
-+							+ (r_mem[1] << 16)
-+							+ (r_mem[2] << 8)
-+							+ r_mem[3];
-+					else
-+						sym_addr =
-+							r_mem[0]
-+							+ (r_mem[1] << 8)
-+							+ (r_mem[2] << 16)
-+							+ (r_mem[3] << 24);
-+					relocation_needed = 1;
-+					break;
- 				default:
- 					goto bad_resolved_reloc;
- #elif defined(TARGET_riscv64)
--- 
-2.41.0
-
diff --git a/package/elf2flt/0007-elf2flt-remove-use-of-BFD_VMA_FMT.patch b/package/elf2flt/0007-elf2flt-remove-use-of-BFD_VMA_FMT.patch
deleted file mode 100644
index 82e693f35f..0000000000
--- a/package/elf2flt/0007-elf2flt-remove-use-of-BFD_VMA_FMT.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From 9ec7dd9dead2f3c4c73c3ab2166a1f81bfb41825 Mon Sep 17 00:00:00 2001
-From: Greg Ungerer <gerg@kernel.org>
-Date: Thu, 13 Apr 2023 22:58:20 +1000
-Subject: [PATCH] elf2flt: remove use of BFD_VMA_FMT
-
-In binutils-2.40 the BFD_VMA_FMT definition used for printf style
-formatting specifiers has been removed. For reference this was done in
-commit b82817674f46 ("Don't use BFD_VMA_FMT in binutils") in the
-binutils git development tree.
-
-BFD_VMA_FMT is used in a number of places in the elf2flt code to output
-bfd offsets, values and the like. So it is broken when using the bfd
-code from binutils-2.40 and newer.
-
-According to the binutils change PRIx64 (and friends) is used to replace
-it, with appropriate casts to keep it clean for 32 and 64 bit platforms.
-Change the elf2flt.c use of it in the same way to fix.
-
-This does not change the output in any way in normal use. This fix can
-be used on all versions of binutils (older and newer), there is no
-need to only do this on 2.40 and newer.
-
-Signed-off-by: Greg Ungerer <gerg@kernel.org>
-Upstream: https://github.com/uclinux-dev/elf2flt/commit/a36df7407d9e3f93ca6449841ff0821b0d980438
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
----
- elf2flt.c | 58 ++++++++++++++++++++++++++++---------------------------
- 1 file changed, 30 insertions(+), 28 deletions(-)
-
-diff --git a/elf2flt.c b/elf2flt.c
-index 0fcb747..6685bff 100644
---- a/elf2flt.c
-+++ b/elf2flt.c
-@@ -220,8 +220,8 @@ dump_symbols(asymbol **symbol_table, long number_of_symbols)
-   long i;
-   printf("SYMBOL TABLE:\n");
-   for (i=0; i<number_of_symbols; i++) {
--	printf("  NAME=%s  VALUE=0x%"BFD_VMA_FMT"x\n",
--		symbol_table[i]->name, symbol_table[i]->value);
-+	printf("  NAME=%s  VALUE=0x%"PRIx64"\n",
-+		symbol_table[i]->name, (uint64_t) symbol_table[i]->value);
-   }
-   printf("\n");
-   return(0);
-@@ -466,8 +466,8 @@ output_relocs (
- 	if (r == NULL)
- 	  continue;
- 	if (verbose)
--	  printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n",
--			r->name, r, r->flags, elf2flt_bfd_section_vma(r));
-+	  printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"PRIx64"\n",
-+			r->name, r, r->flags, (uint64_t) elf2flt_bfd_section_vma(r));
-   	if ((r->flags & SEC_RELOC) == 0)
-   	  continue;
- 	relsize = bfd_get_reloc_upper_bound(rel_bfd, r);
-@@ -952,12 +952,13 @@ output_relocs (
- 					if (verbose)
- 						fprintf(stderr,
- 							"%s vma=0x%x, "
--							"value=0x%"BFD_VMA_FMT"x, "
--							"address=0x%"BFD_VMA_FMT"x "
-+							"value=0x%"PRIx64", "
-+							"address=0x%"PRIx64" "
- 							"sym_addr=0x%x rs=0x%x, opcode=0x%x\n",
- 							"ABS32",
--							sym_vma, (*(q->sym_ptr_ptr))->value,
--							q->address, sym_addr,
-+							sym_vma, 
-+							(uint64_t) (*(q->sym_ptr_ptr))->value,
-+							(uint64_t) q->address, sym_addr,
- 							(*p)->howto->rightshift,
- 							*(uint32_t *)r_mem);
- 					sym_vma = elf2flt_bfd_section_vma(sym_section);
-@@ -971,12 +972,13 @@ output_relocs (
- 					if (verbose)
- 						fprintf(stderr,
- 							"%s vma=0x%x, "
--							"value=0x%"BFD_VMA_FMT"x, "
--							"address=0x%"BFD_VMA_FMT"x "
-+							"value=0x%"PRIx64", "
-+							"address=0x%"PRIx64" "
- 							"sym_addr=0x%x rs=0x%x, opcode=0x%x\n",
- 							"PLT32",
--							sym_vma, (*(q->sym_ptr_ptr))->value,
--							q->address, sym_addr,
-+							sym_vma,
-+							(uint64_t) (*(q->sym_ptr_ptr))->value,
-+							(uint64_t) q->address, sym_addr,
- 							(*p)->howto->rightshift,
- 							*(uint32_t *)r_mem);
- 				case R_ARM_PC24:
-@@ -994,8 +996,8 @@ output_relocs (
- 				case R_V850_ZDA_16_16_OFFSET:
- 				case R_V850_ZDA_16_16_SPLIT_OFFSET:
- 					/* Can't support zero-relocations.  */
--					printf ("ERROR: %s+0x%"BFD_VMA_FMT"x: zero relocations not supported\n",
--							sym_name, q->addend);
-+					printf ("ERROR: %s+0x%"PRIx64": zero relocations not supported\n",
-+							sym_name, (uint64_t) q->addend);
- 					continue;
- #endif /* TARGET_v850 */
- 
-@@ -1194,12 +1196,12 @@ output_relocs (
- 					temp |= (exist_val & 0x3f);
- 					*(unsigned long *)r_mem = htoniosl(temp);
- 					if (verbose)
--						printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
-+						printf("omit: offset=0x%"PRIx64" symbol=%s%s "
- 								"section=%s size=%d "
--								"fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x) GPREL\n",
--								q->address, sym_name, addstr,
-+								"fixup=0x%x (reloc=0x%"PRIx64") GPREL\n",
-+								(uint64_t) q->address, sym_name, addstr,
- 								section_name, sym_reloc_size,
--								sym_addr, section_vma + q->address);
-+								sym_addr, (uint64_t) section_vma + q->address);
- 					continue;
- 				}
- 				case R_NIOS2_PCREL16:
-@@ -1214,12 +1216,12 @@ output_relocs (
- 					exist_val |= ((sym_addr & 0xFFFF) << 6);
- 					*(unsigned long *)r_mem = htoniosl(exist_val);
- 					if (verbose)
--						printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
-+						printf("omit: offset=0x%"PRIx64" symbol=%s%s "
- 								"section=%s size=%d "
--								"fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x) PCREL\n",
--								q->address, sym_name, addstr,
-+								"fixup=0x%x (reloc=0x%"PRIx64") PCREL\n",
-+								(uint64_t) q->address, sym_name, addstr,
- 								section_name, sym_reloc_size,
--								sym_addr, section_vma + q->address);
-+								sym_addr, (uint64_t) section_vma + q->address);
- 					continue;
- 				}
- 
-@@ -1231,9 +1233,9 @@ output_relocs (
- 					    && (p[-1]->sym_ptr_ptr == p[0]->sym_ptr_ptr)
- 					    && (p[-1]->addend == p[0]->addend)) {
- 						if (verbose)
--							printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
-+							printf("omit: offset=0x%"PRIx64" symbol=%s%s "
- 								"section=%s size=%d LO16\n",
--								q->address, sym_name, addstr,
-+								(uint64_t) q->address, sym_name, addstr,
- 								section_name, sym_reloc_size);
- 						continue;
- 					}
-@@ -1646,13 +1648,13 @@ DIS29_RELOCATION:
- 			 */
- 			if (relocation_needed) {
- 				if (verbose)
--					printf("  RELOC[%d]: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
-+					printf("  RELOC[%d]: offset=0x%"PRIx64" symbol=%s%s "
- 						"section=%s size=%d "
--						"fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x)\n",
-+						"fixup=0x%x (reloc=0x%"PRIx64")\n",
- 						flat_reloc_count,
--						q->address, sym_name, addstr,
-+						(uint64_t) q->address, sym_name, addstr,
- 						section_name, sym_reloc_size,
--						sym_addr, section_vma + q->address);
-+						sym_addr, (uint64_t) section_vma + q->address);
- 
- #ifndef TARGET_bfin
- 				flat_relocs = realloc(flat_relocs,
--- 
-2.41.0
-
diff --git a/package/elf2flt/0008-riscv64-add-more-relocations-required-to-be-handled.patch b/package/elf2flt/0008-riscv64-add-more-relocations-required-to-be-handled.patch
deleted file mode 100644
index 74d3085d08..0000000000
--- a/package/elf2flt/0008-riscv64-add-more-relocations-required-to-be-handled.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 5acfed0012f2fff9801b25403bd8a5e1c2ccfea2 Mon Sep 17 00:00:00 2001
-From: Waldemar Brodkorb <wbx@openadk.org>
-Date: Mon, 7 Aug 2023 09:30:34 +0200
-Subject: [PATCH] riscv64: add more relocations required to be handled
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-Upstream: https://github.com/uclinux-dev/elf2flt/pull/24
----
- elf2flt.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/elf2flt.c b/elf2flt.c
-index 6685bff..6b3bea4 100644
---- a/elf2flt.c
-+++ b/elf2flt.c
-@@ -850,11 +850,21 @@ output_relocs (
- 				default:
- 					goto bad_resolved_reloc;
- #elif defined(TARGET_riscv64)
-+				case R_RISCV_NONE:
- 				case R_RISCV_32_PCREL:
-+				case R_RISCV_ADD8:
-+				case R_RISCV_ADD16:
- 				case R_RISCV_ADD32:
- 				case R_RISCV_ADD64:
-+				case R_RISCV_SUB6:
-+				case R_RISCV_SUB8:
-+				case R_RISCV_SUB16:
- 				case R_RISCV_SUB32:
- 				case R_RISCV_SUB64:
-+				case R_RISCV_SET6:
-+				case R_RISCV_SET8:
-+				case R_RISCV_SET16:
-+				case R_RISCV_SET32:
- 					continue;
- 				case R_RISCV_32:
- 				case R_RISCV_64:
--- 
-2.39.2
-
diff --git a/package/elf2flt/elf2flt.hash b/package/elf2flt/elf2flt.hash
index c576f65cdb..4dc040645e 100644
--- a/package/elf2flt/elf2flt.hash
+++ b/package/elf2flt/elf2flt.hash
@@ -1,3 +1,3 @@
 # Locally calculated
-sha256  6637432ed58dee2d42d09e3b9a902a0dd3b9975acba0c0b24ef9e4e9253159a9  elf2flt-2021.08.tar.gz
+sha256  735482d8c5fd76191e86ff2d6985dd68c232a7b8bdac11fdb480385c6a75ca8f  elf2flt-2023.09.tar.gz
 sha256  f20bc5007904094e3a4e9fbcc3526cdd40893f91d458c3139b308e5c4c0899c6  LICENSE.TXT
diff --git a/package/elf2flt/elf2flt.mk b/package/elf2flt/elf2flt.mk
index b970de48f2..0def282c02 100644
--- a/package/elf2flt/elf2flt.mk
+++ b/package/elf2flt/elf2flt.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-ELF2FLT_VERSION = 2021.08
+ELF2FLT_VERSION = 2023.09
 ELF2FLT_SITE = $(call github,uclinux-dev,elf2flt,v$(ELF2FLT_VERSION))
 ELF2FLT_LICENSE = GPL-2.0+
 ELF2FLT_LICENSE_FILES = LICENSE.TXT
-- 
2.41.0


_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH] package/elf2flt: update to version 2023.09
  2023-09-12 11:04 [Buildroot] [PATCH] package/elf2flt: update to version 2023.09 Niklas Cassel via buildroot
@ 2023-09-13  8:15 ` Waldemar Brodkorb
  2023-09-14 20:33 ` Thomas Petazzoni via buildroot
  1 sibling, 0 replies; 3+ messages in thread
From: Waldemar Brodkorb @ 2023-09-13  8:15 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: Greg Ungerer, Damien Le Moal, Waldemar Brodkorb, Jesse T,
	Thomas Petazzoni, buildroot

Hi,

> Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>

> diff --git a/package/elf2flt/elf2flt.hash b/package/elf2flt/elf2flt.hash
> index c576f65cdb..4dc040645e 100644
> --- a/package/elf2flt/elf2flt.hash
> +++ b/package/elf2flt/elf2flt.hash
> @@ -1,3 +1,3 @@
>  # Locally calculated
> -sha256  6637432ed58dee2d42d09e3b9a902a0dd3b9975acba0c0b24ef9e4e9253159a9  elf2flt-2021.08.tar.gz
> +sha256  735482d8c5fd76191e86ff2d6985dd68c232a7b8bdac11fdb480385c6a75ca8f  elf2flt-2023.09.tar.gz
>  sha256  f20bc5007904094e3a4e9fbcc3526cdd40893f91d458c3139b308e5c4c0899c6  LICENSE.TXT
> diff --git a/package/elf2flt/elf2flt.mk b/package/elf2flt/elf2flt.mk
> index b970de48f2..0def282c02 100644
> --- a/package/elf2flt/elf2flt.mk
> +++ b/package/elf2flt/elf2flt.mk
> @@ -4,7 +4,7 @@
>  #
>  ################################################################################
>  
> -ELF2FLT_VERSION = 2021.08
> +ELF2FLT_VERSION = 2023.09
>  ELF2FLT_SITE = $(call github,uclinux-dev,elf2flt,v$(ELF2FLT_VERSION))
>  ELF2FLT_LICENSE = GPL-2.0+
>  ELF2FLT_LICENSE_FILES = LICENSE.TXT

Great! You can add a 
Tested-By: Waldemar Brodkorb <wbx@openadk.org>

I tested Qemu m68k, riscv64 and Xtensa. And tested on
STM32F429-Disco.

best regards
 Waldemar
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH] package/elf2flt: update to version 2023.09
  2023-09-12 11:04 [Buildroot] [PATCH] package/elf2flt: update to version 2023.09 Niklas Cassel via buildroot
  2023-09-13  8:15 ` Waldemar Brodkorb
@ 2023-09-14 20:33 ` Thomas Petazzoni via buildroot
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-09-14 20:33 UTC (permalink / raw)
  To: Niklas Cassel via buildroot
  Cc: Greg Ungerer, Niklas Cassel, Damien Le Moal, Waldemar Brodkorb,
	Jesse T

On Tue, 12 Sep 2023 13:04:20 +0200
Niklas Cassel via buildroot <buildroot@buildroot.org> wrote:

> Several of our patches have been accepted upstream and are included in
> elf2flt version 2023.09.
> 
> Patch 0001-elf2flt-handle-binutils-2.34.patch is upstream as of commit
> c70b9f208979 ("elf2flt: handle binutils >= 2.34").
> 
> Patch 0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch is
> upstream as of commit 679c94adf27c ("elf2flt.ld: reinstate 32 byte
> alignment for .data section").
> 
> Patch 0003-elf2flt-add-riscv-64-bits-support.patch is upstream as of
> commit c5c8043c4d79 ("elf2flt: add riscv 64-bits support").
> 
> Patch 0008-riscv64-add-more-relocations-required-to-be-handled.patch was
> squashed into upstream commit c5c8043c4d79 ("elf2flt: add riscv 64-bits
> support") during upstreaming.
> 
> Patch 0006-xtensa-fix-text-relocations.patch is upstream as of commit
> 26dfb54a59c8 ("elf2flt: xtensa: fix text relocations").
> 
> Patch 0007-elf2flt-remove-use-of-BFD_VMA_FMT.patch is upstream as of
> commit a36df7407d9e ("elf2flt: remove use of BFD_VMA_FMT").
> 
> Patch 0004-elf2flt-create-a-common-helper-function.patch simply added
> a helper function to make the changes in the follow-up patch
> 0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
> less intrusive.
> 
> Patch 0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
> is no longer needed as upstream has reverted the commit that necessitated
> this patch, see upstream commit 35c692ca4546 ("Revert "elf2flt: fix for
> segfault on some ARM ELFs""). The problem that the reverted upstream patch
> solved is now instead solved by the combination of upstream commits
> 7a59b265c2dc ("Revert "elf2flt: fix relocations for read-only data"") and
> a934fb42cf59 ("elf2flt: force ARM.exidx section into text").
> 
> Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
> ---
> Resending from an email address that is subscribed to the buildroot
> mailing list, since my previous mail got rejected.

Amazing to see that we're down to 0 patches against elf2flt. Thanks for
doing this, and thanks for the testing. Just the update of the
.checkpackageignore file was missing, so I did that when applying.
Thanks again!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-14 20:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-12 11:04 [Buildroot] [PATCH] package/elf2flt: update to version 2023.09 Niklas Cassel via buildroot
2023-09-13  8:15 ` Waldemar Brodkorb
2023-09-14 20:33 ` Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.