Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42
@ 2024-03-03  8:40 Thomas Petazzoni via buildroot
  2024-03-03  8:40 ` [Buildroot] [PATCH next 1/4] package/binutils: add support for 2.42 Thomas Petazzoni via buildroot
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-03-03  8:40 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Petazzoni

Hello,

This series of patches update binutils to version 2.42, doing the
usual dance:

 1. Add 2.42
 2. Make 2.41 the default
 3. Drop 2.39

An fourth patch is added to drop some code that is no longer needed
now that binutils 2.39 is gone.

Thomas

Thomas Petazzoni (4):
  package/binutils: add support for 2.42
  package/binutils: make 2.41 the default version
  package/binutils: drop support for binutils 2.39
  package/binutils: drop BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME

 .checkpackageignore                           |   3 -
 Config.in.legacy                              |   6 +
 ...or1k-fix-building-with-gcc-version-5.patch |  50 ------
 .../{2.39 => 2.42}/0001-sh-conf.patch         |  14 +-
 .../0002-poison-system-directories.patch      | 167 ++++++++++--------
 package/binutils/Config.in.host               |  14 +-
 package/binutils/binutils.hash                |   1 -
 package/binutils/binutils.mk                  |  10 +-
 package/elf2flt/elf2flt.mk                    |   2 +-
 9 files changed, 111 insertions(+), 156 deletions(-)
 delete mode 100644 package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch
 rename package/binutils/{2.39 => 2.42}/0001-sh-conf.patch (82%)
 rename package/binutils/{2.39 => 2.42}/0002-poison-system-directories.patch (79%)

-- 
2.43.0

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

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

* [Buildroot] [PATCH next 1/4] package/binutils: add support for 2.42
  2024-03-03  8:40 [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Thomas Petazzoni via buildroot
@ 2024-03-03  8:40 ` Thomas Petazzoni via buildroot
  2024-03-03  9:31   ` Yann E. MORIN
  2024-03-03  8:40 ` [Buildroot] [PATCH next 2/4] package/binutils: make 2.41 the default version Thomas Petazzoni via buildroot
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-03-03  8:40 UTC (permalink / raw)
  To: buildroot; +Cc: Romain Naour, Giulio Benetti, Thomas Petazzoni

Note that the hash of the tarball does not need to be added, as it was
already added as part of commit
11b439ce1bd28506051fff14646f8bbdbbbe58d8 ("package/binutils-bare-metal:
new package").

Our existing 2 patches are simply rebased, with minor conflict
resolution required.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/binutils/2.42/0001-sh-conf.patch      |  50 +++
 .../2.42/0002-poison-system-directories.patch | 309 ++++++++++++++++++
 package/binutils/Config.in.host               |   4 +
 3 files changed, 363 insertions(+)
 create mode 100644 package/binutils/2.42/0001-sh-conf.patch
 create mode 100644 package/binutils/2.42/0002-poison-system-directories.patch

diff --git a/package/binutils/2.42/0001-sh-conf.patch b/package/binutils/2.42/0001-sh-conf.patch
new file mode 100644
index 0000000000..c381017850
--- /dev/null
+++ b/package/binutils/2.42/0001-sh-conf.patch
@@ -0,0 +1,50 @@
+From d71fb5a9999ee7c8963342caa0d5cbb16872ab07 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:38:13 +0100
+Subject: [PATCH] sh-conf
+
+Likewise, binutils has no idea about any of these new targets either, so we
+fix that up too.. now we're able to actually build a real toolchain for
+sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more
+inept targets than that one, really. Go look, I promise).
+
+Upstream: N/A [Buildroot specific]
+
+[Romain: rebase on top of 2.32]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+[Thomas: rebase on top of 2.29, in which sh64 support was removed.]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure    | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 670684d83d1..967c6708a0c 100755
+--- a/configure
++++ b/configure
+@@ -4042,7 +4042,7 @@ case "${target}" in
+   nvptx*-*-*)
+     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+     ;;
+-  sh-*-*)
++  sh*-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
+diff --git a/configure.ac b/configure.ac
+index 88b4800e298..2c8d08ff6ec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1269,7 +1269,7 @@ case "${target}" in
+   nvptx*-*-*)
+     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+     ;;
+-  sh-*-*)
++  sh*-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
+-- 
+2.43.0
+
diff --git a/package/binutils/2.42/0002-poison-system-directories.patch b/package/binutils/2.42/0002-poison-system-directories.patch
new file mode 100644
index 0000000000..5c790999d4
--- /dev/null
+++ b/package/binutils/2.42/0002-poison-system-directories.patch
@@ -0,0 +1,309 @@
+From 00f6b0a7d31085831429834b2bc8f511b8fab6ce Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:45:38 +0100
+Subject: [PATCH] poison-system-directories
+
+Patch adapted to binutils 2.23.2 and extended to use
+BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
+
+[Waldemar: rebase on top of 2.39]
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+[Romain: rebase on top of 2.33.1]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+[Gustavo: adapt to binutils 2.25]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+Upstream-Status: Inappropriate [distribution: codesourcery]
+Upstream: N/A [Buildroot specific]
+
+Patch originally created by Mark Hatle, forward-ported to
+binutils 2.21 by Scott Garman.
+
+purpose:  warn for uses of system directories when cross linking
+
+Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
+
+2008-07-02  Joseph Myers  <joseph@codesourcery.com>
+
+    ld/
+    * ld.h (args_type): Add error_poison_system_directories.
+    * ld.texinfo (--error-poison-system-directories): Document.
+    * ldfile.c (ldfile_add_library_path): Check
+    command_line.error_poison_system_directories.
+    * ldmain.c (main): Initialize
+    command_line.error_poison_system_directories.
+    * lexsup.c (enum option_values): Add
+    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
+    (ld_options): Add --error-poison-system-directories.
+    (parse_args): Handle new option.
+
+2007-06-13  Joseph Myers  <joseph@codesourcery.com>
+
+    ld/
+    * config.in: Regenerate.
+    * ld.h (args_type): Add poison_system_directories.
+    * ld.texinfo (--no-poison-system-directories): Document.
+    * ldfile.c (ldfile_add_library_path): Check
+    command_line.poison_system_directories.
+    * ldmain.c (main): Initialize
+    command_line.poison_system_directories.
+    * lexsup.c (enum option_values): Add
+    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
+    (ld_options): Add --no-poison-system-directories.
+    (parse_args): Handle new option.
+
+2007-04-20  Joseph Myers  <joseph@codesourcery.com>
+
+    Merge from Sourcery G++ binutils 2.17:
+
+    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
+    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
+    ld/
+    * configure.ac (--enable-poison-system-directories): New option.
+    * configure, config.in: Regenerate.
+    * ldfile.c (ldfile_add_library_path): If
+    ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
+    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+---
+ ld/config.in    |  3 +++
+ ld/configure    | 14 ++++++++++++++
+ ld/configure.ac | 10 ++++++++++
+ ld/ld.h         |  8 ++++++++
+ ld/ld.texi      | 12 ++++++++++++
+ ld/ldfile.c     | 17 +++++++++++++++++
+ ld/ldlex.h      |  2 ++
+ ld/ldmain.c     |  2 ++
+ ld/lexsup.c     | 21 +++++++++++++++++++++
+ 9 files changed, 89 insertions(+)
+
+diff --git a/ld/config.in b/ld/config.in
+index 52d62f06ff0..b5944e7ba55 100644
+--- a/ld/config.in
++++ b/ld/config.in
+@@ -70,6 +70,9 @@
+    language is requested. */
+ #undef ENABLE_NLS
+ 
++/* Define to warn for use of native system library directories */
++#undef ENABLE_POISON_SYSTEM_DIRECTORIES
++
+ /* Additional extension a shared object might have. */
+ #undef EXTRA_SHLIB_EXTENSION
+ 
+diff --git a/ld/configure b/ld/configure
+index ba1e5e2a215..2220d7afe2a 100755
+--- a/ld/configure
++++ b/ld/configure
+@@ -844,6 +844,7 @@ with_lib_path
+ enable_targets
+ enable_64_bit_bfd
+ with_sysroot
++enable_poison_system_directories
+ enable_gold
+ enable_got
+ enable_compressed_debug_sections
+@@ -1534,6 +1535,8 @@ Optional Features:
+   --enable-checking       enable run-time checks
+   --enable-targets        alternative target configurations
+   --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
++  --enable-poison-system-directories
++                          warn for use of native system library directories
+   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
+   --enable-got=<type>     GOT handling scheme (target, single, negative,
+                           multigot)
+@@ -15587,7 +15590,18 @@ else
+ fi
+ 
+ 
++# Check whether --enable-poison-system-directories was given.
++if test "${enable_poison_system_directories+set}" = set; then :
++  enableval=$enable_poison_system_directories;
++else
++  enable_poison_system_directories=no
++fi
++
++if test "x${enable_poison_system_directories}" = "xyes"; then
+ 
++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
++
++fi
+ 
+ # Check whether --enable-got was given.
+ if test "${enable_got+set}" = set; then :
+diff --git a/ld/configure.ac b/ld/configure.ac
+index 4a11787ae71..104a531fb0f 100644
+--- a/ld/configure.ac
++++ b/ld/configure.ac
+@@ -103,6 +103,16 @@ AC_SUBST(use_sysroot)
+ AC_SUBST(TARGET_SYSTEM_ROOT)
+ AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
+ 
++AC_ARG_ENABLE([poison-system-directories],
++         AS_HELP_STRING([--enable-poison-system-directories],
++                [warn for use of native system library directories]),,
++         [enable_poison_system_directories=no])
++if test "x${enable_poison_system_directories}" = "xyes"; then
++  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
++       [1],
++       [Define to warn for use of native system library directories])
++fi
++
+ dnl Use --enable-gold to decide if this linker should be the default.
+ dnl "install_as_default" is set to false if gold is the default linker.
+ dnl "installed_linker" is the installed BFD linker name.
+diff --git a/ld/ld.h b/ld/ld.h
+index 54d9079678c..9f0163b2911 100644
+--- a/ld/ld.h
++++ b/ld/ld.h
+@@ -166,6 +166,14 @@ typedef struct
+      in the linker script.  */
+   bool force_group_allocation;
+ 
++  /* If TRUE (the default) warn for uses of system directories when
++     cross linking.  */
++  bool poison_system_directories;
++
++  /* If TRUE (default FALSE) give an error for uses of system
++     directories when cross linking instead of a warning.  */
++  bool error_poison_system_directories;
++
+   /* Big or little endian as set on command line.  */
+   enum endian_enum endian;
+ 
+diff --git a/ld/ld.texi b/ld/ld.texi
+index 4fda259a552..11fd8f7547b 100644
+--- a/ld/ld.texi
++++ b/ld/ld.texi
+@@ -3108,6 +3108,18 @@ string identifying the original linked file does not change.
+ Passing @code{none} for @var{style} disables the setting from any
+ @code{--build-id} options earlier on the command line.
+ 
++@kindex --no-poison-system-directories
++@item --no-poison-system-directories
++Do not warn for @option{-L} options using system directories such as
++@file{/usr/lib} when cross linking.  This option is intended for use
++in chroot environments when such directories contain the correct
++libraries for the target system rather than the host.
++
++@kindex --error-poison-system-directories
++@item --error-poison-system-directories
++Give an error instead of a warning for @option{-L} options using
++system directories when cross linking.
++
+ @kindex --package-metadata=@var{JSON}
+ @item --package-metadata=@var{JSON}
+ Request the creation of a @code{.note.package} ELF note section.  The
+diff --git a/ld/ldfile.c b/ld/ldfile.c
+index dc9875d8813..49d899ee49d 100644
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -327,6 +327,23 @@ ldfile_add_library_path (const char *name, bool cmdline)
+     new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
+   else
+     new_dirs->name = xstrdup (name);
++
++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
++  if (command_line.poison_system_directories
++  && ((!strncmp (name, "/lib", 4))
++      || (!strncmp (name, "/usr/lib", 8))
++      || (!strncmp (name, "/usr/local/lib", 14))
++      || (!strncmp (name, "/usr/X11R6/lib", 14))))
++   {
++     if (command_line.error_poison_system_directories)
++       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
++            "cross-compilation\n"), name);
++     else
++       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
++            "cross-compilation\n"), name);
++   }
++#endif
++
+ }
+ 
+ /* Try to open a BFD for a lang_input_statement.  */
+diff --git a/ld/ldlex.h b/ld/ldlex.h
+index 161a9d4d8dc..4ca50b9c299 100644
+--- a/ld/ldlex.h
++++ b/ld/ldlex.h
+@@ -168,6 +168,8 @@ enum option_values
+   OPTION_CTF_VARIABLES,
+   OPTION_NO_CTF_VARIABLES,
+   OPTION_CTF_SHARE_TYPES,
++  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
++  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
+   OPTION_ERROR_EXECSTACK,
+   OPTION_NO_ERROR_EXECSTACK,
+   OPTION_WARN_EXECSTACK_OBJECTS,
+diff --git a/ld/ldmain.c b/ld/ldmain.c
+index e90c2021b33..43fe888eba8 100644
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -325,6 +325,8 @@ main (int argc, char **argv)
+   command_line.warn_mismatch = true;
+   command_line.warn_search_mismatch = true;
+   command_line.check_section_addresses = -1;
++  command_line.poison_system_directories = true;
++  command_line.error_poison_system_directories = false;
+ 
+   /* We initialize DEMANGLING based on the environment variable
+      COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
+diff --git a/ld/lexsup.c b/ld/lexsup.c
+index 099dff8ecde..01626712c77 100644
+--- a/ld/lexsup.c
++++ b/ld/lexsup.c
+@@ -642,6 +642,14 @@ static const struct ld_option ld_options[] =
+ 		   "                                <method> is: share-unconflicted (default),\n"
+ 		   "                                             share-duplicated"),
+     TWO_DASHES },
++  { {"no-poison-system-directories", no_argument, NULL,
++    OPTION_NO_POISON_SYSTEM_DIRECTORIES},
++    '\0', NULL, N_("Do not warn for -L options using system directories"),
++    TWO_DASHES },
++  { {"error-poison-system-directories", no_argument, NULL,
++    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
++    '\0', NULL, N_("Give an error for -L options using system directories"),
++    TWO_DASHES },
+ };
+ 
+ #define OPTION_COUNT ARRAY_SIZE (ld_options)
+@@ -654,6 +662,7 @@ parse_args (unsigned argc, char **argv)
+   int ingroup = 0;
+   char *default_dirlist = NULL;
+   char *shortopts;
++  char *BR_paranoid_env;
+   struct option *longopts;
+   struct option *really_longopts;
+   int last_optind;
+@@ -1769,6 +1778,14 @@ parse_args (unsigned argc, char **argv)
+ 	  }
+ 	  break;
+ 
++	case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
++	  command_line.poison_system_directories = false;
++	  break;
++
++	case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
++	  command_line.error_poison_system_directories = true;
++	  break;
++
+ 	case OPTION_PUSH_STATE:
+ 	  input_flags.pushed = xmemdup (&input_flags,
+ 					sizeof (input_flags),
+@@ -1922,6 +1939,10 @@ parse_args (unsigned argc, char **argv)
+       command_line.soname = NULL;
+     }
+ 
++  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
++  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
++    command_line.error_poison_system_directories = true;
++
+   while (ingroup)
+     {
+       einfo (_("%P: missing --end-group; added as last command line option\n"));
+-- 
+2.43.0
+
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 2f1ddf4bdc..f1cc175cf9 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -25,6 +25,9 @@ config BR2_BINUTILS_VERSION_2_40_X
 config BR2_BINUTILS_VERSION_2_41_X
 	bool "binutils 2.41"
 
+config BR2_BINUTILS_VERSION_2_42_X
+	bool "binutils 2.42"
+
 config BR2_BINUTILS_VERSION_ARC
 	bool "binutils arc (2.41)"
 	depends on BR2_arc
@@ -37,6 +40,7 @@ config BR2_BINUTILS_VERSION
 	default "2.39"		if BR2_BINUTILS_VERSION_2_39_X
 	default "2.40"		if BR2_BINUTILS_VERSION_2_40_X
 	default "2.41"		if BR2_BINUTILS_VERSION_2_41_X
+	default "2.42"		if BR2_BINUTILS_VERSION_2_42_X
 
 config BR2_BINUTILS_GPROFNG
 	bool "gprofng support"
-- 
2.43.0

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

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

* [Buildroot] [PATCH next 2/4] package/binutils: make 2.41 the default version
  2024-03-03  8:40 [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Thomas Petazzoni via buildroot
  2024-03-03  8:40 ` [Buildroot] [PATCH next 1/4] package/binutils: add support for 2.42 Thomas Petazzoni via buildroot
@ 2024-03-03  8:40 ` Thomas Petazzoni via buildroot
  2024-03-03  8:40 ` [Buildroot] [PATCH next 3/4] package/binutils: drop support for binutils 2.39 Thomas Petazzoni via buildroot
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-03-03  8:40 UTC (permalink / raw)
  To: buildroot; +Cc: Giulio Benetti, Romain Naour, Thomas Petazzoni

Now that 2.42 has been introduced, let's make 2.41 the latest version,
following the traditional Buildroot policy.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/binutils/Config.in.host | 2 +-
 package/binutils/binutils.mk    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index f1cc175cf9..7c2797e5fd 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -10,7 +10,7 @@ config BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
 
 choice
 	prompt "Binutils Version"
-	default BR2_BINUTILS_VERSION_2_40_X if !BR2_arc
+	default BR2_BINUTILS_VERSION_2_41_X if !BR2_arc
 	default BR2_BINUTILS_VERSION_ARC if BR2_arc
 	help
 	  Select the version of binutils you wish to use.
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 6846933646..5209da0252 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -11,7 +11,7 @@ ifeq ($(BINUTILS_VERSION),)
 ifeq ($(BR2_arc),y)
 BINUTILS_VERSION = arc-2023.09-release
 else
-BINUTILS_VERSION = 2.40
+BINUTILS_VERSION = 2.41
 endif
 endif # BINUTILS_VERSION
 
-- 
2.43.0

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

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

* [Buildroot] [PATCH next 3/4] package/binutils: drop support for binutils 2.39
  2024-03-03  8:40 [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Thomas Petazzoni via buildroot
  2024-03-03  8:40 ` [Buildroot] [PATCH next 1/4] package/binutils: add support for 2.42 Thomas Petazzoni via buildroot
  2024-03-03  8:40 ` [Buildroot] [PATCH next 2/4] package/binutils: make 2.41 the default version Thomas Petazzoni via buildroot
@ 2024-03-03  8:40 ` Thomas Petazzoni via buildroot
  2024-03-03 10:49   ` Yann E. MORIN
  2024-03-03  8:40 ` [Buildroot] [PATCH next 4/4] package/binutils: drop BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME Thomas Petazzoni via buildroot
  2024-03-03 10:50 ` [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Yann E. MORIN
  4 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-03-03  8:40 UTC (permalink / raw)
  To: buildroot; +Cc: Romain Naour, Giulio Benetti, Thomas Petazzoni

Now that we have integrated support for binutils 2.42, and made
binutils 2.41 the default, following our tradition, we can drop
support for binutils 2.39.

In addition to the usual things, there is an additional minor change
in elf2flt.mk, which had a special condition applicable to binutils
2.39 or 2.40, which can be simplified to only apply to binutils 2.40
now.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 .checkpackageignore                           |   3 -
 Config.in.legacy                              |   6 +
 package/binutils/2.39/0001-sh-conf.patch      |  48 ---
 .../2.39/0002-poison-system-directories.patch | 298 ------------------
 ...or1k-fix-building-with-gcc-version-5.patch |  50 ---
 package/binutils/Config.in.host               |   5 -
 package/binutils/binutils.hash                |   1 -
 package/elf2flt/elf2flt.mk                    |   2 +-
 8 files changed, 7 insertions(+), 406 deletions(-)
 delete mode 100644 package/binutils/2.39/0001-sh-conf.patch
 delete mode 100644 package/binutils/2.39/0002-poison-system-directories.patch
 delete mode 100644 package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch

diff --git a/.checkpackageignore b/.checkpackageignore
index c18cc4d417..6a45e1593c 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -193,9 +193,6 @@ package/berkeleydb/0001-cwd-db_config.patch Upstream
 package/berkeleydb/0002-atomic_compare_exchange.patch Upstream
 package/bind/0001-cross.patch Upstream
 package/bind/S81named Indent Shellcheck Variables
-package/binutils/2.39/0001-sh-conf.patch Upstream
-package/binutils/2.39/0002-poison-system-directories.patch Upstream
-package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch Upstream
 package/bird/0001-configure.ac-fix-build-with-autoconf-2.70.patch Upstream
 package/bitcoin/0001-src-randomenv.cpp-fix-build-on-uclibc.patch Upstream
 package/bmx7/0001-Fix-schedule.c-378-36-error-SIOCGSTAMP-undeclared.patch Upstream
diff --git a/Config.in.legacy b/Config.in.legacy
index a869279af7..94756a70ff 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -146,6 +146,12 @@ endif
 
 comment "Legacy options removed in 2024.02"
 
+config BR2_BINUTILS_VERSION_2_39_X
+	bool "binutils 2.39 has been removed"
+	select BR2_LEGACY
+	help
+	  binutils 2.39 has been removed, use a newer version.
+
 config BR2_PACKAGE_TINYMEMBENCH
 	bool "tinymembench removed"
 	select BR2_LEGACY
diff --git a/package/binutils/2.39/0001-sh-conf.patch b/package/binutils/2.39/0001-sh-conf.patch
deleted file mode 100644
index fcc597e4d9..0000000000
--- a/package/binutils/2.39/0001-sh-conf.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 33f3c1f804efc2e4f97849081589efb70cda31e5 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@gmail.com>
-Date: Fri, 25 Dec 2015 11:38:13 +0100
-Subject: [PATCH] sh-conf
-
-Likewise, binutils has no idea about any of these new targets either, so we
-fix that up too.. now we're able to actually build a real toolchain for
-sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more
-inept targets than that one, really. Go look, I promise).
-
-[Romain: rebase on top of 2.32]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
-[Thomas: rebase on top of 2.29, in which sh64 support was removed.]
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- configure    | 2 +-
- configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure b/configure
-index 3dd206525a7..6881ce632f5 100755
---- a/configure
-+++ b/configure
-@@ -3892,7 +3892,7 @@ case "${target}" in
-   nvptx*-*-*)
-     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
-     ;;
--  sh-*-*)
-+  sh*-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
-diff --git a/configure.ac b/configure.ac
-index 797a624621e..1f9256bbf18 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1175,7 +1175,7 @@ case "${target}" in
-   nvptx*-*-*)
-     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
-     ;;
--  sh-*-*)
-+  sh*-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
--- 
-2.31.1
-
diff --git a/package/binutils/2.39/0002-poison-system-directories.patch b/package/binutils/2.39/0002-poison-system-directories.patch
deleted file mode 100644
index 1d9447b5c2..0000000000
--- a/package/binutils/2.39/0002-poison-system-directories.patch
+++ /dev/null
@@ -1,298 +0,0 @@
-From 4d8705ddb55897e8a74b617ab95736d520d9e1ea Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@gmail.com>
-Date: Fri, 25 Dec 2015 11:45:38 +0100
-Subject: [PATCH] poison-system-directories
-
-Patch adapted to binutils 2.23.2 and extended to use
-BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
-
-[Waldemar: rebase on top of 2.39]
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-[Romain: rebase on top of 2.33.1]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
-[Gustavo: adapt to binutils 2.25]
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-Upstream-Status: Inappropriate [distribution: codesourcery]
-
-Patch originally created by Mark Hatle, forward-ported to
-binutils 2.21 by Scott Garman.
-
-purpose:  warn for uses of system directories when cross linking
-
-Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
-
-2008-07-02  Joseph Myers  <joseph@codesourcery.com>
-
-    ld/
-    * ld.h (args_type): Add error_poison_system_directories.
-    * ld.texinfo (--error-poison-system-directories): Document.
-    * ldfile.c (ldfile_add_library_path): Check
-    command_line.error_poison_system_directories.
-    * ldmain.c (main): Initialize
-    command_line.error_poison_system_directories.
-    * lexsup.c (enum option_values): Add
-    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
-    (ld_options): Add --error-poison-system-directories.
-    (parse_args): Handle new option.
-
-2007-06-13  Joseph Myers  <joseph@codesourcery.com>
-
-    ld/
-    * config.in: Regenerate.
-    * ld.h (args_type): Add poison_system_directories.
-    * ld.texinfo (--no-poison-system-directories): Document.
-    * ldfile.c (ldfile_add_library_path): Check
-    command_line.poison_system_directories.
-    * ldmain.c (main): Initialize
-    command_line.poison_system_directories.
-    * lexsup.c (enum option_values): Add
-    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
-    (ld_options): Add --no-poison-system-directories.
-    (parse_args): Handle new option.
-
-2007-04-20  Joseph Myers  <joseph@codesourcery.com>
-
-    Merge from Sourcery G++ binutils 2.17:
-
-    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
-    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
-    ld/
-    * configure.ac (--enable-poison-system-directories): New option.
-    * configure, config.in: Regenerate.
-    * ldfile.c (ldfile_add_library_path): If
-    ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
-    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Scott Garman <scott.a.garman@intel.com>
----
- ld/config.in    |  3 +++
- ld/configure    | 14 ++++++++++++++
- ld/configure.ac | 10 ++++++++++
- ld/ld.h         |  8 ++++++++
- ld/ld.texi      | 12 ++++++++++++
- ld/ldfile.c     | 17 +++++++++++++++++
- ld/ldlex.h      |  2 ++
- ld/ldmain.c     |  2 ++
- ld/lexsup.c     | 21 +++++++++++++++++++++
- 9 files changed, 89 insertions(+)
-
-diff -Nur binutils-2.39.orig/ld/config.in binutils-2.39/ld/config.in
---- binutils-2.39.orig/ld/config.in	2022-08-05 11:56:56.000000000 +0200
-+++ binutils-2.39/ld/config.in	2022-08-11 13:00:55.310472243 +0200
-@@ -55,6 +55,9 @@
-    language is requested. */
- #undef ENABLE_NLS
- 
-+/* Define to warn for use of native system library directories */
-+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-+
- /* Additional extension a shared object might have. */
- #undef EXTRA_SHLIB_EXTENSION
- 
-diff -Nur binutils-2.39.orig/ld/configure binutils-2.39/ld/configure
---- binutils-2.39.orig/ld/configure	2022-08-05 11:56:54.000000000 +0200
-+++ binutils-2.39/ld/configure	2022-08-11 13:00:55.370470806 +0200
-@@ -836,6 +836,7 @@
- enable_targets
- enable_64_bit_bfd
- with_sysroot
-+enable_poison_system_directories
- enable_gold
- enable_got
- enable_compressed_debug_sections
-@@ -1514,6 +1515,8 @@
-   --enable-checking       enable run-time checks
-   --enable-targets        alternative target configurations
-   --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
-+  --enable-poison-system-directories
-+                          warn for use of native system library directories
-   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
-   --enable-got=<type>     GOT handling scheme (target, single, negative,
-                           multigot)
-@@ -15370,7 +15373,18 @@
- fi
- 
- 
-+# Check whether --enable-poison-system-directories was given.
-+if test "${enable_poison_system_directories+set}" = set; then :
-+  enableval=$enable_poison_system_directories;
-+else
-+  enable_poison_system_directories=no
-+fi
-+
-+if test "x${enable_poison_system_directories}" = "xyes"; then
- 
-+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
-+
-+fi
- 
- # Check whether --enable-got was given.
- if test "${enable_got+set}" = set; then :
-diff -Nur binutils-2.39.orig/ld/configure.ac binutils-2.39/ld/configure.ac
---- binutils-2.39.orig/ld/configure.ac	2022-07-08 11:46:48.000000000 +0200
-+++ binutils-2.39/ld/configure.ac	2022-08-11 13:00:55.370470806 +0200
-@@ -102,6 +102,16 @@
- AC_SUBST(TARGET_SYSTEM_ROOT)
- AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
- 
-+AC_ARG_ENABLE([poison-system-directories],
-+         AS_HELP_STRING([--enable-poison-system-directories],
-+                [warn for use of native system library directories]),,
-+         [enable_poison_system_directories=no])
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
-+       [1],
-+       [Define to warn for use of native system library directories])
-+fi
-+
- dnl Use --enable-gold to decide if this linker should be the default.
- dnl "install_as_default" is set to false if gold is the default linker.
- dnl "installed_linker" is the installed BFD linker name.
-diff -Nur binutils-2.39.orig/ld/ldfile.c binutils-2.39/ld/ldfile.c
---- binutils-2.39.orig/ld/ldfile.c	2022-07-08 11:46:48.000000000 +0200
-+++ binutils-2.39/ld/ldfile.c	2022-08-11 13:00:55.394470231 +0200
-@@ -117,6 +117,23 @@
-     new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
-   else
-     new_dirs->name = xstrdup (name);
-+
-+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-+  if (command_line.poison_system_directories
-+  && ((!strncmp (name, "/lib", 4))
-+      || (!strncmp (name, "/usr/lib", 8))
-+      || (!strncmp (name, "/usr/local/lib", 14))
-+      || (!strncmp (name, "/usr/X11R6/lib", 14))))
-+   {
-+     if (command_line.error_poison_system_directories)
-+       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
-+            "cross-compilation\n"), name);
-+     else
-+       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
-+            "cross-compilation\n"), name);
-+   }
-+#endif
-+
- }
- 
- /* Try to open a BFD for a lang_input_statement.  */
-diff -Nur binutils-2.39.orig/ld/ld.h binutils-2.39/ld/ld.h
---- binutils-2.39.orig/ld/ld.h	2022-07-08 11:46:48.000000000 +0200
-+++ binutils-2.39/ld/ld.h	2022-08-11 13:00:55.382470519 +0200
-@@ -162,6 +162,14 @@
-      in the linker script.  */
-   bool force_group_allocation;
- 
-+  /* If TRUE (the default) warn for uses of system directories when
-+     cross linking.  */
-+  bool poison_system_directories;
-+
-+  /* If TRUE (default FALSE) give an error for uses of system
-+     directories when cross linking instead of a warning.  */
-+  bool error_poison_system_directories;
-+
-   /* Big or little endian as set on command line.  */
-   enum endian_enum endian;
- 
-diff -Nur binutils-2.39.orig/ld/ldlex.h binutils-2.39/ld/ldlex.h
---- binutils-2.39.orig/ld/ldlex.h	2022-07-08 11:46:48.000000000 +0200
-+++ binutils-2.39/ld/ldlex.h	2022-08-11 13:03:35.462636396 +0200
-@@ -164,6 +164,8 @@
-   OPTION_CTF_VARIABLES,
-   OPTION_NO_CTF_VARIABLES,
-   OPTION_CTF_SHARE_TYPES,
-+  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
-+  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
-   OPTION_WARN_EXECSTACK,
-   OPTION_NO_WARN_EXECSTACK,
-   OPTION_WARN_RWX_SEGMENTS,
-diff -Nur binutils-2.39.orig/ld/ldmain.c binutils-2.39/ld/ldmain.c
---- binutils-2.39.orig/ld/ldmain.c	2022-07-08 11:46:48.000000000 +0200
-+++ binutils-2.39/ld/ldmain.c	2022-08-11 13:00:55.402470040 +0200
-@@ -321,6 +321,8 @@
-   command_line.warn_mismatch = true;
-   command_line.warn_search_mismatch = true;
-   command_line.check_section_addresses = -1;
-+  command_line.poison_system_directories = true;
-+  command_line.error_poison_system_directories = false;
- 
-   /* We initialize DEMANGLING based on the environment variable
-      COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
-diff -Nur binutils-2.39.orig/ld/ld.texi binutils-2.39/ld/ld.texi
---- binutils-2.39.orig/ld/ld.texi	2022-07-08 11:46:48.000000000 +0200
-+++ binutils-2.39/ld/ld.texi	2022-08-11 13:02:44.627853889 +0200
-@@ -2936,6 +2936,18 @@
- Passing @code{none} for @var{style} disables the setting from any
- @code{--build-id} options earlier on the command line.
- 
-+@kindex --no-poison-system-directories
-+@item --no-poison-system-directories
-+Do not warn for @option{-L} options using system directories such as
-+@file{/usr/lib} when cross linking.  This option is intended for use
-+in chroot environments when such directories contain the correct
-+libraries for the target system rather than the host.
-+
-+@kindex --error-poison-system-directories
-+@item --error-poison-system-directories
-+Give an error instead of a warning for @option{-L} options using
-+system directories when cross linking.
-+
- @kindex --package-metadata=@var{JSON}
- @item --package-metadata=@var{JSON}
- Request the creation of a @code{.note.package} ELF note section.  The
-diff -Nur binutils-2.39.orig/ld/lexsup.c binutils-2.39/ld/lexsup.c
---- binutils-2.39.orig/ld/lexsup.c	2022-07-08 11:46:48.000000000 +0200
-+++ binutils-2.39/ld/lexsup.c	2022-08-11 13:00:55.434469274 +0200
-@@ -608,6 +608,14 @@
- 		   "                                <method> is: share-unconflicted (default),\n"
- 		   "                                             share-duplicated"),
-     TWO_DASHES },
-+  { {"no-poison-system-directories", no_argument, NULL,
-+    OPTION_NO_POISON_SYSTEM_DIRECTORIES},
-+    '\0', NULL, N_("Do not warn for -L options using system directories"),
-+    TWO_DASHES },
-+  { {"error-poison-system-directories", no_argument, NULL,
-+    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
-+    '\0', NULL, N_("Give an error for -L options using system directories"),
-+    TWO_DASHES },
- };
- 
- #define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -620,6 +628,7 @@
-   int ingroup = 0;
-   char *default_dirlist = NULL;
-   char *shortopts;
-+  char *BR_paranoid_env;
-   struct option *longopts;
-   struct option *really_longopts;
-   int last_optind;
-@@ -1679,6 +1688,14 @@
- 	  }
- 	  break;
- 
-+	case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
-+	  command_line.poison_system_directories = false;
-+	  break;
-+
-+	case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
-+	  command_line.error_poison_system_directories = true;
-+	  break;
-+
- 	case OPTION_PUSH_STATE:
- 	  input_flags.pushed = xmemdup (&input_flags,
- 					sizeof (input_flags),
-@@ -1824,6 +1841,10 @@
-       command_line.soname = NULL;
-     }
- 
-+  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
-+  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
-+    command_line.error_poison_system_directories = true;
-+
-   while (ingroup)
-     {
-       einfo (_("%P: missing --end-group; added as last command line option\n"));
--- 
-2.31.1
diff --git a/package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch b/package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch
deleted file mode 100644
index bfd531b818..0000000000
--- a/package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From ef4ba1da823e8366ea4f126f50885a44ebf4dcf0 Mon Sep 17 00:00:00 2001
-From: Giulio Benetti <giulio.benetti@benettiengineering.com>
-Date: Wed, 9 Jun 2021 17:28:27 +0200
-Subject: [PATCH] bfd/elf32-or1k: fix building with gcc version < 5
-
-Gcc version >= 5 has standard C mode not set to -std=gnu11, so if we use
-an old compiler(i.e. gcc 4.9) build fails on:
-```
-elf32-or1k.c:2251:3: error: 'for' loop initial declarations are only allowed in
-C99 or C11 mode
-    for (size_t i = 0; i < insn_count; i++)
-    ^
-```
-
-So let's declare `size_t i` at the top of the function instead of inside
-for loop.
-
-Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
----
- bfd/elf32-or1k.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
-index 4ae7f324d33..32063ab0289 100644
---- a/bfd/elf32-or1k.c
-+++ b/bfd/elf32-or1k.c
-@@ -2244,9 +2244,10 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj,
- {
-   unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY;
-   unsigned output_insns[PLT_MAX_INSN_COUNT];
-+  size_t i;
- 
-   /* Copy instructions into the output buffer.  */
--  for (size_t i = 0; i < insn_count; i++)
-+  for (i = 0; i < insn_count; i++)
-     output_insns[i] = insns[i];
- 
-   /* Honor the no-delay-slot setting.  */
-@@ -2277,7 +2278,7 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj,
-     }
- 
-   /* Write out the output buffer.  */
--  for (size_t i = 0; i < (insn_count+1); i++)
-+  for (i = 0; i < (insn_count+1); i++)
-     bfd_put_32 (output_bfd, output_insns[i], contents + (i*4));
- }
- 
--- 
-2.31.1
-
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 7c2797e5fd..85ec9b1d11 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -15,10 +15,6 @@ choice
 	help
 	  Select the version of binutils you wish to use.
 
-config BR2_BINUTILS_VERSION_2_39_X
-	bool "binutils 2.39"
-	select BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
-
 config BR2_BINUTILS_VERSION_2_40_X
 	bool "binutils 2.40"
 
@@ -37,7 +33,6 @@ endchoice
 config BR2_BINUTILS_VERSION
 	string
 	default "arc-2023.09-release"	if BR2_BINUTILS_VERSION_ARC
-	default "2.39"		if BR2_BINUTILS_VERSION_2_39_X
 	default "2.40"		if BR2_BINUTILS_VERSION_2_40_X
 	default "2.41"		if BR2_BINUTILS_VERSION_2_41_X
 	default "2.42"		if BR2_BINUTILS_VERSION_2_42_X
diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
index e4c6a0b0b6..ac724d5c15 100644
--- a/package/binutils/binutils.hash
+++ b/package/binutils/binutils.hash
@@ -1,5 +1,4 @@
 # From https://gcc.gnu.org/pub/binutils/releases/sha512.sum
-sha512  68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3  binutils-2.39.tar.xz
 sha512  a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925  binutils-2.40.tar.xz
 sha512  5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374  binutils-2.41.tar.xz
 sha512  155f3ba14cd220102f4f29a4f1e5cfee3c48aa03b74603460d05afb73c70d6657a9d87eee6eb88bf13203fe6f31177a5c9addc04384e956e7da8069c8ecd20a6  binutils-2.42.tar.xz
diff --git a/package/elf2flt/elf2flt.mk b/package/elf2flt/elf2flt.mk
index 0def282c02..aa5595843f 100644
--- a/package/elf2flt/elf2flt.mk
+++ b/package/elf2flt/elf2flt.mk
@@ -23,7 +23,7 @@ HOST_ELF2FLT_AUTORECONF = YES
 # considered because Buildroot only supports ARC CPUs with a MMU and
 # therefore host-elf2flt is never used on ARC. libiberty.a has
 # remained at the same location.
-ifeq ($(BR2_BINUTILS_VERSION_2_39_X)$(BR2_BINUTILS_VERSION_2_40_X),y)
+ifeq ($(BR2_BINUTILS_VERSION_2_40_X),y)
 HOST_ELF2FLT_LIBBFD_PATH = $(HOST_BINUTILS_DIR)/bfd/libbfd.a
 else
 HOST_ELF2FLT_LIBBFD_PATH = $(HOST_BINUTILS_DIR)/bfd/.libs/libbfd.a
-- 
2.43.0

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

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

* [Buildroot] [PATCH next 4/4] package/binutils: drop BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
  2024-03-03  8:40 [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Thomas Petazzoni via buildroot
                   ` (2 preceding siblings ...)
  2024-03-03  8:40 ` [Buildroot] [PATCH next 3/4] package/binutils: drop support for binutils 2.39 Thomas Petazzoni via buildroot
@ 2024-03-03  8:40 ` Thomas Petazzoni via buildroot
  2024-03-03 10:50 ` [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Yann E. MORIN
  4 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-03-03  8:40 UTC (permalink / raw)
  To: buildroot; +Cc: Romain Naour, Giulio Benetti, Thomas Petazzoni

Now that binutils 2.39 is gone, we can drop
BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME, which was only used for
binutils 2.39. This was a blind option, so Config.in.legacy handling
is not needed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/binutils/Config.in.host | 3 ---
 package/binutils/binutils.mk    | 8 +-------
 2 files changed, 1 insertion(+), 10 deletions(-)

diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 85ec9b1d11..b67e9343dd 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -5,9 +5,6 @@ config BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI
 	default y
 	depends on !BR2_microblaze
 
-config BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
-	bool
-
 choice
 	prompt "Binutils Version"
 	default BR2_BINUTILS_VERSION_2_41_X if !BR2_arc
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 5209da0252..d98dd7b830 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -105,19 +105,13 @@ endif
 # our TARGET_CONFIGURE_ARGS are taken into consideration for those
 BINUTILS_MAKE_ENV = $(TARGET_CONFIGURE_ARGS)
 
-ifeq ($(BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME),)
-define BINUTILS_INSTALL_STAGING_LIBSFRAME
-	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libsframe DESTDIR=$(STAGING_DIR) install
-endef
-endif
-
 # We just want libbfd, libiberty and libopcodes,
 # not the full-blown binutils in staging
 define BINUTILS_INSTALL_STAGING_CMDS
 	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/bfd DESTDIR=$(STAGING_DIR) install
 	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/opcodes DESTDIR=$(STAGING_DIR) install
 	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libiberty DESTDIR=$(STAGING_DIR) install
-	$(BINUTILS_INSTALL_STAGING_LIBSFRAME)
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libsframe DESTDIR=$(STAGING_DIR) install
 endef
 
 # If we don't want full binutils on target
-- 
2.43.0

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

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

* Re: [Buildroot] [PATCH next 1/4] package/binutils: add support for 2.42
  2024-03-03  8:40 ` [Buildroot] [PATCH next 1/4] package/binutils: add support for 2.42 Thomas Petazzoni via buildroot
@ 2024-03-03  9:31   ` Yann E. MORIN
  0 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2024-03-03  9:31 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Romain Naour, Giulio Benetti, buildroot

Thomas, All,

On 2024-03-03 09:40 +0100, Thomas Petazzoni via buildroot spake thusly:
[--SNIP--]
> diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
> index 2f1ddf4bdc..f1cc175cf9 100644
> --- a/package/binutils/Config.in.host
> +++ b/package/binutils/Config.in.host
> @@ -25,6 +25,9 @@ config BR2_BINUTILS_VERSION_2_40_X
>  config BR2_BINUTILS_VERSION_2_41_X
>  	bool "binutils 2.41"
>  
> +config BR2_BINUTILS_VERSION_2_42_X
> +	bool "binutils 2.42"
> +
>  config BR2_BINUTILS_VERSION_ARC
>  	bool "binutils arc (2.41)"
>  	depends on BR2_arc

I know that the arc variant is just a whart in the list, but it feels
odd, when arc is enabled, to have list not sorted by actual versions:

    2.40
    2.41
    2.42
    arc (2.41)

I think we'd like to have the list neatly ordered by version...

This is a very minor comment, of course...

Regards,
Yann E. MORIN.

> @@ -37,6 +40,7 @@ config BR2_BINUTILS_VERSION
>  	default "2.39"		if BR2_BINUTILS_VERSION_2_39_X
>  	default "2.40"		if BR2_BINUTILS_VERSION_2_40_X
>  	default "2.41"		if BR2_BINUTILS_VERSION_2_41_X
> +	default "2.42"		if BR2_BINUTILS_VERSION_2_42_X
>  
>  config BR2_BINUTILS_GPROFNG
>  	bool "gprofng support"
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH next 3/4] package/binutils: drop support for binutils 2.39
  2024-03-03  8:40 ` [Buildroot] [PATCH next 3/4] package/binutils: drop support for binutils 2.39 Thomas Petazzoni via buildroot
@ 2024-03-03 10:49   ` Yann E. MORIN
  0 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2024-03-03 10:49 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Romain Naour, Giulio Benetti, buildroot

Thomas, All,

On 2024-03-03 09:40 +0100, Thomas Petazzoni via buildroot spake thusly:
> Now that we have integrated support for binutils 2.42, and made
> binutils 2.41 the default, following our tradition, we can drop
> support for binutils 2.39.
> 
> In addition to the usual things, there is an additional minor change
> in elf2flt.mk, which had a special condition applicable to binutils
> 2.39 or 2.40, which can be simplified to only apply to binutils 2.40
> now.

You had forgotten about one instance of BR2_BINUTILS_VERSION_2_39_X in
support/config-fragments/autobuild/br-arm-internal-glibc.config.

I fixed that, in the same manner you fixed it back in 3bb260cf3860.

> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Applied to next, thanks.

Regards,
Yann E. MORIN.

> ---
>  .checkpackageignore                           |   3 -
>  Config.in.legacy                              |   6 +
>  package/binutils/2.39/0001-sh-conf.patch      |  48 ---
>  .../2.39/0002-poison-system-directories.patch | 298 ------------------
>  ...or1k-fix-building-with-gcc-version-5.patch |  50 ---
>  package/binutils/Config.in.host               |   5 -
>  package/binutils/binutils.hash                |   1 -
>  package/elf2flt/elf2flt.mk                    |   2 +-
>  8 files changed, 7 insertions(+), 406 deletions(-)
>  delete mode 100644 package/binutils/2.39/0001-sh-conf.patch
>  delete mode 100644 package/binutils/2.39/0002-poison-system-directories.patch
>  delete mode 100644 package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch
> 
> diff --git a/.checkpackageignore b/.checkpackageignore
> index c18cc4d417..6a45e1593c 100644
> --- a/.checkpackageignore
> +++ b/.checkpackageignore
> @@ -193,9 +193,6 @@ package/berkeleydb/0001-cwd-db_config.patch Upstream
>  package/berkeleydb/0002-atomic_compare_exchange.patch Upstream
>  package/bind/0001-cross.patch Upstream
>  package/bind/S81named Indent Shellcheck Variables
> -package/binutils/2.39/0001-sh-conf.patch Upstream
> -package/binutils/2.39/0002-poison-system-directories.patch Upstream
> -package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch Upstream
>  package/bird/0001-configure.ac-fix-build-with-autoconf-2.70.patch Upstream
>  package/bitcoin/0001-src-randomenv.cpp-fix-build-on-uclibc.patch Upstream
>  package/bmx7/0001-Fix-schedule.c-378-36-error-SIOCGSTAMP-undeclared.patch Upstream
> diff --git a/Config.in.legacy b/Config.in.legacy
> index a869279af7..94756a70ff 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -146,6 +146,12 @@ endif
>  
>  comment "Legacy options removed in 2024.02"
>  
> +config BR2_BINUTILS_VERSION_2_39_X
> +	bool "binutils 2.39 has been removed"
> +	select BR2_LEGACY
> +	help
> +	  binutils 2.39 has been removed, use a newer version.
> +
>  config BR2_PACKAGE_TINYMEMBENCH
>  	bool "tinymembench removed"
>  	select BR2_LEGACY
> diff --git a/package/binutils/2.39/0001-sh-conf.patch b/package/binutils/2.39/0001-sh-conf.patch
> deleted file mode 100644
> index fcc597e4d9..0000000000
> --- a/package/binutils/2.39/0001-sh-conf.patch
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -From 33f3c1f804efc2e4f97849081589efb70cda31e5 Mon Sep 17 00:00:00 2001
> -From: Romain Naour <romain.naour@gmail.com>
> -Date: Fri, 25 Dec 2015 11:38:13 +0100
> -Subject: [PATCH] sh-conf
> -
> -Likewise, binutils has no idea about any of these new targets either, so we
> -fix that up too.. now we're able to actually build a real toolchain for
> -sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more
> -inept targets than that one, really. Go look, I promise).
> -
> -[Romain: rebase on top of 2.32]
> -Signed-off-by: Romain Naour <romain.naour@gmail.com>
> -[Thomas: rebase on top of 2.29, in which sh64 support was removed.]
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ----
> - configure    | 2 +-
> - configure.ac | 2 +-
> - 2 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/configure b/configure
> -index 3dd206525a7..6881ce632f5 100755
> ---- a/configure
> -+++ b/configure
> -@@ -3892,7 +3892,7 @@ case "${target}" in
> -   nvptx*-*-*)
> -     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
> -     ;;
> --  sh-*-*)
> -+  sh*-*-*)
> -     case "${target}" in
> -       sh*-*-elf)
> -          ;;
> -diff --git a/configure.ac b/configure.ac
> -index 797a624621e..1f9256bbf18 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -1175,7 +1175,7 @@ case "${target}" in
> -   nvptx*-*-*)
> -     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
> -     ;;
> --  sh-*-*)
> -+  sh*-*-*)
> -     case "${target}" in
> -       sh*-*-elf)
> -          ;;
> --- 
> -2.31.1
> -
> diff --git a/package/binutils/2.39/0002-poison-system-directories.patch b/package/binutils/2.39/0002-poison-system-directories.patch
> deleted file mode 100644
> index 1d9447b5c2..0000000000
> --- a/package/binutils/2.39/0002-poison-system-directories.patch
> +++ /dev/null
> @@ -1,298 +0,0 @@
> -From 4d8705ddb55897e8a74b617ab95736d520d9e1ea Mon Sep 17 00:00:00 2001
> -From: Romain Naour <romain.naour@gmail.com>
> -Date: Fri, 25 Dec 2015 11:45:38 +0100
> -Subject: [PATCH] poison-system-directories
> -
> -Patch adapted to binutils 2.23.2 and extended to use
> -BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
> -
> -[Waldemar: rebase on top of 2.39]
> -Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> -[Romain: rebase on top of 2.33.1]
> -Signed-off-by: Romain Naour <romain.naour@gmail.com>
> -[Gustavo: adapt to binutils 2.25]
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> -Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> -
> -Upstream-Status: Inappropriate [distribution: codesourcery]
> -
> -Patch originally created by Mark Hatle, forward-ported to
> -binutils 2.21 by Scott Garman.
> -
> -purpose:  warn for uses of system directories when cross linking
> -
> -Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
> -
> -2008-07-02  Joseph Myers  <joseph@codesourcery.com>
> -
> -    ld/
> -    * ld.h (args_type): Add error_poison_system_directories.
> -    * ld.texinfo (--error-poison-system-directories): Document.
> -    * ldfile.c (ldfile_add_library_path): Check
> -    command_line.error_poison_system_directories.
> -    * ldmain.c (main): Initialize
> -    command_line.error_poison_system_directories.
> -    * lexsup.c (enum option_values): Add
> -    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
> -    (ld_options): Add --error-poison-system-directories.
> -    (parse_args): Handle new option.
> -
> -2007-06-13  Joseph Myers  <joseph@codesourcery.com>
> -
> -    ld/
> -    * config.in: Regenerate.
> -    * ld.h (args_type): Add poison_system_directories.
> -    * ld.texinfo (--no-poison-system-directories): Document.
> -    * ldfile.c (ldfile_add_library_path): Check
> -    command_line.poison_system_directories.
> -    * ldmain.c (main): Initialize
> -    command_line.poison_system_directories.
> -    * lexsup.c (enum option_values): Add
> -    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
> -    (ld_options): Add --no-poison-system-directories.
> -    (parse_args): Handle new option.
> -
> -2007-04-20  Joseph Myers  <joseph@codesourcery.com>
> -
> -    Merge from Sourcery G++ binutils 2.17:
> -
> -    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
> -    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
> -    ld/
> -    * configure.ac (--enable-poison-system-directories): New option.
> -    * configure, config.in: Regenerate.
> -    * ldfile.c (ldfile_add_library_path): If
> -    ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
> -    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
> -
> -Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> -Signed-off-by: Scott Garman <scott.a.garman@intel.com>
> ----
> - ld/config.in    |  3 +++
> - ld/configure    | 14 ++++++++++++++
> - ld/configure.ac | 10 ++++++++++
> - ld/ld.h         |  8 ++++++++
> - ld/ld.texi      | 12 ++++++++++++
> - ld/ldfile.c     | 17 +++++++++++++++++
> - ld/ldlex.h      |  2 ++
> - ld/ldmain.c     |  2 ++
> - ld/lexsup.c     | 21 +++++++++++++++++++++
> - 9 files changed, 89 insertions(+)
> -
> -diff -Nur binutils-2.39.orig/ld/config.in binutils-2.39/ld/config.in
> ---- binutils-2.39.orig/ld/config.in	2022-08-05 11:56:56.000000000 +0200
> -+++ binutils-2.39/ld/config.in	2022-08-11 13:00:55.310472243 +0200
> -@@ -55,6 +55,9 @@
> -    language is requested. */
> - #undef ENABLE_NLS
> - 
> -+/* Define to warn for use of native system library directories */
> -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
> -+
> - /* Additional extension a shared object might have. */
> - #undef EXTRA_SHLIB_EXTENSION
> - 
> -diff -Nur binutils-2.39.orig/ld/configure binutils-2.39/ld/configure
> ---- binutils-2.39.orig/ld/configure	2022-08-05 11:56:54.000000000 +0200
> -+++ binutils-2.39/ld/configure	2022-08-11 13:00:55.370470806 +0200
> -@@ -836,6 +836,7 @@
> - enable_targets
> - enable_64_bit_bfd
> - with_sysroot
> -+enable_poison_system_directories
> - enable_gold
> - enable_got
> - enable_compressed_debug_sections
> -@@ -1514,6 +1515,8 @@
> -   --enable-checking       enable run-time checks
> -   --enable-targets        alternative target configurations
> -   --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
> -+  --enable-poison-system-directories
> -+                          warn for use of native system library directories
> -   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
> -   --enable-got=<type>     GOT handling scheme (target, single, negative,
> -                           multigot)
> -@@ -15370,7 +15373,18 @@
> - fi
> - 
> - 
> -+# Check whether --enable-poison-system-directories was given.
> -+if test "${enable_poison_system_directories+set}" = set; then :
> -+  enableval=$enable_poison_system_directories;
> -+else
> -+  enable_poison_system_directories=no
> -+fi
> -+
> -+if test "x${enable_poison_system_directories}" = "xyes"; then
> - 
> -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
> -+
> -+fi
> - 
> - # Check whether --enable-got was given.
> - if test "${enable_got+set}" = set; then :
> -diff -Nur binutils-2.39.orig/ld/configure.ac binutils-2.39/ld/configure.ac
> ---- binutils-2.39.orig/ld/configure.ac	2022-07-08 11:46:48.000000000 +0200
> -+++ binutils-2.39/ld/configure.ac	2022-08-11 13:00:55.370470806 +0200
> -@@ -102,6 +102,16 @@
> - AC_SUBST(TARGET_SYSTEM_ROOT)
> - AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
> - 
> -+AC_ARG_ENABLE([poison-system-directories],
> -+         AS_HELP_STRING([--enable-poison-system-directories],
> -+                [warn for use of native system library directories]),,
> -+         [enable_poison_system_directories=no])
> -+if test "x${enable_poison_system_directories}" = "xyes"; then
> -+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
> -+       [1],
> -+       [Define to warn for use of native system library directories])
> -+fi
> -+
> - dnl Use --enable-gold to decide if this linker should be the default.
> - dnl "install_as_default" is set to false if gold is the default linker.
> - dnl "installed_linker" is the installed BFD linker name.
> -diff -Nur binutils-2.39.orig/ld/ldfile.c binutils-2.39/ld/ldfile.c
> ---- binutils-2.39.orig/ld/ldfile.c	2022-07-08 11:46:48.000000000 +0200
> -+++ binutils-2.39/ld/ldfile.c	2022-08-11 13:00:55.394470231 +0200
> -@@ -117,6 +117,23 @@
> -     new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
> -   else
> -     new_dirs->name = xstrdup (name);
> -+
> -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
> -+  if (command_line.poison_system_directories
> -+  && ((!strncmp (name, "/lib", 4))
> -+      || (!strncmp (name, "/usr/lib", 8))
> -+      || (!strncmp (name, "/usr/local/lib", 14))
> -+      || (!strncmp (name, "/usr/X11R6/lib", 14))))
> -+   {
> -+     if (command_line.error_poison_system_directories)
> -+       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
> -+            "cross-compilation\n"), name);
> -+     else
> -+       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
> -+            "cross-compilation\n"), name);
> -+   }
> -+#endif
> -+
> - }
> - 
> - /* Try to open a BFD for a lang_input_statement.  */
> -diff -Nur binutils-2.39.orig/ld/ld.h binutils-2.39/ld/ld.h
> ---- binutils-2.39.orig/ld/ld.h	2022-07-08 11:46:48.000000000 +0200
> -+++ binutils-2.39/ld/ld.h	2022-08-11 13:00:55.382470519 +0200
> -@@ -162,6 +162,14 @@
> -      in the linker script.  */
> -   bool force_group_allocation;
> - 
> -+  /* If TRUE (the default) warn for uses of system directories when
> -+     cross linking.  */
> -+  bool poison_system_directories;
> -+
> -+  /* If TRUE (default FALSE) give an error for uses of system
> -+     directories when cross linking instead of a warning.  */
> -+  bool error_poison_system_directories;
> -+
> -   /* Big or little endian as set on command line.  */
> -   enum endian_enum endian;
> - 
> -diff -Nur binutils-2.39.orig/ld/ldlex.h binutils-2.39/ld/ldlex.h
> ---- binutils-2.39.orig/ld/ldlex.h	2022-07-08 11:46:48.000000000 +0200
> -+++ binutils-2.39/ld/ldlex.h	2022-08-11 13:03:35.462636396 +0200
> -@@ -164,6 +164,8 @@
> -   OPTION_CTF_VARIABLES,
> -   OPTION_NO_CTF_VARIABLES,
> -   OPTION_CTF_SHARE_TYPES,
> -+  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
> -+  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
> -   OPTION_WARN_EXECSTACK,
> -   OPTION_NO_WARN_EXECSTACK,
> -   OPTION_WARN_RWX_SEGMENTS,
> -diff -Nur binutils-2.39.orig/ld/ldmain.c binutils-2.39/ld/ldmain.c
> ---- binutils-2.39.orig/ld/ldmain.c	2022-07-08 11:46:48.000000000 +0200
> -+++ binutils-2.39/ld/ldmain.c	2022-08-11 13:00:55.402470040 +0200
> -@@ -321,6 +321,8 @@
> -   command_line.warn_mismatch = true;
> -   command_line.warn_search_mismatch = true;
> -   command_line.check_section_addresses = -1;
> -+  command_line.poison_system_directories = true;
> -+  command_line.error_poison_system_directories = false;
> - 
> -   /* We initialize DEMANGLING based on the environment variable
> -      COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
> -diff -Nur binutils-2.39.orig/ld/ld.texi binutils-2.39/ld/ld.texi
> ---- binutils-2.39.orig/ld/ld.texi	2022-07-08 11:46:48.000000000 +0200
> -+++ binutils-2.39/ld/ld.texi	2022-08-11 13:02:44.627853889 +0200
> -@@ -2936,6 +2936,18 @@
> - Passing @code{none} for @var{style} disables the setting from any
> - @code{--build-id} options earlier on the command line.
> - 
> -+@kindex --no-poison-system-directories
> -+@item --no-poison-system-directories
> -+Do not warn for @option{-L} options using system directories such as
> -+@file{/usr/lib} when cross linking.  This option is intended for use
> -+in chroot environments when such directories contain the correct
> -+libraries for the target system rather than the host.
> -+
> -+@kindex --error-poison-system-directories
> -+@item --error-poison-system-directories
> -+Give an error instead of a warning for @option{-L} options using
> -+system directories when cross linking.
> -+
> - @kindex --package-metadata=@var{JSON}
> - @item --package-metadata=@var{JSON}
> - Request the creation of a @code{.note.package} ELF note section.  The
> -diff -Nur binutils-2.39.orig/ld/lexsup.c binutils-2.39/ld/lexsup.c
> ---- binutils-2.39.orig/ld/lexsup.c	2022-07-08 11:46:48.000000000 +0200
> -+++ binutils-2.39/ld/lexsup.c	2022-08-11 13:00:55.434469274 +0200
> -@@ -608,6 +608,14 @@
> - 		   "                                <method> is: share-unconflicted (default),\n"
> - 		   "                                             share-duplicated"),
> -     TWO_DASHES },
> -+  { {"no-poison-system-directories", no_argument, NULL,
> -+    OPTION_NO_POISON_SYSTEM_DIRECTORIES},
> -+    '\0', NULL, N_("Do not warn for -L options using system directories"),
> -+    TWO_DASHES },
> -+  { {"error-poison-system-directories", no_argument, NULL,
> -+    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
> -+    '\0', NULL, N_("Give an error for -L options using system directories"),
> -+    TWO_DASHES },
> - };
> - 
> - #define OPTION_COUNT ARRAY_SIZE (ld_options)
> -@@ -620,6 +628,7 @@
> -   int ingroup = 0;
> -   char *default_dirlist = NULL;
> -   char *shortopts;
> -+  char *BR_paranoid_env;
> -   struct option *longopts;
> -   struct option *really_longopts;
> -   int last_optind;
> -@@ -1679,6 +1688,14 @@
> - 	  }
> - 	  break;
> - 
> -+	case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
> -+	  command_line.poison_system_directories = false;
> -+	  break;
> -+
> -+	case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
> -+	  command_line.error_poison_system_directories = true;
> -+	  break;
> -+
> - 	case OPTION_PUSH_STATE:
> - 	  input_flags.pushed = xmemdup (&input_flags,
> - 					sizeof (input_flags),
> -@@ -1824,6 +1841,10 @@
> -       command_line.soname = NULL;
> -     }
> - 
> -+  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
> -+  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
> -+    command_line.error_poison_system_directories = true;
> -+
> -   while (ingroup)
> -     {
> -       einfo (_("%P: missing --end-group; added as last command line option\n"));
> --- 
> -2.31.1
> diff --git a/package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch b/package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch
> deleted file mode 100644
> index bfd531b818..0000000000
> --- a/package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -From ef4ba1da823e8366ea4f126f50885a44ebf4dcf0 Mon Sep 17 00:00:00 2001
> -From: Giulio Benetti <giulio.benetti@benettiengineering.com>
> -Date: Wed, 9 Jun 2021 17:28:27 +0200
> -Subject: [PATCH] bfd/elf32-or1k: fix building with gcc version < 5
> -
> -Gcc version >= 5 has standard C mode not set to -std=gnu11, so if we use
> -an old compiler(i.e. gcc 4.9) build fails on:
> -```
> -elf32-or1k.c:2251:3: error: 'for' loop initial declarations are only allowed in
> -C99 or C11 mode
> -    for (size_t i = 0; i < insn_count; i++)
> -    ^
> -```
> -
> -So let's declare `size_t i` at the top of the function instead of inside
> -for loop.
> -
> -Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> ----
> - bfd/elf32-or1k.c | 5 +++--
> - 1 file changed, 3 insertions(+), 2 deletions(-)
> -
> -diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
> -index 4ae7f324d33..32063ab0289 100644
> ---- a/bfd/elf32-or1k.c
> -+++ b/bfd/elf32-or1k.c
> -@@ -2244,9 +2244,10 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj,
> - {
> -   unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY;
> -   unsigned output_insns[PLT_MAX_INSN_COUNT];
> -+  size_t i;
> - 
> -   /* Copy instructions into the output buffer.  */
> --  for (size_t i = 0; i < insn_count; i++)
> -+  for (i = 0; i < insn_count; i++)
> -     output_insns[i] = insns[i];
> - 
> -   /* Honor the no-delay-slot setting.  */
> -@@ -2277,7 +2278,7 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj,
> -     }
> - 
> -   /* Write out the output buffer.  */
> --  for (size_t i = 0; i < (insn_count+1); i++)
> -+  for (i = 0; i < (insn_count+1); i++)
> -     bfd_put_32 (output_bfd, output_insns[i], contents + (i*4));
> - }
> - 
> --- 
> -2.31.1
> -
> diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
> index 7c2797e5fd..85ec9b1d11 100644
> --- a/package/binutils/Config.in.host
> +++ b/package/binutils/Config.in.host
> @@ -15,10 +15,6 @@ choice
>  	help
>  	  Select the version of binutils you wish to use.
>  
> -config BR2_BINUTILS_VERSION_2_39_X
> -	bool "binutils 2.39"
> -	select BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
> -
>  config BR2_BINUTILS_VERSION_2_40_X
>  	bool "binutils 2.40"
>  
> @@ -37,7 +33,6 @@ endchoice
>  config BR2_BINUTILS_VERSION
>  	string
>  	default "arc-2023.09-release"	if BR2_BINUTILS_VERSION_ARC
> -	default "2.39"		if BR2_BINUTILS_VERSION_2_39_X
>  	default "2.40"		if BR2_BINUTILS_VERSION_2_40_X
>  	default "2.41"		if BR2_BINUTILS_VERSION_2_41_X
>  	default "2.42"		if BR2_BINUTILS_VERSION_2_42_X
> diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
> index e4c6a0b0b6..ac724d5c15 100644
> --- a/package/binutils/binutils.hash
> +++ b/package/binutils/binutils.hash
> @@ -1,5 +1,4 @@
>  # From https://gcc.gnu.org/pub/binutils/releases/sha512.sum
> -sha512  68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3  binutils-2.39.tar.xz
>  sha512  a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925  binutils-2.40.tar.xz
>  sha512  5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374  binutils-2.41.tar.xz
>  sha512  155f3ba14cd220102f4f29a4f1e5cfee3c48aa03b74603460d05afb73c70d6657a9d87eee6eb88bf13203fe6f31177a5c9addc04384e956e7da8069c8ecd20a6  binutils-2.42.tar.xz
> diff --git a/package/elf2flt/elf2flt.mk b/package/elf2flt/elf2flt.mk
> index 0def282c02..aa5595843f 100644
> --- a/package/elf2flt/elf2flt.mk
> +++ b/package/elf2flt/elf2flt.mk
> @@ -23,7 +23,7 @@ HOST_ELF2FLT_AUTORECONF = YES
>  # considered because Buildroot only supports ARC CPUs with a MMU and
>  # therefore host-elf2flt is never used on ARC. libiberty.a has
>  # remained at the same location.
> -ifeq ($(BR2_BINUTILS_VERSION_2_39_X)$(BR2_BINUTILS_VERSION_2_40_X),y)
> +ifeq ($(BR2_BINUTILS_VERSION_2_40_X),y)
>  HOST_ELF2FLT_LIBBFD_PATH = $(HOST_BINUTILS_DIR)/bfd/libbfd.a
>  else
>  HOST_ELF2FLT_LIBBFD_PATH = $(HOST_BINUTILS_DIR)/bfd/.libs/libbfd.a
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42
  2024-03-03  8:40 [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Thomas Petazzoni via buildroot
                   ` (3 preceding siblings ...)
  2024-03-03  8:40 ` [Buildroot] [PATCH next 4/4] package/binutils: drop BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME Thomas Petazzoni via buildroot
@ 2024-03-03 10:50 ` Yann E. MORIN
  4 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2024-03-03 10:50 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: buildroot

Thomas, All,

On 2024-03-03 09:40 +0100, Thomas Petazzoni via buildroot spake thusly:
> This series of patches update binutils to version 2.42, doing the
> usual dance:
> 
>  1. Add 2.42
>  2. Make 2.41 the default
>  3. Drop 2.39
> 
> An fourth patch is added to drop some code that is no longer needed
> now that binutils 2.39 is gone.

I've made some comments on two patches, to which I individually replied
already. Whole series applied to next, thanks.

Regards,
Yann E. MORIN.

> Thomas
> 
> Thomas Petazzoni (4):
>   package/binutils: add support for 2.42
>   package/binutils: make 2.41 the default version
>   package/binutils: drop support for binutils 2.39
>   package/binutils: drop BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
> 
>  .checkpackageignore                           |   3 -
>  Config.in.legacy                              |   6 +
>  ...or1k-fix-building-with-gcc-version-5.patch |  50 ------
>  .../{2.39 => 2.42}/0001-sh-conf.patch         |  14 +-
>  .../0002-poison-system-directories.patch      | 167 ++++++++++--------
>  package/binutils/Config.in.host               |  14 +-
>  package/binutils/binutils.hash                |   1 -
>  package/binutils/binutils.mk                  |  10 +-
>  package/elf2flt/elf2flt.mk                    |   2 +-
>  9 files changed, 111 insertions(+), 156 deletions(-)
>  delete mode 100644 package/binutils/2.39/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch
>  rename package/binutils/{2.39 => 2.42}/0001-sh-conf.patch (82%)
>  rename package/binutils/{2.39 => 2.42}/0002-poison-system-directories.patch (79%)
> 
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2024-03-03 10:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-03  8:40 [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Thomas Petazzoni via buildroot
2024-03-03  8:40 ` [Buildroot] [PATCH next 1/4] package/binutils: add support for 2.42 Thomas Petazzoni via buildroot
2024-03-03  9:31   ` Yann E. MORIN
2024-03-03  8:40 ` [Buildroot] [PATCH next 2/4] package/binutils: make 2.41 the default version Thomas Petazzoni via buildroot
2024-03-03  8:40 ` [Buildroot] [PATCH next 3/4] package/binutils: drop support for binutils 2.39 Thomas Petazzoni via buildroot
2024-03-03 10:49   ` Yann E. MORIN
2024-03-03  8:40 ` [Buildroot] [PATCH next 4/4] package/binutils: drop BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME Thomas Petazzoni via buildroot
2024-03-03 10:50 ` [Buildroot] [PATCH next 0/4] Upgrade to Binutils 2.42 Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox