* [Buildroot] [PATCH 0/3] binutils: bump to 2.45, default to 2.44, drop 2.42
@ 2025-11-20 22:15 Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 1/3] package/binutils: add support for binutils 2.45.1 Thomas Petazzoni via buildroot
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-11-20 22:15 UTC (permalink / raw)
To: buildroot; +Cc: Thomas Petazzoni
Hello,
Since binutils 2.45.1 has been released, this series implements the
usual dance around binutils versions.
It has been tested with:
An i386 glibc toolchain build:
BR2_BINUTILS_VERSION_2_45_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
An ARM 32-bit uclibc toolchain build:
BR2_arm=y
BR2_cortex_a8=y
BR2_TOOLCHAIN_BUILDROOT_UCLIBC=y
BR2_BINUTILS_VERSION_2_45_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
A RISC-V musl build, with older gcc, older headers:
BR2_riscv=y
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
BR2_KERNEL_HEADERS_6_12=y
BR2_BINUTILS_VERSION_2_45_X=y
BR2_GCC_VERSION_13_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
Thomas Petazzoni (3):
package/binutils: add support for binutils 2.45.1
package/binutils: make binutils 2.44 be the default
package/binutils: remove support for binutils 2.42
Config.in.legacy | 9 +
...ertion-fail-in-nios2_elf32_install_i.patch | 125 ---
...gnu23-compatibility-wrt-static_asser.patch | 90 --
...ngs-when-building-gprofng-with-Clang.patch | 770 ------------------
...gnu23-compatibility-wrt-unprototyped.patch | 619 --------------
...007-gprofng-fix-build-with-std-gnu23.patch | 199 -----
.../{2.42 => 2.45.1}/0001-sh-conf.patch | 12 +-
.../0002-poison-system-directories.patch | 61 +-
package/binutils/Config.in.host | 10 +-
package/binutils/binutils.hash | 2 +-
package/binutils/binutils.mk | 2 +-
11 files changed, 53 insertions(+), 1846 deletions(-)
delete mode 100644 package/binutils/2.42/0003-PR27597-nios-assertion-fail-in-nios2_elf32_install_i.patch
delete mode 100644 package/binutils/2.42/0004-opcodes-fix-std-gnu23-compatibility-wrt-static_asser.patch
delete mode 100644 package/binutils/2.42/0005-Fix-32097-Warnings-when-building-gprofng-with-Clang.patch
delete mode 100644 package/binutils/2.42/0006-gprofng-fix-std-gnu23-compatibility-wrt-unprototyped.patch
delete mode 100644 package/binutils/2.42/0007-gprofng-fix-build-with-std-gnu23.patch
rename package/binutils/{2.42 => 2.45.1}/0001-sh-conf.patch (84%)
rename package/binutils/{2.42 => 2.45.1}/0002-poison-system-directories.patch (87%)
--
2.51.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/3] package/binutils: add support for binutils 2.45.1
2025-11-20 22:15 [Buildroot] [PATCH 0/3] binutils: bump to 2.45, default to 2.44, drop 2.42 Thomas Petazzoni via buildroot
@ 2025-11-20 22:15 ` Thomas Petazzoni via buildroot
2025-11-21 15:13 ` Julien Olivain via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 2/3] package/binutils: make binutils 2.44 be the default Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 3/3] package/binutils: remove support for binutils 2.42 Thomas Petazzoni via buildroot
2 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-11-20 22:15 UTC (permalink / raw)
To: buildroot; +Cc: Thomas Petazzoni, Giulio Benetti, Romain Naour
We bring patches 0001 and 0002 that we carry for binutils 2.44. Patch
0002 requires a small update as a nearby configure option has been
removed between 2.44 and 2.45. Patch 0003 that we have for binutils
2.44 is not needed as it is part of the 2.45 release.
Changes in 2.45:
* New versioned release of libsframe: libsframe.so.2. This release introduces
versioned symbols with version node name LIBSFRAME_2.0. Some new symbols
have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL and
retrieving flags from SFrame decoder and encoder objects:
- Addition of sframe_decoder_get_flags,
sframe_decoder_get_offsetof_fde_start_addr, sframe_encoder_get_flags,
sframe_encoder_get_offsetof_fde_start_addr.
This release also includes backward-incompatible ABI changes:
- Removal of sframe_get_funcdesc_with_addr.
- Change in the behavior of sframe_decoder_get_funcdesc_v2,
sframe_encoder_add_funcdesc_v2 and sframe_encoder_write.
* On s390 64-bit (s390x), gas, ld, objdump, and readelf now support generating
and processing SFrame V2 stack trace information (.sframe). The assembler
generates SFrame info from CFI directives with option "--gsframe". The
linker generates SFrame info for the linker-generated .plt section and merges
all .sframe sections. Both objdump and readelf dump SFrame info with option
"--sframe[=<section-name>]".
* For SFrame stack trace format, the function start address in each SFrame
FDE has a changed encoding: The 32-bit signed integer now holds the offset
of the start PC of the associated function from the sfde_func_start_address
field itself (instead of the earlier where it was the offset from the start
of the SFrame section itself). All SFrame sections generated by gas and ld
now default to this new encoding, setting the (new)
SFRAME_F_FDE_FUNC_START_PCREL flag.
Relocatable SFrame links are now fixed.
* Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and
GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp
extensions.
* For RISC-V dis-assembler, the definition of mapping symbol $x is changed,
so the file needs to be rebuilt since 2.45 once used .option arch directives.
* The LoongArch disassembler now properly accepts multiple disassembly
options given by -M, such as "-M no-aliases,numeric". (Previously only the
first option took effect.)
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
package/binutils/2.45.1/0001-sh-conf.patch | 50 +++
.../0002-poison-system-directories.patch | 310 ++++++++++++++++++
package/binutils/Config.in.host | 4 +
package/binutils/binutils.hash | 1 +
4 files changed, 365 insertions(+)
create mode 100644 package/binutils/2.45.1/0001-sh-conf.patch
create mode 100644 package/binutils/2.45.1/0002-poison-system-directories.patch
diff --git a/package/binutils/2.45.1/0001-sh-conf.patch b/package/binutils/2.45.1/0001-sh-conf.patch
new file mode 100644
index 0000000000..66104ca580
--- /dev/null
+++ b/package/binutils/2.45.1/0001-sh-conf.patch
@@ -0,0 +1,50 @@
+From 0bf75276c392cac7794e78e1572abcd793d99e4e 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 bbfb5979546..bcd95684ae1 100755
+--- a/configure
++++ b/configure
+@@ -4056,7 +4056,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 f9694cdf901..d6a3623ba50 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1278,7 +1278,7 @@ case "${target}" in
+ nvptx*-*-*)
+ noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+ ;;
+- sh-*-*)
++ sh*-*-*)
+ case "${target}" in
+ sh*-*-elf)
+ ;;
+--
+2.51.1
+
diff --git a/package/binutils/2.45.1/0002-poison-system-directories.patch b/package/binutils/2.45.1/0002-poison-system-directories.patch
new file mode 100644
index 0000000000..fc60b5874f
--- /dev/null
+++ b/package/binutils/2.45.1/0002-poison-system-directories.patch
@@ -0,0 +1,310 @@
+From 92f4bd0e1713577e30491e99a0226088eaeae740 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.43]
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+[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 | 16 ++++++++++++++++
+ ld/ldlex.h | 2 ++
+ ld/ldmain.c | 2 ++
+ ld/lexsup.c | 21 +++++++++++++++++++++
+ 9 files changed, 88 insertions(+)
+
+diff --git a/ld/config.in b/ld/config.in
+index 790efd336be..2b237bcda5e 100644
+--- a/ld/config.in
++++ b/ld/config.in
+@@ -86,6 +86,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 cd410bd64d1..7e9913949d4 100755
+--- a/ld/configure
++++ b/ld/configure
+@@ -841,6 +841,7 @@ enable_checking
+ with_lib_path
+ enable_targets
+ with_sysroot
++enable_poison_system_directories
+ enable_gold
+ enable_got
+ enable_compressed_debug_sections
+@@ -1535,6 +1536,8 @@ Optional Features:
+ --disable-largefile omit support for large files
+ --enable-checking enable run-time checks
+ --enable-targets alternative target configurations
++ --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)
+@@ -15393,7 +15396,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 f528ae42ef7..dcf1e17fae6 100644
+--- a/ld/configure.ac
++++ b/ld/configure.ac
+@@ -115,6 +115,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 c8688153bd4..0b16caf347a 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 cf750d15259..1acaa26f107 100644
+--- a/ld/ld.texi
++++ b/ld/ld.texi
+@@ -3362,6 +3362,18 @@ bit 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 75fd360d5e3..3526ea8146c 100644
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -328,6 +328,22 @@ 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
+ }
+
+ static void
+diff --git a/ld/ldlex.h b/ld/ldlex.h
+index c8d61478c60..4b175dca108 100644
+--- a/ld/ldlex.h
++++ b/ld/ldlex.h
+@@ -172,6 +172,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 67c60c3f80d..c2365e4006c 100644
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -671,6 +671,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 bde20465835..422866f4ea9 100644
+--- a/ld/lexsup.c
++++ b/ld/lexsup.c
+@@ -652,6 +652,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)
+@@ -664,6 +672,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;
+@@ -1800,6 +1809,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),
+@@ -1944,6 +1961,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.51.1
+
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 33002e0028..5def479d09 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -25,6 +25,9 @@ config BR2_BINUTILS_VERSION_2_43_X
config BR2_BINUTILS_VERSION_2_44_X
bool "binutils 2.44"
+config BR2_BINUTILS_VERSION_2_45_X
+ bool "binutils 2.45"
+
endchoice
config BR2_BINUTILS_VERSION
@@ -33,6 +36,7 @@ config BR2_BINUTILS_VERSION
default "2.42" if BR2_BINUTILS_VERSION_2_42_X
default "2.43.1" if BR2_BINUTILS_VERSION_2_43_X
default "2.44" if BR2_BINUTILS_VERSION_2_44_X
+ default "2.45.1" if BR2_BINUTILS_VERSION_2_45_X
config BR2_BINUTILS_GPROFNG
bool "gprofng support"
diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
index b40463262c..9e7a029461 100644
--- a/package/binutils/binutils.hash
+++ b/package/binutils/binutils.hash
@@ -2,6 +2,7 @@
sha512 155f3ba14cd220102f4f29a4f1e5cfee3c48aa03b74603460d05afb73c70d6657a9d87eee6eb88bf13203fe6f31177a5c9addc04384e956e7da8069c8ecd20a6 binutils-2.42.tar.xz
sha512 20977ad17729141a2c26d358628f44a0944b84dcfefdec2ba029c2d02f40dfc41cc91c0631044560d2bd6f9a51e1f15846b4b311befbe14f1239f14ff7d57824 binutils-2.43.1.tar.xz
sha512 b85d3bbc0e334cf67a96219d3c7c65fbf3e832b2c98a7417bf131f3645a0307057ec81cd2b29ff2563cec53e3d42f73e2c60cc5708e80d4a730efdcc6ae14ad7 binutils-2.44.tar.xz
+sha512 ea030419eba387579ab717be7e3223fc99e93b586860b06003c12489f93441640d4082736f76aa5e98233db4f46e232f536a45e471486de1f5b64e1b827c167e binutils-2.45.1.tar.xz
# Locally calculated (fetched from Github)
sha512 46c336a16bde7b73dc4ceac0986887d47d542a1452e1936ef871b5e76afdb6cad4b18ccb4d93341358e7bb92c2ef74781e1fb72935d527d15251ac9f9daa8305 binutils-gdb-arc-2024.12-release.tar.gz
--
2.51.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 2/3] package/binutils: make binutils 2.44 be the default
2025-11-20 22:15 [Buildroot] [PATCH 0/3] binutils: bump to 2.45, default to 2.44, drop 2.42 Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 1/3] package/binutils: add support for binutils 2.45.1 Thomas Petazzoni via buildroot
@ 2025-11-20 22:15 ` Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 3/3] package/binutils: remove support for binutils 2.42 Thomas Petazzoni via buildroot
2 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-11-20 22:15 UTC (permalink / raw)
To: buildroot; +Cc: Thomas Petazzoni, Giulio Benetti, Romain Naour
Now that support for binutils 2.45 has been introduced, we follow our
policy of making binutils 2.44 the default version.
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 5def479d09..1bafdb0437 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -7,7 +7,7 @@ config BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI
choice
prompt "Binutils Version"
- default BR2_BINUTILS_VERSION_2_43_X if !BR2_arc
+ default BR2_BINUTILS_VERSION_2_44_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 c79f3414af..0f2384d69d 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-2024.12-release
else
-BINUTILS_VERSION = 2.43.1
+BINUTILS_VERSION = 2.44
endif
endif # BINUTILS_VERSION
--
2.51.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 3/3] package/binutils: remove support for binutils 2.42
2025-11-20 22:15 [Buildroot] [PATCH 0/3] binutils: bump to 2.45, default to 2.44, drop 2.42 Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 1/3] package/binutils: add support for binutils 2.45.1 Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 2/3] package/binutils: make binutils 2.44 be the default Thomas Petazzoni via buildroot
@ 2025-11-20 22:15 ` Thomas Petazzoni via buildroot
2 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-11-20 22:15 UTC (permalink / raw)
To: buildroot; +Cc: Thomas Petazzoni, Giulio Benetti, Romain Naour
Now that binutils 2.45 has been introduced and binutils 2.44 made the
default version, drop the oldest supported version, binutils 2.42,
keeping only the 3 last versions supported: 2.43, 2.44 and 2.45.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
Config.in.legacy | 9 +
package/binutils/2.42/0001-sh-conf.patch | 50 --
.../2.42/0002-poison-system-directories.patch | 309 -------
...ertion-fail-in-nios2_elf32_install_i.patch | 125 ---
...gnu23-compatibility-wrt-static_asser.patch | 90 --
...ngs-when-building-gprofng-with-Clang.patch | 770 ------------------
...gnu23-compatibility-wrt-unprototyped.patch | 619 --------------
...007-gprofng-fix-build-with-std-gnu23.patch | 199 -----
package/binutils/Config.in.host | 4 -
package/binutils/binutils.hash | 1 -
10 files changed, 9 insertions(+), 2167 deletions(-)
delete mode 100644 package/binutils/2.42/0001-sh-conf.patch
delete mode 100644 package/binutils/2.42/0002-poison-system-directories.patch
delete mode 100644 package/binutils/2.42/0003-PR27597-nios-assertion-fail-in-nios2_elf32_install_i.patch
delete mode 100644 package/binutils/2.42/0004-opcodes-fix-std-gnu23-compatibility-wrt-static_asser.patch
delete mode 100644 package/binutils/2.42/0005-Fix-32097-Warnings-when-building-gprofng-with-Clang.patch
delete mode 100644 package/binutils/2.42/0006-gprofng-fix-std-gnu23-compatibility-wrt-unprototyped.patch
delete mode 100644 package/binutils/2.42/0007-gprofng-fix-build-with-std-gnu23.patch
diff --git a/Config.in.legacy b/Config.in.legacy
index 36296ca843..e6fc22a3d2 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -144,6 +144,15 @@ endif
###############################################################################
+comment "Legacy options removed in 2026.02"
+
+config BR2_BINUTILS_VERSION_2_42_X
+ bool "binutils 2.42 has been removed"
+ select BR2_LEGACY
+ help
+ binutils 2.42 has been removed, select a newer version
+ instead.
+
comment "Legacy options removed in 2025.11"
config BR2_PACKAGE_OLA
diff --git a/package/binutils/2.42/0001-sh-conf.patch b/package/binutils/2.42/0001-sh-conf.patch
deleted file mode 100644
index c381017850..0000000000
--- a/package/binutils/2.42/0001-sh-conf.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-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
deleted file mode 100644
index 5c790999d4..0000000000
--- a/package/binutils/2.42/0002-poison-system-directories.patch
+++ /dev/null
@@ -1,309 +0,0 @@
-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/2.42/0003-PR27597-nios-assertion-fail-in-nios2_elf32_install_i.patch b/package/binutils/2.42/0003-PR27597-nios-assertion-fail-in-nios2_elf32_install_i.patch
deleted file mode 100644
index 4753ae13c4..0000000000
--- a/package/binutils/2.42/0003-PR27597-nios-assertion-fail-in-nios2_elf32_install_i.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 900c0f0aa3d78cd9e67ccd26fbc86224cef4c5b1 Mon Sep 17 00:00:00 2001
-From: Alan Modra <amodra@gmail.com>
-Date: Fri, 16 Feb 2024 22:33:29 +1030
-Subject: [PATCH] PR27597, nios: assertion fail in nios2_elf32_install_imm16
-
-The assertion in nios2_elf32_install_imm16 triggers when the PLT is
-twice the maximum allowable size for a branch from PLTn to reach
-.PLTresolve, and on no other call to nios2_elf32_install_imm16. That
-makes the assertion completely useless. We can handle a PIC PLT
-exceeding 0x8000 in size by bouncing branches that won't reach through
-previous branches.
-
- PR 27597
- * elf32-nios2.c (nios2_elf32_install_imm16): Delete BFD_ASSERT.
- (nios2_build_one_stub): Don't bother masking value passed to
- nios2_elf32_install_imm16.
- (nios2_elf32_finish_dynamic_symbol): Likewise. Handle overflow
- of PLTn branch to .PLTresolve by bouncing through prior branches.
-
-Upstream: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=900c0f0aa3d78cd9e67ccd26fbc86224cef4c5b1
-
-Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
----
- bfd/elf32-nios2.c | 40 ++++++++++++++++++++++++----------------
- 1 file changed, 24 insertions(+), 16 deletions(-)
-
-diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c
-index bebf4239958..7f61e2f8507 100644
---- a/bfd/elf32-nios2.c
-+++ b/bfd/elf32-nios2.c
-@@ -1878,8 +1878,6 @@ nios2_elf32_install_imm16 (asection *sec, bfd_vma offset, bfd_vma value)
- {
- bfd_vma word = bfd_get_32 (sec->owner, sec->contents + offset);
-
-- BFD_ASSERT (value <= 0xffff || ((bfd_signed_vma) value) >= -0xffff);
--
- bfd_put_32 (sec->owner, word | ((value & 0xffff) << 6),
- sec->contents + offset);
- }
-@@ -2518,7 +2516,7 @@ nios2_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg ATTRIBUTE_U
- nios2_elf32_install_imm16 (stub_sec, hsh->stub_offset,
- hiadj (sym_value));
- nios2_elf32_install_imm16 (stub_sec, hsh->stub_offset + 4,
-- (sym_value & 0xffff));
-+ sym_value);
- stub_sec->size += 12;
- break;
- default:
-@@ -4986,16 +4984,28 @@ nios2_elf32_finish_dynamic_symbol (bfd *output_bfd,
- /* Emit the PLT entry. */
- if (bfd_link_pic (info))
- {
-+ bfd_vma br_offset;
-+
- nios2_elf32_install_data (splt, nios2_so_plt_entry, h->plt.offset,
- 3);
- plt_index = (h->plt.offset - 24) / 12;
- got_offset = (plt_index + 3) * 4;
- nios2_elf32_install_imm16 (splt, h->plt.offset,
-- hiadj(plt_index * 4));
-+ hiadj (plt_index * 4));
- nios2_elf32_install_imm16 (splt, h->plt.offset + 4,
-- (plt_index * 4) & 0xffff);
-- nios2_elf32_install_imm16 (splt, h->plt.offset + 8,
-- 0xfff4 - h->plt.offset);
-+ plt_index * 4);
-+ br_offset = -(h->plt.offset + 12);
-+ /* If this plt entry is too far away from the start of .plt
-+ for the "br" to reach .PLTresolve, bounce through one or
-+ more of the previous "br" instructions. */
-+ if (br_offset < (bfd_vma) -32768)
-+ {
-+ br_offset += 32768 / 12 * 12 - 4;
-+ while (br_offset < (bfd_vma) -32768)
-+ br_offset += 32768 / 12 * 12;
-+ }
-+ nios2_elf32_install_imm16 (splt, h->plt.offset + 8, br_offset);
-+
- got_address = (sgotplt->output_section->vma + sgotplt->output_offset
- + got_offset);
-
-@@ -5014,9 +5024,8 @@ nios2_elf32_finish_dynamic_symbol (bfd *output_bfd,
- nios2_elf32_install_data (splt, nios2_plt_entry, h->plt.offset, 3);
- got_address = (sgotplt->output_section->vma + sgotplt->output_offset
- + got_offset);
-- nios2_elf32_install_imm16 (splt, h->plt.offset, hiadj(got_address));
-- nios2_elf32_install_imm16 (splt, h->plt.offset + 4,
-- got_address & 0xffff);
-+ nios2_elf32_install_imm16 (splt, h->plt.offset, hiadj (got_address));
-+ nios2_elf32_install_imm16 (splt, h->plt.offset + 4, got_address);
-
- /* Fill in the entry in the global offset table. */
- bfd_put_32 (output_bfd,
-@@ -5217,8 +5226,8 @@ nios2_elf32_finish_dynamic_sections (bfd *output_bfd,
- BFD_ASSERT ((got_pcrel & 0xf) == 0);
- nios2_elf32_install_data (splt, nios2_so_plt0_entry, 0, 6);
- nios2_elf32_install_imm16 (splt, 4, hiadj (got_pcrel));
-- nios2_elf32_install_imm16 (splt, 12, got_pcrel & 0xffff);
-- nios2_elf32_install_imm16 (splt, 16, (got_pcrel + 4) & 0xffff);
-+ nios2_elf32_install_imm16 (splt, 12, got_pcrel);
-+ nios2_elf32_install_imm16 (splt, 16, got_pcrel + 4);
- }
- else
- {
-@@ -5240,14 +5249,13 @@ nios2_elf32_finish_dynamic_sections (bfd *output_bfd,
-
- nios2_elf32_install_data (splt, nios2_plt0_entry, res_size, 7);
- nios2_elf32_install_imm16 (splt, res_size, hiadj (res_start));
-- nios2_elf32_install_imm16 (splt, res_size + 4,
-- res_start & 0xffff);
-+ nios2_elf32_install_imm16 (splt, res_size + 4, res_start);
- nios2_elf32_install_imm16 (splt, res_size + 12,
- hiadj (got_address));
- nios2_elf32_install_imm16 (splt, res_size + 16,
-- (got_address + 4) & 0xffff);
-+ got_address + 4);
- nios2_elf32_install_imm16 (splt, res_size + 20,
-- (got_address + 8) & 0xffff);
-+ got_address + 8);
- }
- }
- }
---
-2.34.1
-
diff --git a/package/binutils/2.42/0004-opcodes-fix-std-gnu23-compatibility-wrt-static_asser.patch b/package/binutils/2.42/0004-opcodes-fix-std-gnu23-compatibility-wrt-static_asser.patch
deleted file mode 100644
index f9b870afa2..0000000000
--- a/package/binutils/2.42/0004-opcodes-fix-std-gnu23-compatibility-wrt-static_asser.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4 Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Sat, 16 Nov 2024 05:03:52 +0000
-Subject: [PATCH] opcodes: fix -std=gnu23 compatibility wrt static_assert
-
-static_assert is declared in C23 so we can't reuse that identifier:
-* Define our own static_assert conditionally;
-
-* Rename "static assert" hacks to _N as we do already in some places
- to avoid a conflict.
-
-ChangeLog:
- PR ld/32372
-
- * i386-gen.c (static_assert): Define conditionally.
- * mips-formats.h (MAPPED_INT): Rename identifier.
- (MAPPED_REG): Rename identifier.
- (OPTIONAL_MAPPED_REG): Rename identifier.
- * s390-opc.c (static_assert): Define conditionally.
-
-Upstream: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4
-Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
----
- opcodes/i386-gen.c | 2 ++
- opcodes/mips-formats.h | 6 +++---
- opcodes/s390-opc.c | 2 ++
- 3 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
-index 053b66675c5..7ee8a30310c 100644
---- a/opcodes/i386-gen.c
-+++ b/opcodes/i386-gen.c
-@@ -30,7 +30,9 @@
-
- /* Build-time checks are preferrable over runtime ones. Use this construct
- in preference where possible. */
-+#ifndef static_assert
- #define static_assert(e) ((void)sizeof (struct { int _:1 - 2 * !(e); }))
-+#endif
-
- static const char *program_name = NULL;
- static int debug = 0;
-diff --git a/opcodes/mips-formats.h b/opcodes/mips-formats.h
-index 90df7100803..c4dec6352bf 100644
---- a/opcodes/mips-formats.h
-+++ b/opcodes/mips-formats.h
-@@ -49,7 +49,7 @@
- #define MAPPED_INT(SIZE, LSB, MAP, PRINT_HEX) \
- { \
- typedef char ATTRIBUTE_UNUSED \
-- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
-+ static_assert_3[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
- static const struct mips_mapped_int_operand op = { \
- { OP_MAPPED_INT, SIZE, LSB }, MAP, PRINT_HEX \
- }; \
-@@ -83,7 +83,7 @@
- #define MAPPED_REG(SIZE, LSB, BANK, MAP) \
- { \
- typedef char ATTRIBUTE_UNUSED \
-- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
-+ static_assert_4[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
- static const struct mips_reg_operand op = { \
- { OP_REG, SIZE, LSB }, OP_REG_##BANK, MAP \
- }; \
-@@ -93,7 +93,7 @@
- #define OPTIONAL_MAPPED_REG(SIZE, LSB, BANK, MAP) \
- { \
- typedef char ATTRIBUTE_UNUSED \
-- static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
-+ static_assert_5[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
- static const struct mips_reg_operand op = { \
- { OP_OPTIONAL_REG, SIZE, LSB }, OP_REG_##BANK, MAP \
- }; \
-diff --git a/opcodes/s390-opc.c b/opcodes/s390-opc.c
-index 9d9f0973e55..49efd714157 100644
---- a/opcodes/s390-opc.c
-+++ b/opcodes/s390-opc.c
-@@ -36,7 +36,9 @@
-
- /* Build-time checks are preferrable over runtime ones. Use this construct
- in preference where possible. */
-+#ifndef static_assert
- #define static_assert(e) ((void)sizeof (struct { int _:1 - 2 * !(e); }))
-+#endif
-
- #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
-
---
-2.34.1
-
diff --git a/package/binutils/2.42/0005-Fix-32097-Warnings-when-building-gprofng-with-Clang.patch b/package/binutils/2.42/0005-Fix-32097-Warnings-when-building-gprofng-with-Clang.patch
deleted file mode 100644
index 2f75861434..0000000000
--- a/package/binutils/2.42/0005-Fix-32097-Warnings-when-building-gprofng-with-Clang.patch
+++ /dev/null
@@ -1,770 +0,0 @@
-From 0cec0418dacd30f4215d0d778b4e5d23f6a93801 Mon Sep 17 00:00:00 2001
-From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
-Date: Tue, 3 Sep 2024 21:30:31 -0700
-Subject: [PATCH] Fix 32097 Warnings when building gprofng with Clang
-
-gprofng/ChangeLog
-2024-09-03 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>.
-
- PR gprofng/32097
- * common/hwcdrv.c: Fix -Wempty-body warnings.
- * common/hwcentry.h: Fix -Wdeprecated-non-prototype warnings.
- * common/hwctable.c: Fix -Wdeprecated-non-prototype warnings.
- * libcollector/collector.c: Likewise.
- * libcollector/collector.h: Likewise.
- * libcollector/collectorAPI.c: Likewise.
- * libcollector/dispatcher.c: Likewise.
- * libcollector/iotrace.c: Likewise.
- * libcollector/libcol_util.c: Fix -Wunused-but-set-variable warnings.
- * libcollector/libcol_util.h: Remove unused declarations.
- * libcollector/linetrace.c: Fix -Wdeprecated-non-prototype warnings.
- * src/BaseMetricTreeNode.h: Fix -Wunused-private-field warnings.
- * src/Dbe.cc: Fix -Wself-assign warnings.
- * src/DbeSession.cc: Fix -Wunused-but-set-variable warnings.
- * src/Disasm.cc: Fix -Wunused-const-variable warnings.
- * src/Experiment.cc: Fix -Wunused-private-field warnings.
- * src/HashMap.h: Fix -Wself-assign warnings.
- * src/IOActivity.h: Fix -Wunused-private-field warnings.
- * src/collctrl.cc: Fix -Wself-assign, -Wparentheses-equality warnings.
- * src/collctrl.h: Fix -Wunused-private-field warnings.
- * src/collector_module.h: Fix -Wdeprecated-non-prototype warnings.
- * src/gp-display-src.cc: Fix -Wunused-private-field warnings.
- * src/gp-print.h: Fix -Wheader-guard warnings.
- * src/hwc_intel_icelake.h: Fix -Winitializer-overrides warnings.
- * src/util.cc: Fix -Wunused-but-set-variable warnings.
-
-Upstream: b79c457ca01df82dbe1facb708e45def4584c903
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
----
- gprofng/common/hwcdrv.c | 3 ++-
- gprofng/common/hwcentry.h | 7 +----
- gprofng/common/hwctable.c | 13 +---------
- gprofng/libcollector/collector.c | 15 ++++-------
- gprofng/libcollector/collector.h | 2 +-
- gprofng/libcollector/collectorAPI.c | 15 ++++++-----
- gprofng/libcollector/dispatcher.c | 19 ++++++++------
- gprofng/libcollector/iotrace.c | 12 ++++-----
- gprofng/libcollector/libcol_util.c | 2 --
- gprofng/libcollector/libcol_util.h | 6 -----
- gprofng/libcollector/linetrace.c | 40 +++++++++++++++++------------
- gprofng/src/BaseMetricTreeNode.h | 1 -
- gprofng/src/Dbe.cc | 12 ++++-----
- gprofng/src/DbeSession.cc | 3 ---
- gprofng/src/Disasm.cc | 1 -
- gprofng/src/Experiment.cc | 2 --
- gprofng/src/HashMap.h | 3 +--
- gprofng/src/IOActivity.h | 1 -
- gprofng/src/collctrl.cc | 14 +++++-----
- gprofng/src/collector_module.h | 20 +++++++--------
- gprofng/src/gp-display-src.cc | 8 ------
- gprofng/src/gp-print.h | 2 +-
- gprofng/src/util.cc | 10 +++-----
- 23 files changed, 84 insertions(+), 127 deletions(-)
-
-diff --git a/gprofng/common/hwcdrv.c b/gprofng/common/hwcdrv.c
-index 2d549b0d6a5..fa1ad32430b 100644
---- a/gprofng/common/hwcdrv.c
-+++ b/gprofng/common/hwcdrv.c
-@@ -650,6 +650,7 @@ read_sample (counter_state_t *ctr_state, int msgsz, uint64_t *rvalue,
- static void
- dump_perf_event_attr (struct perf_event_attr *at)
- {
-+#if defined(DEBUG)
- TprintfT (DBG_LT2, "dump_perf_event_attr: size=%d type=%d sample_period=%lld\n"
- " config=0x%llx config1=0x%llx config2=0x%llx wakeup_events=%lld __reserved_1=%lld\n",
- (int) at->size, (int) at->type, (unsigned long long) at->sample_period,
-@@ -665,13 +666,13 @@ dump_perf_event_attr (struct perf_event_attr *at)
- DUMP_F (exclude_kernel);
- DUMP_F (exclude_hv);
- DUMP_F (exclude_idle);
-- // DUMP_F(xmmap);
- DUMP_F (comm);
- DUMP_F (freq);
- DUMP_F (inherit_stat);
- DUMP_F (enable_on_exec);
- DUMP_F (task);
- DUMP_F (watermark);
-+#endif
- }
-
- static void
-diff --git a/gprofng/common/hwcentry.h b/gprofng/common/hwcentry.h
-index a35a363e693..7899875cf96 100644
---- a/gprofng/common/hwcentry.h
-+++ b/gprofng/common/hwcentry.h
-@@ -202,17 +202,12 @@ extern "C"
- extern char *hwc_get_docref (char *buf, size_t buflen);
- /* Return a CPU HWC document reference, or NULL. */
-
-- // TBR
-- extern char *hwc_get_default_cntrs ();
-- /* Return a default HW counter string; may be NULL, or zero-length */
-- /* NULL means none is defined in the table; or zero-length means string defined could not be loaded */
--
- extern char *hwc_get_default_cntrs2 (int forKernel, int style);
- /* like hwc_get_default_cntrs() for style==1 */
- /* but allows other styles of formatting as well */
- /* deprecate and eventually remove hwc_get_default_cntrs() */
-
-- extern char *hwc_get_orig_default_cntrs ();
-+ extern char *hwc_get_orig_default_cntrs (int forKernel);
- /* Get the default HW counter string as set in the table */
- /* NULL means none is defined in the table */
-
-diff --git a/gprofng/common/hwctable.c b/gprofng/common/hwctable.c
-index d0735132fac..fe9153190e7 100644
---- a/gprofng/common/hwctable.c
-+++ b/gprofng/common/hwctable.c
-@@ -3231,7 +3231,7 @@ check_tables ()
- }
- #endif
-
--static int try_a_counter ();
-+static int try_a_counter (int forKernel);
- static void hwc_process_raw_ctrs (int forKernel, Hwcentry ***pstd_out,
- Hwcentry ***praw_out, Hwcentry ***phidden_out,
- Hwcentry**static_tables,
-@@ -4321,17 +4321,6 @@ hwc_get_docref (char *buf, size_t buflen)
- return buf;
- }
-
--//TBR:
--
--extern char*
--hwc_get_default_cntrs ()
--{
-- setup_cpcx ();
-- if (cpcx_default_hwcs[0] != NULL)
-- return strdup (cpcx_default_hwcs[0]); // TBR deprecate this
-- return NULL;
--}
--
- extern char*
- hwc_get_default_cntrs2 (int forKernel, int style)
- {
-diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
-index 39529758600..ef580dcbdd9 100644
---- a/gprofng/libcollector/collector.c
-+++ b/gprofng/libcollector/collector.c
-@@ -210,15 +210,10 @@ get_collector_interface ()
- static void
- collector_module_init (CollectorInterface *col_intf)
- {
-- int nmodules = 0;
--
- ModuleInitFunc next_init = (ModuleInitFunc) dlsym (RTLD_DEFAULT, "__collector_module_init");
- if (next_init != NULL)
-- {
-- nmodules++;
-- next_init (col_intf);
-- }
-- TprintfT (DBG_LT1, "collector_module_init: %d modules\n", nmodules);
-+ next_init (col_intf);
-+ TprintfT (DBG_LT1, "collector_module_init: %d modules\n", next_init ? 1 : 0);
- }
-
- /* Routines concerned with general experiment start and stop */
-@@ -1784,7 +1779,7 @@ __collector_pause ()
- }
-
- void
--__collector_pause_m (char *reason)
-+__collector_pause_m (const char *reason)
- {
- hrtime_t now;
- char xreason[MAXPATHLEN];
-@@ -2451,8 +2446,8 @@ __collector_dlog (int tflag, int level, char *format, ...)
-
- static void (*__real__exit) (int status) = NULL; /* libc only: _exit */
- static void (*__real__Exit) (int status) = NULL; /* libc only: _Exit */
--void _exit () __attribute__ ((weak, alias ("__collector_exit")));
--void _Exit () __attribute__ ((weak, alias ("__collector_Exit")));
-+void _exit (int status) __attribute__ ((weak, alias ("__collector_exit")));
-+void _Exit (int status) __attribute__ ((weak, alias ("__collector_Exit")));
-
- void
- __collector_exit (int status)
-diff --git a/gprofng/libcollector/collector.h b/gprofng/libcollector/collector.h
-index 07a03bdd17a..eda68a0e4f5 100644
---- a/gprofng/libcollector/collector.h
-+++ b/gprofng/libcollector/collector.h
-@@ -123,7 +123,7 @@ extern void __collector_terminate_expt ();
- extern void __collector_terminate_hook ();
- extern void __collector_sample (char *name);
- extern void __collector_pause ();
--extern void __collector_pause_m ();
-+extern void __collector_pause_m (const char *reason);
- extern void __collector_resume ();
- extern int collector_sigemt_sigaction (const struct sigaction*,
- struct sigaction*);
-diff --git a/gprofng/libcollector/collectorAPI.c b/gprofng/libcollector/collectorAPI.c
-index 5fa6403ad49..449bbbaab65 100644
---- a/gprofng/libcollector/collectorAPI.c
-+++ b/gprofng/libcollector/collectorAPI.c
-@@ -26,16 +26,17 @@
- #include "collectorAPI.h"
- #include "gp-experiment.h"
-
--static void *__real_collector_sample = NULL;
--static void *__real_collector_pause = NULL;
--static void *__real_collector_resume = NULL;
--static void *__real_collector_terminate_expt = NULL;
--static void *__real_collector_func_load = NULL;
--static void *__real_collector_func_unload = NULL;
-+static void (*__real_collector_sample)(const char *) = NULL;
-+static void (*__real_collector_pause)() = NULL;
-+static void (*__real_collector_resume)() = NULL;
-+static void (*__real_collector_terminate_expt)() = NULL;
-+static void (*__real_collector_func_load)(const char *, const char *,
-+ const char *, void *, int, int, Lineno *) = NULL;
-+static void (*__real_collector_func_unload)(void *) = NULL;
-
- #define INIT_API if (init_API == 0) collectorAPI_initAPI()
- #define NULL_PTR(x) (__real_##x == NULL)
--#define CALL_REAL(x) (*(void(*)())__real_##x)
-+#define CALL_REAL(x) (__real_##x)
- #define CALL_IF_REAL(x) INIT_API; if (!NULL_PTR(x)) CALL_REAL(x)
-
- static int init_API = 0;
-diff --git a/gprofng/libcollector/dispatcher.c b/gprofng/libcollector/dispatcher.c
-index d2a4ad0b60b..867753a22ec 100644
---- a/gprofng/libcollector/dispatcher.c
-+++ b/gprofng/libcollector/dispatcher.c
-@@ -909,8 +909,9 @@ sigset (int sig, sighandler_t handler)
-
- // map interposed symbol versions
- static int
--gprofng_timer_create (int (real_func) (), clockid_t clockid,
-- struct sigevent *sevp, timer_t *timerid)
-+gprofng_timer_create (int (real_func) (clockid_t, struct sigevent *, timer_t *),
-+ clockid_t clockid,
-+ struct sigevent *sevp, timer_t *timerid)
- {
- // collector reserves SIGPROF
- if (sevp == NULL || sevp->sigev_notify != SIGEV_SIGNAL ||
-@@ -1045,7 +1046,7 @@ __collector_thr_sigsetmask (int how, const sigset_t* iset, sigset_t* oset)
- // map interposed symbol versions
-
- static int
--gprofng_pthread_sigmask (int (real_func) (),
-+gprofng_pthread_sigmask (int (real_func) (int, const sigset_t *, sigset_t*),
- int how, const sigset_t *iset, sigset_t* oset)
- {
- sigset_t lsigset;
-@@ -1140,9 +1141,10 @@ collector_root (void *cargs)
- // map interposed symbol versions
-
- static int
--gprofng_pthread_create (int (real_func) (), pthread_t *thread,
-- const pthread_attr_t *attr,
-- void *(*func)(void*), void *arg)
-+gprofng_pthread_create (int (real_func) (pthread_t *, const pthread_attr_t *,
-+ void *(*)(void *), void *),
-+ pthread_t *thread, const pthread_attr_t *attr,
-+ void *(*func)(void*), void *arg)
- {
- TprintfT (DBG_LTT, "gprofng_pthread_create @%p\n", real_func);
- if (dispatch_mode != DISPATCH_ON)
-@@ -1277,6 +1279,7 @@ __collector_ext_clone_pthread (int (*fn)(void *), void *child_stack, int flags,
- }
-
- // weak symbols:
--int sigprocmask () __attribute__ ((weak, alias ("__collector_sigprocmask")));
--int thr_sigsetmask () __attribute__ ((weak, alias ("__collector_thr_sigsetmask")));
-+int sigprocmask (int, const sigset_t*, sigset_t*) __attribute__ ((weak, alias ("__collector_sigprocmask")));
-+int thr_sigsetmask (int, const sigset_t*, sigset_t*) __attribute__ ((weak, alias ("__collector_thr_sigsetmask")));
- int setitimer () __attribute__ ((weak, alias ("_setitimer")));
-+
-diff --git a/gprofng/libcollector/iotrace.c b/gprofng/libcollector/iotrace.c
-index 18060864796..3deb441d9c7 100644
---- a/gprofng/libcollector/iotrace.c
-+++ b/gprofng/libcollector/iotrace.c
-@@ -1350,7 +1350,7 @@ mkstemp (char *template)
- unsigned pktSize;
- if (NULL_PTR (mkstemp))
- init_io_intf ();
-- if (CHCK_REENTRANCE (guard) || template == NULL)
-+ if (CHCK_REENTRANCE (guard))
- return CALL_REAL (mkstemp)(template);
- PUSH_REENTRANCE (guard);
- hrtime_t reqt = gethrtime ();
-@@ -1405,7 +1405,7 @@ mkstemps (char *template, int slen)
- unsigned pktSize;
- if (NULL_PTR (mkstemps))
- init_io_intf ();
-- if (CHCK_REENTRANCE (guard) || template == NULL)
-+ if (CHCK_REENTRANCE (guard))
- return CALL_REAL (mkstemps)(template, slen);
- PUSH_REENTRANCE (guard);
- hrtime_t reqt = gethrtime ();
-@@ -1485,7 +1485,7 @@ close (int fildes)
-
- /*------------------------------------------------------------- fopen */
- static FILE*
--gprofng_fopen (FILE*(real_fopen) (), const char *filename, const char *mode)
-+gprofng_fopen (FILE*(real_fopen) (const char *, const char *), const char *filename, const char *mode)
- {
- int *guard;
- FILE *fp = NULL;
-@@ -1559,7 +1559,7 @@ DCL_FOPEN (fopen)
-
- /*------------------------------------------------------------- fclose */
- static int
--gprofng_fclose (int(real_fclose) (), FILE *stream)
-+gprofng_fclose (int(real_fclose) (FILE *), FILE *stream)
- {
- int *guard;
- int stat;
-@@ -1645,7 +1645,7 @@ fflush (FILE *stream)
-
- /*------------------------------------------------------------- fdopen */
- static FILE*
--gprofng_fdopen (FILE*(real_fdopen) (), int fildes, const char *mode)
-+gprofng_fdopen (FILE*(real_fdopen) (int, const char *), int fildes, const char *mode)
- {
- int *guard;
- FILE *fp = NULL;
-@@ -2957,7 +2957,7 @@ DCL_FGETPOS (fgetpos)
-
- /*------------------------------------------------------------- fgetpos64 */
- static int
--gprofng_fgetpos64 (int(real_fgetpos64) (), FILE *stream, fpos64_t *pos)
-+gprofng_fgetpos64 (int(real_fgetpos64) (FILE *, fpos64_t *), FILE *stream, fpos64_t *pos)
- {
- int *guard;
- int ret;
-diff --git a/gprofng/libcollector/libcol_util.c b/gprofng/libcollector/libcol_util.c
-index 15ba24d2ab5..c2b82894e6b 100644
---- a/gprofng/libcollector/libcol_util.c
-+++ b/gprofng/libcollector/libcol_util.c
-@@ -1013,7 +1013,6 @@ __collector_open (const char *path, int oflag, ...)
- mode_t mode = 0;
-
- hrtime_t t_timeout = __collector_gethrtime () + 5 * ((hrtime_t) NANOSEC);
-- int nretries = 0;
- long long delay = 100; /* start at some small, arbitrary value */
-
- /* get optional mode argument if it's expected/required */
-@@ -1058,7 +1057,6 @@ __collector_open (const char *path, int oflag, ...)
- delay *= 2;
- if (delay > 100000000)
- delay = 100000000; /* cap at some large, arbitrary value */
-- nretries++;
- }
- return fd;
- }
-diff --git a/gprofng/libcollector/libcol_util.h b/gprofng/libcollector/libcol_util.h
-index 2eeeaeed50b..1b1b928180a 100644
---- a/gprofng/libcollector/libcol_util.h
-+++ b/gprofng/libcollector/libcol_util.h
-@@ -81,12 +81,6 @@ extern int __collector_mutex_trylock (collector_mutex_t *mp);
- #define __collector_mutex_init(xx) \
- do { collector_mutex_t tmp=COLLECTOR_MUTEX_INITIALIZER; *(xx)=tmp; } while(0)
-
--void __collector_sample (char *name);
--void __collector_terminate_expt ();
--void __collector_pause ();
--void __collector_pause_m ();
--void __collector_resume ();
--
- struct DT_lineno;
-
- typedef enum
-diff --git a/gprofng/libcollector/linetrace.c b/gprofng/libcollector/linetrace.c
-index 67b2d7e9030..66844bc1337 100644
---- a/gprofng/libcollector/linetrace.c
-+++ b/gprofng/libcollector/linetrace.c
-@@ -1207,7 +1207,7 @@ __collector_vfork (void)
- }
-
- /*------------------------------------------------------------- execve */
--int execve () __attribute__ ((weak, alias ("__collector_execve")));
-+int execve (const char *, char *const [], char *const []) __attribute__ ((weak, alias ("__collector_execve")));
-
- int
- __collector_execve (const char* path, char *const argv[], char *const envp[])
-@@ -1237,7 +1237,7 @@ __collector_execve (const char* path, char *const argv[], char *const envp[])
- return ret;
- }
-
--int execvp () __attribute__ ((weak, alias ("__collector_execvp")));
-+int execvp (const char *, char *const []) __attribute__ ((weak, alias ("__collector_execvp")));
-
- int
- __collector_execvp (const char* file, char *const argv[])
-@@ -1269,7 +1269,7 @@ __collector_execvp (const char* file, char *const argv[])
- return ret;
- }
-
--int execv () __attribute__ ((weak, alias ("__collector_execv")));
-+int execv (const char *, char *const []) __attribute__ ((weak, alias ("__collector_execv")));
-
- int
- __collector_execv (const char* path, char *const argv[])
-@@ -1408,7 +1408,10 @@ __collector_execl (const char* path, const char *arg0, ...)
- /*-------------------------------------------------------- posix_spawn */
- // map interposed symbol versions
- static int
--gprofng_posix_spawn (int(real_posix_spawn) (),
-+gprofng_posix_spawn (int(real_posix_spawn) (pid_t *, const char *,
-+ const posix_spawn_file_actions_t *,
-+ const posix_spawnattr_t *,
-+ char *const [], char *const []),
- pid_t *pidp, const char *path,
- const posix_spawn_file_actions_t *file_actions,
- const posix_spawnattr_t *attrp,
-@@ -1466,7 +1469,10 @@ DCL_POSIX_SPAWN (posix_spawn)
-
- /*-------------------------------------------------------- posix_spawnp */
- static int
--gprofng_posix_spawnp (int (real_posix_spawnp) (),
-+gprofng_posix_spawnp (int (real_posix_spawnp) (pid_t *, const char *,
-+ const posix_spawn_file_actions_t *,
-+ const posix_spawnattr_t *,
-+ char *const [], char *const []),
- pid_t *pidp, const char *path,
- const posix_spawn_file_actions_t *file_actions,
- const posix_spawnattr_t *attrp,
-@@ -1754,8 +1760,8 @@ __collector_clone (int (*fn)(void *), void *child_stack, int flags, void *arg,
- }
-
- /*-------------------------------------------------------------------- setuid */
--int setuid () __attribute__ ((weak, alias ("__collector_setuid")));
--int _setuid () __attribute__ ((weak, alias ("__collector_setuid")));
-+int setuid (uid_t) __attribute__ ((weak, alias ("__collector_setuid")));
-+int _setuid (uid_t) __attribute__ ((weak, alias ("__collector_setuid")));
-
- int
- __collector_setuid (uid_t ruid)
-@@ -1770,8 +1776,8 @@ __collector_setuid (uid_t ruid)
- }
-
- /*------------------------------------------------------------------- seteuid */
--int seteuid () __attribute__ ((weak, alias ("__collector_seteuid")));
--int _seteuid () __attribute__ ((weak, alias ("__collector_seteuid")));
-+int seteuid (uid_t) __attribute__ ((weak, alias ("__collector_seteuid")));
-+int _seteuid (uid_t) __attribute__ ((weak, alias ("__collector_seteuid")));
-
- int
- __collector_seteuid (uid_t euid)
-@@ -1786,8 +1792,8 @@ __collector_seteuid (uid_t euid)
- }
-
- /*------------------------------------------------------------------ setreuid */
--int setreuid () __attribute__ ((weak, alias ("__collector_setreuid")));
--int _setreuid () __attribute__ ((weak, alias ("__collector_setreuid")));
-+int setreuid (uid_t, uid_t) __attribute__ ((weak, alias ("__collector_setreuid")));
-+int _setreuid (uid_t, uid_t) __attribute__ ((weak, alias ("__collector_setreuid")));
-
- int
- __collector_setreuid (uid_t ruid, uid_t euid)
-@@ -1802,8 +1808,8 @@ __collector_setreuid (uid_t ruid, uid_t euid)
- }
-
- /*-------------------------------------------------------------------- setgid */
--int setgid () __attribute__ ((weak, alias ("__collector_setgid")));
--int _setgid () __attribute__ ((weak, alias ("__collector_setgid")));
-+int setgid (gid_t) __attribute__ ((weak, alias ("__collector_setgid")));
-+int _setgid (gid_t) __attribute__ ((weak, alias ("__collector_setgid")));
-
- int
- __collector_setgid (gid_t rgid)
-@@ -1818,8 +1824,8 @@ __collector_setgid (gid_t rgid)
- }
-
- /*------------------------------------------------------------------- setegid */
--int setegid () __attribute__ ((weak, alias ("__collector_setegid")));
--int _setegid () __attribute__ ((weak, alias ("__collector_setegid")));
-+int setegid (gid_t) __attribute__ ((weak, alias ("__collector_setegid")));
-+int _setegid (gid_t) __attribute__ ((weak, alias ("__collector_setegid")));
-
- int
- __collector_setegid (gid_t egid)
-@@ -1834,8 +1840,8 @@ __collector_setegid (gid_t egid)
- }
-
- /*------------------------------------------------------------------ setregid */
--int setregid () __attribute__ ((weak, alias ("__collector_setregid")));
--int _setregid () __attribute__ ((weak, alias ("__collector_setregid")));
-+int setregid (gid_t, gid_t) __attribute__ ((weak, alias ("__collector_setregid")));
-+int _setregid (gid_t, gid_t) __attribute__ ((weak, alias ("__collector_setregid")));
-
- int
- __collector_setregid (gid_t rgid, gid_t egid)
-diff --git a/gprofng/src/BaseMetricTreeNode.h b/gprofng/src/BaseMetricTreeNode.h
-index d73d244e27e..7698f9c6eaf 100644
---- a/gprofng/src/BaseMetricTreeNode.h
-+++ b/gprofng/src/BaseMetricTreeNode.h
-@@ -85,7 +85,6 @@ private:
-
- BaseMetricTreeNode *root; // root of tree
- BaseMetricTreeNode *parent; // my parent
-- bool aggregation; // value is based on children's values
- char *name; // bm->get_cmd() for metrics, unique string otherwise
- char *uname; // user-visible text
- char *unit; // see UNIT_* defines
-diff --git a/gprofng/src/Dbe.cc b/gprofng/src/Dbe.cc
-index 91a5aa5ef05..bcbf4694565 100644
---- a/gprofng/src/Dbe.cc
-+++ b/gprofng/src/Dbe.cc
-@@ -9594,14 +9594,12 @@ dbeGetTLDataRepVals (VMode view_mode, hrtime_t start_ts, hrtime_t delta,
- }
- if (sampleVals != NULL)
- {
-- Sample* sample = (Sample*) packets->getObjValue (PROP_SMPLOBJ, packetIdx);
-- if (!sample || !sample->get_usage ())
-- sample = sample;
-- else
-+ Sample *sample = (Sample*) packets->getObjValue (PROP_SMPLOBJ, packetIdx);
-+ if (sample != NULL)
- {
-- PrUsage* prusage = sample->get_usage ();
-- Vector<long long> *mstateVals = prusage->getMstateValues ();
-- sampleVals->store (eventIdx, mstateVals);
-+ PrUsage *prusage = sample->get_usage ();
-+ if (prusage != NULL)
-+ sampleVals->store (eventIdx, prusage->getMstateValues ());
- }
- }
- }
-diff --git a/gprofng/src/DbeSession.cc b/gprofng/src/DbeSession.cc
-index 20329091167..5d6bab75638 100644
---- a/gprofng/src/DbeSession.cc
-+++ b/gprofng/src/DbeSession.cc
-@@ -1162,8 +1162,6 @@ DbeSession::open_experiment (Experiment *exp, char *path)
- closedir (exp_dir);
- exp_names->sort (dir_name_cmp);
- Experiment **t_exp_list = new Experiment *[exp_names->size ()];
-- int nsubexps = 0;
--
- for (int j = 0, jsz = exp_names->size (); j < jsz; j++)
- {
- t_exp_list[j] = NULL;
-@@ -1220,7 +1218,6 @@ DbeSession::open_experiment (Experiment *exp, char *path)
- dexp->open (dpath);
- append (dexp);
- t_exp_list[j] = dexp;
-- nsubexps++;
- dexp->set_clock (exp->clock);
-
- // DbeView add_experiment() is split into two parts
-diff --git a/gprofng/src/Disasm.cc b/gprofng/src/Disasm.cc
-index 1396e4fb072..d78212cee39 100644
---- a/gprofng/src/Disasm.cc
-+++ b/gprofng/src/Disasm.cc
-@@ -49,7 +49,6 @@ struct DisContext
- };
-
- static const int MAX_DISASM_STR = 2048;
--static const int MAX_INSTR_SIZE = 8;
-
- Disasm::Disasm (char *fname)
- {
-diff --git a/gprofng/src/Experiment.cc b/gprofng/src/Experiment.cc
-index 02a24ebc40d..a31550aff66 100644
---- a/gprofng/src/Experiment.cc
-+++ b/gprofng/src/Experiment.cc
-@@ -1935,8 +1935,6 @@ private:
- }
-
- Experiment *exp;
-- char *hostname;
-- hrtime_t time, tstamp;
- };
-
- void
-diff --git a/gprofng/src/HashMap.h b/gprofng/src/HashMap.h
-index 918c0dc95f9..c5fdd345ba8 100644
---- a/gprofng/src/HashMap.h
-+++ b/gprofng/src/HashMap.h
-@@ -78,9 +78,8 @@ copy_key (uint64_t a)
- }
-
- template<> inline void
--delete_key (uint64_t a)
-+delete_key (uint64_t)
- {
-- a = a;
- }
-
- template<> inline int
-diff --git a/gprofng/src/IOActivity.h b/gprofng/src/IOActivity.h
-index cf462cf8d55..f3a22ada6b1 100644
---- a/gprofng/src/IOActivity.h
-+++ b/gprofng/src/IOActivity.h
-@@ -78,7 +78,6 @@ private:
- Hist_data *hist_data_file_all;
- Hist_data *hist_data_vfd_all;
- Hist_data *hist_data_callstack_all;
-- Hist_data *hist_data_callstack;
-
- DbeView *dbev;
- };
-diff --git a/gprofng/src/collctrl.cc b/gprofng/src/collctrl.cc
-index ebf888c5a20..b0ed66efcdc 100644
---- a/gprofng/src/collctrl.cc
-+++ b/gprofng/src/collctrl.cc
-@@ -952,9 +952,7 @@ Coll_Ctrl::set_clkprof (const char *string, char** warn)
- double dval = strtod (string, &endchar);
- if (*endchar == 'm' || *endchar == 0) /* user specified milliseconds */
- dval = dval * 1000.;
-- else if (*endchar == 'u') /* user specified microseconds */
-- dval = dval;
-- else
-+ else if (*endchar != 'u')
- return dbe_sprintf (GTXT ("Unrecognized clock-profiling interval `%s'\n"), string);
- nclkprof_timer = (int) (dval + 0.5);
- }
-@@ -2901,7 +2899,7 @@ Coll_Ctrl::get (char * control)
- }
- if (!strncmp (control, ipc_str_javaprof, len))
- {
-- if ((java_mode == 0))
-+ if (java_mode == 0)
- return strdup (ipc_str_off);
- return strdup (ipc_str_on);
- }
-@@ -2917,7 +2915,7 @@ Coll_Ctrl::get (char * control)
- }
- if (!strncmp (control, ipc_str_sample_sig, len))
- {
-- if ((sample_sig == 0))
-+ if (sample_sig == 0)
- return strdup (ipc_str_off);
- char *str_signal = find_signal_name (sample_sig);
- if (str_signal != NULL)
-@@ -2951,15 +2949,15 @@ Coll_Ctrl::get (char * control)
- }
- if (!strncmp (control, ipc_str_iotrace, len))
- {
-- if ((iotrace_enabled == 0))
-+ if (iotrace_enabled == 0)
- return strdup (ipc_str_off);
- return strdup (ipc_str_on);
- }
- if (!strncmp (control, ipc_str_count, len))
- {
-- if ((count_enabled == 0))
-+ if (count_enabled == 0)
- return strdup (ipc_str_off);
-- if ((count_enabled < 0))
-+ if (count_enabled < 0)
- return strdup ("on\nstatic");
- return strdup (ipc_str_on);
- }
-diff --git a/gprofng/src/collector_module.h b/gprofng/src/collector_module.h
-index bb48eadb9f8..ebcdbca561f 100644
---- a/gprofng/src/collector_module.h
-+++ b/gprofng/src/collector_module.h
-@@ -40,12 +40,12 @@ struct tm;
- * If you add any, please put it in the right place */
- typedef struct CollectorUtilFuncs
- {
-- int (*access)();
-+ int (*access)(const char *, int);
- int (*atoi)(const char *nptr);
- void *(*calloc)(size_t nelem, size_t elsize);
- int (*clearenv)(void);
- int (*close)(int);
-- int (*closedir)();
-+ int (*closedir)(DIR *);
- int (*execv)(const char *path, char *const argv[]);
- void (*exit)(int status);
- int (*fclose)(FILE *stream);
-@@ -66,20 +66,20 @@ typedef struct CollectorUtilFuncs
- off_t (*lseek)(int fd, off_t offset, int whence);
- void *(*malloc)(size_t size);
- void *(*memset)(void *s1, int c, size_t n);
-- int (*mkdir)();
-+ int (*mkdir)(const char *, mode_t);
- time_t (*mktime)(struct tm *timeptr);
- void *(*mmap)(void *, size_t, int, int, int, off_t);
-- void *(*mmap64_)();
-- int (*munmap)();
-+ void *(*mmap64_)(void *, size_t, int, int, int, off_t);
-+ int (*munmap)(void *, size_t);
- int (*open)(const char *, int, ...);
- int (*open_bare)(const char *, int, ...);
-- DIR *(*opendir)();
-+ DIR *(*opendir)(const char *);
- int (*pclose)(FILE *stream);
- FILE *(*popen)(const char *command, const char *mode);
- int (*putenv)(char *string);
-- ssize_t (*pwrite)();
-- ssize_t (*pwrite64_)();
-- ssize_t (*read)();
-+ ssize_t (*pwrite)(int, const void *, size_t, off_t);
-+ ssize_t (*pwrite64_)(int, const void *, size_t, off_t);
-+ ssize_t (*read)(int, void *, size_t);
- int (*setenv)(const char *name, const char *value, int overwrite);
- int (*sigfillset)(sigset_t *set);
- int (*sigprocmask)(int how, const sigset_t *set, sigset_t *oldset);
-@@ -112,7 +112,7 @@ typedef struct CollectorUtilFuncs
- int (*unsetenv)(const char *name);
- int (*vsnprintf)(char *str, size_t size, const char *format, va_list ap);
- pid_t (*waitpid)(pid_t pid, int *stat_loc, int options);
-- ssize_t (*write)();
-+ ssize_t (*write)(int, void *, size_t);
- double (*atof)();
- void *n_a;
- } CollectorUtilFuncs;
-diff --git a/gprofng/src/gp-display-src.cc b/gprofng/src/gp-display-src.cc
-index 200e6080d2e..24af375edf1 100644
---- a/gprofng/src/gp-display-src.cc
-+++ b/gprofng/src/gp-display-src.cc
-@@ -75,14 +75,6 @@ private:
- bool v_opt;
- int multiple;
- char *str_compcom;
-- bool hex_visible;
-- int src_visible;
-- int vis_src;
-- int vis_dis;
-- int threshold_src;
-- int threshold_dis;
-- int threshold;
-- int vis_bits;
- };
-
- static int
-diff --git a/gprofng/src/gp-print.h b/gprofng/src/gp-print.h
-index 1b748ea60a3..1a8ad3b6c13 100644
---- a/gprofng/src/gp-print.h
-+++ b/gprofng/src/gp-print.h
-@@ -19,7 +19,7 @@
- MA 02110-1301, USA. */
-
- #ifndef _GP_PRINT_H
--#define _ER_PRINT_H
-+#define _GP_PRINT_H
-
- #include "Command.h"
- #include "DbeApplication.h"
-diff --git a/gprofng/src/util.cc b/gprofng/src/util.cc
-index 201f7088b66..228140b61ae 100644
---- a/gprofng/src/util.cc
-+++ b/gprofng/src/util.cc
-@@ -741,17 +741,13 @@ get_relative_link (const char *path_from, const char *path_to)
- s2 = canonical_path (s2);
- long l = dbe_sstrlen (s1);
- // try to find common directories
-- int common_slashes = 0;
- int last_common_slash = -1;
- for (int i = 0; i < l; i++)
- {
-- if (s1[i] != s2[i]) break;
-- if (s1[i] == 0) break;
-+ if (s1[i] != s2[i] || s1[i] == 0)
-+ break;
- if (s1[i] == '/')
-- {
-- common_slashes++;
-- last_common_slash = i;
-- }
-+ last_common_slash = i;
- }
- // find slashes in remaining path_to
- int slashes = 0;
---
-2.50.1
-
diff --git a/package/binutils/2.42/0006-gprofng-fix-std-gnu23-compatibility-wrt-unprototyped.patch b/package/binutils/2.42/0006-gprofng-fix-std-gnu23-compatibility-wrt-unprototyped.patch
deleted file mode 100644
index 06ca165570..0000000000
--- a/package/binutils/2.42/0006-gprofng-fix-std-gnu23-compatibility-wrt-unprototyped.patch
+++ /dev/null
@@ -1,619 +0,0 @@
-From 2e59be3bc9dad69af4f62d26107b6ace23e9998a Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Sat, 16 Nov 2024 05:13:48 +0000
-Subject: [PATCH] gprofng: fix -std=gnu23 compatibility wrt unprototyped
- functions
-
-C23 removes support for unprototyped functions. Fix function pointer types
-accordingly.
-
-This does not fix all instances, there's a few left as I commented on in
-PR32374 (e.g. setitimer which I have a local workaround for but it involves
-a glibc implementation detail; the Linaro precommit CI tester pointed that
-out too, so dropped that).
-
-ChangeLog:
- PR gprofng/32374
-
- * libcollector/collector.c (collector_sample): Fix prototype.
- * libcollector/envmgmt.c (putenv): Ditto.
- (_putenv): Ditto.
- (__collector_putenv): Ditto.
- (setenv): Ditto.
- (_setenv): Ditto.
- (__collector_setenv): Ditto.
- (unsetenv): Ditto.
- (_unsetenv): Ditto.
- (__collector_unsetenv): Ditto.
- * libcollector/jprofile.c (open_experiment): Ditto.
- (__collector_jprofile_enable_synctrace): Ditto.
- (jprof_find_asyncgetcalltrace): Ditto.
- * libcollector/libcol_util.c (__collector_util_init): Ditto.
- (ARCH): Ditto.
- * libcollector/mmaptrace.c (collector_func_load): Ditto.
- (collector_func_unload): Ditto.
- * libcollector/unwind.c (__collector_ext_unwind_init): Ditto.
- * src/collector_module.h: Ditto.
-
-Upstream: a2f774427e078f3da2c06bdea25f77a61979a695
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
----
- gprofng/libcollector/collector.c | 2 +-
- gprofng/libcollector/dispatcher.c | 1 -
- gprofng/libcollector/envmgmt.c | 24 ++++-----
- gprofng/libcollector/jprofile.c | 10 ++--
- gprofng/libcollector/libcol_util.c | 84 +++++++++++++++---------------
- gprofng/libcollector/mmaptrace.c | 4 +-
- gprofng/libcollector/unwind.c | 2 +-
- gprofng/src/collector_module.h | 2 +-
- 8 files changed, 64 insertions(+), 65 deletions(-)
-
-diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
-index ef580dcbdd9..899f08a5381 100644
---- a/gprofng/libcollector/collector.c
-+++ b/gprofng/libcollector/collector.c
-@@ -1579,7 +1579,7 @@ __collector_resume_experiment ()
- }
-
- /* Code to support Samples and Pause/Resume */
--void collector_sample () __attribute__ ((weak, alias ("__collector_sample")));
-+void collector_sample (char *name) __attribute__ ((weak, alias ("__collector_sample")));
- void
- __collector_sample (char *name)
- {
-diff --git a/gprofng/libcollector/dispatcher.c b/gprofng/libcollector/dispatcher.c
-index 867753a22ec..5ee0bf895bf 100644
---- a/gprofng/libcollector/dispatcher.c
-+++ b/gprofng/libcollector/dispatcher.c
-@@ -1282,4 +1282,3 @@ __collector_ext_clone_pthread (int (*fn)(void *), void *child_stack, int flags,
- int sigprocmask (int, const sigset_t*, sigset_t*) __attribute__ ((weak, alias ("__collector_sigprocmask")));
- int thr_sigsetmask (int, const sigset_t*, sigset_t*) __attribute__ ((weak, alias ("__collector_thr_sigsetmask")));
- int setitimer () __attribute__ ((weak, alias ("_setitimer")));
--
-diff --git a/gprofng/libcollector/envmgmt.c b/gprofng/libcollector/envmgmt.c
-index ebe08f82007..0ff7621070d 100644
---- a/gprofng/libcollector/envmgmt.c
-+++ b/gprofng/libcollector/envmgmt.c
-@@ -692,8 +692,8 @@ __collector_env_update (char *envp[])
-
-
- /*------------------------------------------------------------- putenv */
--int putenv () __attribute__ ((weak, alias ("__collector_putenv")));
--int _putenv () __attribute__ ((weak, alias ("__collector_putenv")));
-+int putenv (char*) __attribute__ ((weak, alias ("__collector_putenv")));
-+int _putenv (char*) __attribute__ ((weak, alias ("__collector_putenv")));
-
- int
- __collector_putenv (char * string)
-@@ -701,9 +701,9 @@ __collector_putenv (char * string)
- if (CALL_UTIL (putenv) == __collector_putenv ||
- CALL_UTIL (putenv) == NULL)
- { // __collector_libc_funcs_init failed
-- CALL_UTIL (putenv) = (int(*)())dlsym (RTLD_NEXT, "putenv");
-+ CALL_UTIL (putenv) = (int(*)(char*))dlsym (RTLD_NEXT, "putenv");
- if (CALL_UTIL (putenv) == NULL || CALL_UTIL (putenv) == __collector_putenv)
-- CALL_UTIL (putenv) = (int(*)())dlsym (RTLD_DEFAULT, "putenv");
-+ CALL_UTIL (putenv) = (int(*)(char*))dlsym (RTLD_DEFAULT, "putenv");
- if (CALL_UTIL (putenv) == NULL || CALL_UTIL (putenv) == __collector_putenv)
- {
- TprintfT (DBG_LT2, "__collector_putenv(): ERROR: no pointer found.\n");
-@@ -719,8 +719,8 @@ __collector_putenv (char * string)
- }
-
- /*------------------------------------------------------------- setenv */
--int setenv () __attribute__ ((weak, alias ("__collector_setenv")));
--int _setenv () __attribute__ ((weak, alias ("__collector_setenv")));
-+int setenv (const char*, const char*, int) __attribute__ ((weak, alias ("__collector_setenv")));
-+int _setenv (const char*, const char*, int) __attribute__ ((weak, alias ("__collector_setenv")));
-
- int
- __collector_setenv (const char *name, const char *value, int overwrite)
-@@ -728,9 +728,9 @@ __collector_setenv (const char *name, const char *value, int overwrite)
- if (CALL_UTIL (setenv) == __collector_setenv ||
- CALL_UTIL (setenv) == NULL)
- { // __collector_libc_funcs_init failed
-- CALL_UTIL (setenv) = (int(*)())dlsym (RTLD_NEXT, "setenv");
-+ CALL_UTIL (setenv) = (int(*)(const char*, const char*, int))dlsym (RTLD_NEXT, "setenv");
- if (CALL_UTIL (setenv) == NULL || CALL_UTIL (setenv) == __collector_setenv)
-- CALL_UTIL (setenv) = (int(*)())dlsym (RTLD_DEFAULT, "setenv");
-+ CALL_UTIL (setenv) = (int(*)(const char*, const char*, int))dlsym (RTLD_DEFAULT, "setenv");
- if (CALL_UTIL (setenv) == NULL || CALL_UTIL (setenv) == __collector_setenv)
- {
- TprintfT (DBG_LT2, "__collector_setenv(): ERROR: no pointer found.\n");
-@@ -765,8 +765,8 @@ __collector_setenv (const char *name, const char *value, int overwrite)
- }
-
- /*------------------------------------------------------------- unsetenv */
--int unsetenv () __attribute__ ((weak, alias ("__collector_unsetenv")));
--int _unsetenv () __attribute__ ((weak, alias ("__collector_unsetenv")));
-+int unsetenv (const char*) __attribute__ ((weak, alias ("__collector_unsetenv")));
-+int _unsetenv (const char*) __attribute__ ((weak, alias ("__collector_unsetenv")));
-
- int
- __collector_unsetenv (const char *name)
-@@ -774,9 +774,9 @@ __collector_unsetenv (const char *name)
- if (CALL_UTIL (unsetenv) == __collector_unsetenv ||
- CALL_UTIL (unsetenv) == NULL)
- { // __collector_libc_funcs_init failed
-- CALL_UTIL (unsetenv) = (int(*)())dlsym (RTLD_NEXT, "unsetenv");
-+ CALL_UTIL (unsetenv) = (int(*)(const char*))dlsym (RTLD_NEXT, "unsetenv");
- if (CALL_UTIL (unsetenv) == NULL || CALL_UTIL (unsetenv) == __collector_unsetenv)
-- CALL_UTIL (unsetenv) = (int(*)())dlsym (RTLD_DEFAULT, "unsetenv");
-+ CALL_UTIL (unsetenv) = (int(*)(const char*))dlsym (RTLD_DEFAULT, "unsetenv");
- if (CALL_UTIL (unsetenv) == NULL || CALL_UTIL (unsetenv) == __collector_unsetenv)
- {
- TprintfT (DBG_LT2, "__collector_unsetenv(): ERROR: no pointer found.\n");
-diff --git a/gprofng/libcollector/jprofile.c b/gprofng/libcollector/jprofile.c
-index 1bacacc1a2a..11051f937ef 100644
---- a/gprofng/libcollector/jprofile.c
-+++ b/gprofng/libcollector/jprofile.c
-@@ -105,8 +105,8 @@ static void rwrite (int fd, const void *buf, size_t nbyte);
- static void addToDynamicArchive (const char* name, const unsigned char* class_data, int class_data_len);
- static void (*AsyncGetCallTrace)(JVMPI_CallTrace*, jint, ucontext_t*) = NULL;
- static void (*collector_heap_record)(int, int, void*) = NULL;
--static void (*collector_jsync_begin)() = NULL;
--static void (*collector_jsync_end)(hrtime_t, void *) = NULL;
-+static void (*collector_jsync_begin)(void) = NULL;
-+static void (*collector_jsync_end)(hrtime_t, void*) = NULL;
-
- #define gethrtime collector_interface->getHiResTime
-
-@@ -230,7 +230,7 @@ open_experiment (const char *exp)
- else if (__collector_strStartWith (args, "s:") == 0)
- {
- java_sync_mode = 1;
-- collector_jsync_begin = (void(*)(hrtime_t, void *))dlsym (RTLD_DEFAULT, "__collector_jsync_begin");
-+ collector_jsync_begin = (void(*)(void))dlsym (RTLD_DEFAULT, "__collector_jsync_begin");
- collector_jsync_end = (void(*)(hrtime_t, void *))dlsym (RTLD_DEFAULT, "__collector_jsync_end");
- }
- #endif
-@@ -255,7 +255,7 @@ __collector_jprofile_enable_synctrace ()
- return;
- }
- java_sync_mode = 1;
-- collector_jsync_begin = (void(*)(hrtime_t, void *))dlsym (RTLD_DEFAULT, "__collector_jsync_begin");
-+ collector_jsync_begin = (void(*)(void))dlsym (RTLD_DEFAULT, "__collector_jsync_begin");
- collector_jsync_end = (void(*)(hrtime_t, void *))dlsym (RTLD_DEFAULT, "__collector_jsync_end");
- TprintfT (DBG_LT1, "jprofile: turning on Java synctrace, and requesting events\n");
- }
-@@ -1129,7 +1129,7 @@ jprof_find_asyncgetcalltrace ()
- {
- void *jvmhandle;
- if (__collector_VM_ReadByteInstruction == NULL)
-- __collector_VM_ReadByteInstruction = (int(*)()) dlsym (RTLD_DEFAULT, "Async_VM_ReadByteInstruction");
-+ __collector_VM_ReadByteInstruction = (int(*)(unsigned char*)) dlsym (RTLD_DEFAULT, "Async_VM_ReadByteInstruction");
-
- /* look for stack unwind function using default path */
- AsyncGetCallTrace = (void (*)(JVMPI_CallTrace*, jint, ucontext_t*))
-diff --git a/gprofng/libcollector/libcol_util.c b/gprofng/libcollector/libcol_util.c
-index c2b82894e6b..688bdf19c6d 100644
---- a/gprofng/libcollector/libcol_util.c
-+++ b/gprofng/libcollector/libcol_util.c
-@@ -1114,7 +1114,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "munmap");
- if (ptr)
-- __collector_util_funcs.munmap = (int(*)())ptr;
-+ __collector_util_funcs.munmap = (int(*)(void *, size_t))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT munmap: %s\n", dlerror ());
-@@ -1123,7 +1123,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "close");
- if (ptr)
-- __collector_util_funcs.close = (int(*)())ptr;
-+ __collector_util_funcs.close = (int(*)(int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT close: %s\n", dlerror ());
-@@ -1158,7 +1158,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "close");
- if (ptr)
-- __collector_util_funcs.close = (int(*)())ptr;
-+ __collector_util_funcs.close = (int(*)(int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT close: %s\n", dlerror ());
-@@ -1167,7 +1167,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "read");
- if (ptr)
-- __collector_util_funcs.read = (ssize_t (*)())ptr;
-+ __collector_util_funcs.read = (ssize_t (*)(int, void*, size_t))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT read: %s\n", dlerror ());
-@@ -1176,7 +1176,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "write");
- if (ptr)
-- __collector_util_funcs.write = (ssize_t (*)())ptr;
-+ __collector_util_funcs.write = (ssize_t (*)(int, void*, size_t))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT write: %s\n", dlerror ());
-@@ -1186,14 +1186,14 @@ __collector_util_init ()
- #if ARCH(Intel) && WSIZE(32)
- ptr = dlvsym (libc, "pwrite", "GLIBC_2.2"); // it is in /lib/libpthread.so.0
- if (ptr)
-- __collector_util_funcs.pwrite = (ssize_t (*)())ptr;
-+ __collector_util_funcs.pwrite = (ssize_t (*)(int, void*, size_t, off_t))ptr;
- else
- {
- Tprintf (DBG_LT0, "libcol_util: WARNING: dlvsym for %s@%s failed. Using dlsym() instead.", "pwrite", "GLIBC_2.2");
- #endif /* ARCH(Intel) && WSIZE(32) */
- ptr = dlsym (libc, "pwrite");
- if (ptr)
-- __collector_util_funcs.pwrite = (ssize_t (*)())ptr;
-+ __collector_util_funcs.pwrite = (ssize_t (*)(int, const void*, size_t, off_t))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT pwrite: %s\n", dlerror ());
-@@ -1213,7 +1213,7 @@ __collector_util_init ()
- #endif /* ARCH(Intel) && WSIZE(32) */
- ptr = dlsym (libc, "pwrite64");
- if (ptr)
-- __collector_util_funcs.pwrite64_ = (ssize_t (*)())ptr;
-+ __collector_util_funcs.pwrite64_ = (ssize_t (*)(int, const void*, size_t, off_t))ptr;
- else
- __collector_util_funcs.pwrite64_ = __collector_util_funcs.pwrite;
- #if ARCH(Intel) && WSIZE(32)
-@@ -1222,7 +1222,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "lseek");
- if (ptr)
-- __collector_util_funcs.lseek = (off_t (*)())ptr;
-+ __collector_util_funcs.lseek = (off_t (*)(int, off_t, int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT lseek: %s\n", dlerror ());
-@@ -1231,7 +1231,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "access");
- if (ptr)
-- __collector_util_funcs.access = (int(*)())ptr;
-+ __collector_util_funcs.access = (int(*)(const char*, int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT access: %s\n", dlerror ());
-@@ -1240,7 +1240,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "mkdir");
- if (ptr)
-- __collector_util_funcs.mkdir = (int(*)())ptr;
-+ __collector_util_funcs.mkdir = (int(*)(const char*, mode_t))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT mkdir: %s\n", dlerror ());
-@@ -1249,7 +1249,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "opendir");
- if (ptr)
-- __collector_util_funcs.opendir = (DIR * (*)())ptr;
-+ __collector_util_funcs.opendir = (DIR * (*)(const char*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT opendir: %s\n", dlerror ());
-@@ -1258,7 +1258,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "closedir");
- if (ptr)
-- __collector_util_funcs.closedir = (int(*)())ptr;
-+ __collector_util_funcs.closedir = (int(*)(DIR*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT closedir: %s\n", dlerror ());
-@@ -1267,7 +1267,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "execv");
- if (ptr)
-- __collector_util_funcs.execv = (int(*)())ptr;
-+ __collector_util_funcs.execv = (int(*)(const char*, char* const*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT execv: %s\n", dlerror ());
-@@ -1276,7 +1276,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "exit");
- if (ptr)
-- __collector_util_funcs.exit = (void(*)())ptr;
-+ __collector_util_funcs.exit = (void(*)(int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT exit: %s\n", dlerror ());
-@@ -1285,7 +1285,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "vfork");
- if (ptr)
-- __collector_util_funcs.vfork = (pid_t (*)())ptr;
-+ __collector_util_funcs.vfork = (pid_t (*)(void))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT vfork: %s\n", dlerror ());
-@@ -1294,7 +1294,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "waitpid");
- if (ptr)
-- __collector_util_funcs.waitpid = (pid_t (*)())ptr;
-+ __collector_util_funcs.waitpid = (pid_t (*)(pid_t, int*, int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT waitpid: %s\n", dlerror ());
-@@ -1313,7 +1313,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "getcontext");
- if (ptr)
-- __collector_util_funcs.getcontext = (int(*)())ptr;
-+ __collector_util_funcs.getcontext = (int(*)(ucontext_t*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT getcontext: %s\n", dlerror ());
-@@ -1331,7 +1331,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "putenv");
- if (ptr)
-- __collector_util_funcs.putenv = (int(*)())ptr;
-+ __collector_util_funcs.putenv = (int(*)(char*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT putenv: %s\n", dlerror ());
-@@ -1340,7 +1340,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "getenv");
- if (ptr)
-- __collector_util_funcs.getenv = (char*(*)())ptr;
-+ __collector_util_funcs.getenv = (char*(*)(const char*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT getenv: %s\n", dlerror ());
-@@ -1349,7 +1349,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "time");
- if (ptr)
-- __collector_util_funcs.time = (time_t (*)())ptr;
-+ __collector_util_funcs.time = (time_t (*)(time_t*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT time: %s\n", dlerror ());
-@@ -1358,7 +1358,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "mktime");
- if (ptr)
-- __collector_util_funcs.mktime = (time_t (*)())ptr;
-+ __collector_util_funcs.mktime = (time_t (*)(struct tm*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT mktime: %s\n", dlerror ());
-@@ -1372,7 +1372,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "gmtime_r");
- if (ptr)
-- __collector_util_funcs.gmtime_r = (struct tm * (*)())ptr;
-+ __collector_util_funcs.gmtime_r = (struct tm * (*)(const time_t*, struct tm*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT gmtime_r: %s\n", dlerror ());
-@@ -1381,7 +1381,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "strtol");
- if (ptr)
-- __collector_util_funcs.strtol = (long (*)())ptr;
-+ __collector_util_funcs.strtol = (long (*)(const char*, char**, int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT strtol: %s\n", dlerror ());
-@@ -1390,7 +1390,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "strtoll");
- if (ptr)
-- __collector_util_funcs.strtoll = (long long (*)())ptr;
-+ __collector_util_funcs.strtoll = (long long (*)(const char*, char**, int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT strtoll: %s\n", dlerror ());
-@@ -1402,7 +1402,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "setenv");
- if (ptr)
-- __collector_util_funcs.setenv = (int(*)())ptr;
-+ __collector_util_funcs.setenv = (int(*)(const char*, const char*, int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT setenv: %s\n", dlerror ());
-@@ -1411,7 +1411,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "unsetenv");
- if (ptr)
-- __collector_util_funcs.unsetenv = (int(*)())ptr;
-+ __collector_util_funcs.unsetenv = (int(*)(const char*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT unsetenv: %s\n", dlerror ());
-@@ -1498,7 +1498,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "pclose");
- if (ptr)
-- __collector_util_funcs.pclose = (int(*)())ptr;
-+ __collector_util_funcs.pclose = (int(*)(FILE*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT pclose: %s\n", dlerror ());
-@@ -1507,7 +1507,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "fgets");
- if (ptr)
-- __collector_util_funcs.fgets = (char*(*)())ptr;
-+ __collector_util_funcs.fgets = (char*(*)(char*, int, FILE*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT fgets: %s\n", dlerror ());
-@@ -1534,7 +1534,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "vsnprintf");
- if (ptr)
-- __collector_util_funcs.vsnprintf = (int(*)())ptr;
-+ __collector_util_funcs.vsnprintf = (int(*)(char*, size_t, const char*, ...))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT vsnprintf: %s\n", dlerror ());
-@@ -1543,7 +1543,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "atoi");
- if (ptr)
-- __collector_util_funcs.atoi = (int(*)())ptr;
-+ __collector_util_funcs.atoi = (int(*)(const char*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT atoi: %s\n", dlerror ());
-@@ -1552,7 +1552,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "calloc");
- if (ptr)
-- __collector_util_funcs.calloc = (void*(*)())ptr;
-+ __collector_util_funcs.calloc = (void*(*)(size_t, size_t))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT calloc: %s\n", dlerror ());
-@@ -1562,7 +1562,7 @@ __collector_util_init ()
- ptr = dlsym (libc, "free");
- if (ptr)
- {
-- __collector_util_funcs.free = (void(*)())ptr;
-+ __collector_util_funcs.free = (void(*)(void*))ptr;
- }
- else
- {
-@@ -1572,7 +1572,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "strdup");
- if (ptr)
-- __collector_util_funcs.libc_strdup = (char*(*)())ptr;
-+ __collector_util_funcs.libc_strdup = (char*(*)(const char*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT strdup: %s\n", dlerror ());
-@@ -1585,7 +1585,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "strerror");
- if (ptr)
-- __collector_util_funcs.strerror = (char*(*)())ptr;
-+ __collector_util_funcs.strerror = (char*(*)(int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT strerror: %s\n", dlerror ());
-@@ -1593,7 +1593,7 @@ __collector_util_init ()
- }
- ptr = dlsym (libc, "strerror_r");
- if (ptr)
-- __collector_util_funcs.strerror_r = (int(*)())ptr;
-+ __collector_util_funcs.strerror_r = (int(*)(int, char*, size_t))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT strerror_r: %s\n", dlerror ());
-@@ -1601,7 +1601,7 @@ __collector_util_init ()
- }
- ptr = dlsym (libc, "strspn");
- if (ptr)
-- __collector_util_funcs.strspn = (size_t (*)())ptr;
-+ __collector_util_funcs.strspn = (size_t (*)(const char*, const char*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT strspn: %s\n", dlerror ());
-@@ -1610,7 +1610,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "strtoul");
- if (ptr)
-- __collector_util_funcs.strtoul = (unsigned long int(*)())ptr;
-+ __collector_util_funcs.strtoul = (unsigned long int(*)(const char*, char**, int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT strtoul: %s\n", dlerror ());
-@@ -1619,7 +1619,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "strtoull");
- if (ptr)
-- __collector_util_funcs.strtoull = (unsigned long long int(*)())ptr;
-+ __collector_util_funcs.strtoull = (unsigned long long int(*)(const char*, char**, int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT strtoull: %s\n", dlerror ());
-@@ -1664,7 +1664,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "sysconf");
- if (ptr)
-- __collector_util_funcs.sysconf = (long(*)())ptr;
-+ __collector_util_funcs.sysconf = (long(*)(int))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT sysconf: %s\n", dlerror ());
-@@ -1673,7 +1673,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "sigfillset");
- if (ptr)
-- __collector_util_funcs.sigfillset = (int(*)())ptr;
-+ __collector_util_funcs.sigfillset = (int(*)(sigset_t*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT sigfillset: %s\n", dlerror ());
-@@ -1682,7 +1682,7 @@ __collector_util_init ()
-
- ptr = dlsym (libc, "sigprocmask");
- if (ptr)
-- __collector_util_funcs.sigprocmask = (int(*)())ptr;
-+ __collector_util_funcs.sigprocmask = (int(*)(int, const sigset_t*, sigset_t*))ptr;
- else
- {
- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT sigprocmask: %s\n", dlerror ());
-diff --git a/gprofng/libcollector/mmaptrace.c b/gprofng/libcollector/mmaptrace.c
-index f07f4d76513..2a6857ab58e 100644
---- a/gprofng/libcollector/mmaptrace.c
-+++ b/gprofng/libcollector/mmaptrace.c
-@@ -1209,7 +1209,7 @@ process_vsyscall_page ()
- /*
- * collector API for dynamic functions
- */
--void collector_func_load () __attribute__ ((weak, alias ("__collector_func_load")));
-+void collector_func_load (char*, char*, char*, void*, int, int, DT_lineno *) __attribute__ ((weak, alias ("__collector_func_load")));
- void
- __collector_func_load (char *name, char *alias, char *sourcename,
- void *vaddr, int size, int lntsize, DT_lineno *lntable)
-@@ -1218,7 +1218,7 @@ __collector_func_load (char *name, char *alias, char *sourcename,
- vaddr, size, lntsize, lntable);
- }
-
--void collector_func_unload () __attribute__ ((weak, alias ("__collector_func_unload")));
-+void collector_func_unload (void *vaddr) __attribute__ ((weak, alias ("__collector_func_unload")));
- void
- __collector_func_unload (void *vaddr)
- {
-diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
-index 91678b1e334..cd47d4fbe0f 100644
---- a/gprofng/libcollector/unwind.c
-+++ b/gprofng/libcollector/unwind.c
-@@ -416,7 +416,7 @@ __collector_ext_unwind_init (int record)
- omp_no_walk = 1;
-
- if (__collector_VM_ReadByteInstruction == NULL)
-- __collector_VM_ReadByteInstruction = (int(*)()) dlsym (RTLD_DEFAULT, "Async_VM_ReadByteInstruction");
-+ __collector_VM_ReadByteInstruction = (int(*)(unsigned char*)) dlsym (RTLD_DEFAULT, "Async_VM_ReadByteInstruction");
-
- #if ARCH(SPARC)
- #if WSIZE(64)
-diff --git a/gprofng/src/collector_module.h b/gprofng/src/collector_module.h
-index ebcdbca561f..fd888cd58dd 100644
---- a/gprofng/src/collector_module.h
-+++ b/gprofng/src/collector_module.h
-@@ -110,7 +110,7 @@ typedef struct CollectorUtilFuncs
- long (*sysinfo)(int command, char *buf, long count);
- time_t (*time)(time_t *tloc);
- int (*unsetenv)(const char *name);
-- int (*vsnprintf)(char *str, size_t size, const char *format, va_list ap);
-+ int (*vsnprintf)(char *str, size_t size, const char *format, ...);
- pid_t (*waitpid)(pid_t pid, int *stat_loc, int options);
- ssize_t (*write)(int, void *, size_t);
- double (*atof)();
---
-2.50.1
-
diff --git a/package/binutils/2.42/0007-gprofng-fix-build-with-std-gnu23.patch b/package/binutils/2.42/0007-gprofng-fix-build-with-std-gnu23.patch
deleted file mode 100644
index 15a56f14af..0000000000
--- a/package/binutils/2.42/0007-gprofng-fix-build-with-std-gnu23.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-From e91e1fd342c9ded87f53bc7e9e8d5d693b9a570a Mon Sep 17 00:00:00 2001
-From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
-Date: Thu, 21 Nov 2024 14:48:20 -0800
-Subject: [PATCH] gprofng: fix build with -std=gnu23
-
-Fix function pointer types accordingly.
-Remove unused function pointers.
-
-gprofng/ChangeLog
-2024-11-21 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
-
- PR gprofng/32374
- PR gprofng/32373
- * common/cpuid.c: Define ATTRIBUTE_UNUSED if necessary.
- * libcollector/libcol_util.c (sysinfo): Remove unused pointer.
- * src/collector_module.h: Likewise.
- * libcollector/dispatcher.c (setitimer): Fix prototype.
- * libcollector/linetrace.c (system, grantpt, ptsname): Likewise.
- * testsuite/gprofng.display/mttest/mttest.c (dump_arrays): Likewise.
- * testsuite/gprofng.display/synprog/endcases.c (xinline_code,
- s_inline_code): Likewise.
- * testsuite/gprofng.display/synprog/inc_inline.h (ext_inline_code):
- Likewise.
- * testsuite/gprofng.display/synprog/synprog.c (doabort): Rename nullptr.
-
-Upstream: 4e943705e3e8a5a9448d087502bcb390a694ad02
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
----
- gprofng/common/cpuid.c | 2 ++
- gprofng/libcollector/dispatcher.c | 2 +-
- gprofng/libcollector/libcol_util.c | 9 ---------
- gprofng/libcollector/linetrace.c | 10 +++++-----
- gprofng/src/collector_module.h | 1 -
- gprofng/testsuite/gprofng.display/mttest/mttest.c | 2 +-
- gprofng/testsuite/gprofng.display/synprog/endcases.c | 4 ++--
- gprofng/testsuite/gprofng.display/synprog/inc_inline.h | 2 +-
- gprofng/testsuite/gprofng.display/synprog/synprog.c | 4 ++--
- 9 files changed, 14 insertions(+), 22 deletions(-)
-
-diff --git a/gprofng/common/cpuid.c b/gprofng/common/cpuid.c
-index af15439eb27..0373969693b 100644
---- a/gprofng/common/cpuid.c
-+++ b/gprofng/common/cpuid.c
-@@ -21,7 +21,9 @@
- #if defined(__i386__) || defined(__x86_64)
- #include <cpuid.h> /* GCC-provided */
- #elif defined(__aarch64__)
-+#if !defined(ATTRIBUTE_UNUSED)
- #define ATTRIBUTE_UNUSED __attribute__((unused))
-+#endif
-
- static inline uint_t __attribute_const__
- __get_cpuid (unsigned int op ATTRIBUTE_UNUSED, unsigned int *eax,
-diff --git a/gprofng/libcollector/dispatcher.c b/gprofng/libcollector/dispatcher.c
-index 5ee0bf895bf..e85c343c776 100644
---- a/gprofng/libcollector/dispatcher.c
-+++ b/gprofng/libcollector/dispatcher.c
-@@ -1281,4 +1281,4 @@ __collector_ext_clone_pthread (int (*fn)(void *), void *child_stack, int flags,
- // weak symbols:
- int sigprocmask (int, const sigset_t*, sigset_t*) __attribute__ ((weak, alias ("__collector_sigprocmask")));
- int thr_sigsetmask (int, const sigset_t*, sigset_t*) __attribute__ ((weak, alias ("__collector_thr_sigsetmask")));
--int setitimer () __attribute__ ((weak, alias ("_setitimer")));
-+__typeof(setitimer) setitimer __attribute__ ((weak, alias ("_setitimer")));
-diff --git a/gprofng/libcollector/libcol_util.c b/gprofng/libcollector/libcol_util.c
-index 688bdf19c6d..46f8b80ccb4 100644
---- a/gprofng/libcollector/libcol_util.c
-+++ b/gprofng/libcollector/libcol_util.c
-@@ -1427,15 +1427,6 @@ __collector_util_init ()
- err = COL_ERROR_UTIL_INIT;
- }
-
-- ptr = dlsym (libc, "sysinfo");
-- if (ptr)
-- __collector_util_funcs.sysinfo = (long (*)())ptr;
-- else
-- {
-- CALL_UTIL (fprintf)(stderr, "collector_util_init COL_ERROR_UTIL_INIT sysinfo: %s\n", dlerror ());
-- err = COL_ERROR_UTIL_INIT;
-- }
--
- ptr = dlsym (libc, "clearenv");
- if (ptr)
- __collector_util_funcs.clearenv = (int(*)())ptr;
-diff --git a/gprofng/libcollector/linetrace.c b/gprofng/libcollector/linetrace.c
-index 66844bc1337..c81ae1a2272 100644
---- a/gprofng/libcollector/linetrace.c
-+++ b/gprofng/libcollector/linetrace.c
-@@ -1527,7 +1527,7 @@ DCL_FUNC_VER (DCL_POSIX_SPAWNP, posix_spawnp_2_2, posix_spawnp@GLIBC_2.2)
- DCL_POSIX_SPAWNP (posix_spawnp)
-
- /*------------------------------------------------------------- system */
--int system () __attribute__ ((weak, alias ("__collector_system")));
-+int system (const char *cmd) __attribute__ ((weak, alias ("__collector_system")));
-
- int
- __collector_system (const char *cmd)
-@@ -1582,10 +1582,10 @@ DCL_FUNC_VER (DCL_POPEN, popen_2_0, popen@GLIBC_2.0)
- DCL_POPEN (popen)
-
- /*------------------------------------------------------------- grantpt */
--int grantpt () __attribute__ ((weak, alias ("__collector_grantpt")));
-+int grantpt (int fildes) __attribute__ ((weak, alias ("__collector_grantpt")));
-
- int
--__collector_grantpt (const int fildes)
-+__collector_grantpt (int fildes)
- {
- if (NULL_PTR (grantpt))
- init_lineage_intf ();
-@@ -1607,10 +1607,10 @@ __collector_grantpt (const int fildes)
- }
-
- /*------------------------------------------------------------- ptsname */
--char *ptsname () __attribute__ ((weak, alias ("__collector_ptsname")));
-+char *ptsname (int fildes) __attribute__ ((weak, alias ("__collector_ptsname")));
-
- char *
--__collector_ptsname (const int fildes)
-+__collector_ptsname (int fildes)
- {
- if (NULL_PTR (ptsname))
- init_lineage_intf ();
-diff --git a/gprofng/src/collector_module.h b/gprofng/src/collector_module.h
-index fd888cd58dd..6640f12fa3c 100644
---- a/gprofng/src/collector_module.h
-+++ b/gprofng/src/collector_module.h
-@@ -107,7 +107,6 @@ typedef struct CollectorUtilFuncs
- int (*symlink)(const char *s1, const char *s2);
- int (*syscall)(int number, ...);
- long (*sysconf)(int name);
-- long (*sysinfo)(int command, char *buf, long count);
- time_t (*time)(time_t *tloc);
- int (*unsetenv)(const char *name);
- int (*vsnprintf)(char *str, size_t size, const char *format, ...);
-diff --git a/gprofng/testsuite/gprofng.display/mttest/mttest.c b/gprofng/testsuite/gprofng.display/mttest/mttest.c
-index e0835c833e5..3db5b8d8e86 100644
---- a/gprofng/testsuite/gprofng.display/mttest/mttest.c
-+++ b/gprofng/testsuite/gprofng.display/mttest/mttest.c
-@@ -171,7 +171,7 @@ void computeJ (workStruct_t *x);
- void computeK (workStruct_t *x);
- void addone (workCtr_t *x);
- void init_arrays (int strat);
--void dump_arrays ();
-+void dump_arrays (hrtime_t real, hrtime_t cpu, int case_index);
- void *do_work (void *v);
- void thread_work ();
- void nothreads (Workblk *array, struct scripttab *k);
-diff --git a/gprofng/testsuite/gprofng.display/synprog/endcases.c b/gprofng/testsuite/gprofng.display/synprog/endcases.c
-index a6a1389658a..6f1c83b6859 100644
---- a/gprofng/testsuite/gprofng.display/synprog/endcases.c
-+++ b/gprofng/testsuite/gprofng.display/synprog/endcases.c
-@@ -40,8 +40,8 @@ static void s_inline_code (int);
- void ext_inline_code (int);
-
- #ifndef NO_INLINE
--void xinline_code () __attribute__ ((always_inline));
--void s_inline_code () __attribute__ ((always_inline));
-+void xinline_code (int) __attribute__ ((always_inline));
-+void s_inline_code (int) __attribute__ ((always_inline));
- #endif
-
- #include "inc_inline.h"
-diff --git a/gprofng/testsuite/gprofng.display/synprog/inc_inline.h b/gprofng/testsuite/gprofng.display/synprog/inc_inline.h
-index da42563c828..6600eacb66d 100644
---- a/gprofng/testsuite/gprofng.display/synprog/inc_inline.h
-+++ b/gprofng/testsuite/gprofng.display/synprog/inc_inline.h
-@@ -19,7 +19,7 @@
- MA 02110-1301, USA. */
-
- #ifndef NO_INLINE
--void ext_inline_code() __attribute__ ((always_inline));
-+void ext_inline_code(int) __attribute__ ((always_inline));
- #endif
-
- void
-diff --git a/gprofng/testsuite/gprofng.display/synprog/synprog.c b/gprofng/testsuite/gprofng.display/synprog/synprog.c
-index cf1bc5b0909..05920dc7419 100644
---- a/gprofng/testsuite/gprofng.display/synprog/synprog.c
-+++ b/gprofng/testsuite/gprofng.display/synprog/synprog.c
-@@ -528,14 +528,14 @@ reapchildren ()
- int
- doabort (int k)
- {
-- char *nullptr = NULL;
-+ char *p = NULL;
- char c;
-
- /* Log the event */
- wlog ("start of doabort", NULL);
-
- /* and dereference a NULL */
-- c = *nullptr;
-+ c = *p;
-
- /* this should never be reached */
- return (int) c;
---
-2.50.1
-
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 1bafdb0437..3092ed5b4a 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -16,9 +16,6 @@ config BR2_BINUTILS_VERSION_ARC
bool "binutils arc (2.43)"
depends on BR2_arc
-config BR2_BINUTILS_VERSION_2_42_X
- bool "binutils 2.42"
-
config BR2_BINUTILS_VERSION_2_43_X
bool "binutils 2.43.1"
@@ -33,7 +30,6 @@ endchoice
config BR2_BINUTILS_VERSION
string
default "arc-2024.12-release" if BR2_BINUTILS_VERSION_ARC
- default "2.42" if BR2_BINUTILS_VERSION_2_42_X
default "2.43.1" if BR2_BINUTILS_VERSION_2_43_X
default "2.44" if BR2_BINUTILS_VERSION_2_44_X
default "2.45.1" if BR2_BINUTILS_VERSION_2_45_X
diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
index 9e7a029461..183b7c1f4e 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 155f3ba14cd220102f4f29a4f1e5cfee3c48aa03b74603460d05afb73c70d6657a9d87eee6eb88bf13203fe6f31177a5c9addc04384e956e7da8069c8ecd20a6 binutils-2.42.tar.xz
sha512 20977ad17729141a2c26d358628f44a0944b84dcfefdec2ba029c2d02f40dfc41cc91c0631044560d2bd6f9a51e1f15846b4b311befbe14f1239f14ff7d57824 binutils-2.43.1.tar.xz
sha512 b85d3bbc0e334cf67a96219d3c7c65fbf3e832b2c98a7417bf131f3645a0307057ec81cd2b29ff2563cec53e3d42f73e2c60cc5708e80d4a730efdcc6ae14ad7 binutils-2.44.tar.xz
sha512 ea030419eba387579ab717be7e3223fc99e93b586860b06003c12489f93441640d4082736f76aa5e98233db4f46e232f536a45e471486de1f5b64e1b827c167e binutils-2.45.1.tar.xz
--
2.51.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH 1/3] package/binutils: add support for binutils 2.45.1
2025-11-20 22:15 ` [Buildroot] [PATCH 1/3] package/binutils: add support for binutils 2.45.1 Thomas Petazzoni via buildroot
@ 2025-11-21 15:13 ` Julien Olivain via buildroot
2025-11-21 20:21 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 6+ messages in thread
From: Julien Olivain via buildroot @ 2025-11-21 15:13 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: buildroot, Giulio Benetti, Romain Naour
On 20/11/2025 23:15, Thomas Petazzoni via buildroot wrote:
> We bring patches 0001 and 0002 that we carry for binutils 2.44. Patch
> 0002 requires a small update as a nearby configure option has been
> removed between 2.44 and 2.45. Patch 0003 that we have for binutils
> 2.44 is not needed as it is part of the 2.45 release.
>
> Changes in 2.45:
>
> * New versioned release of libsframe: libsframe.so.2. This release
> introduces
> versioned symbols with version node name LIBSFRAME_2.0. Some new
> symbols
> have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL
> and
> retrieving flags from SFrame decoder and encoder objects:
> - Addition of sframe_decoder_get_flags,
> sframe_decoder_get_offsetof_fde_start_addr,
> sframe_encoder_get_flags,
> sframe_encoder_get_offsetof_fde_start_addr.
> This release also includes backward-incompatible ABI changes:
> - Removal of sframe_get_funcdesc_with_addr.
> - Change in the behavior of sframe_decoder_get_funcdesc_v2,
> sframe_encoder_add_funcdesc_v2 and sframe_encoder_write.
>
> * On s390 64-bit (s390x), gas, ld, objdump, and readelf now support
> generating
> and processing SFrame V2 stack trace information (.sframe). The
> assembler
> generates SFrame info from CFI directives with option "--gsframe".
> The
> linker generates SFrame info for the linker-generated .plt section
> and merges
> all .sframe sections. Both objdump and readelf dump SFrame info with
> option
> "--sframe[=<section-name>]".
>
> * For SFrame stack trace format, the function start address in each
> SFrame
> FDE has a changed encoding: The 32-bit signed integer now holds the
> offset
> of the start PC of the associated function from the
> sfde_func_start_address
> field itself (instead of the earlier where it was the offset from the
> start
> of the SFrame section itself). All SFrame sections generated by gas
> and ld
> now default to this new encoding, setting the (new)
> SFRAME_F_FDE_FUNC_START_PCREL flag.
>
> Relocatable SFrame links are now fixed.
>
> * Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and
> GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp
> extensions.
>
> * For RISC-V dis-assembler, the definition of mapping symbol $x is
> changed,
> so the file needs to be rebuilt since 2.45 once used .option arch
> directives.
>
> * The LoongArch disassembler now properly accepts multiple disassembly
> options given by -M, such as "-M no-aliases,numeric". (Previously
> only the
> first option took effect.)
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Series applied to next, thanks.
For info, I fixed the binutils version 2.45.1 Kconfig prompt. See:
https://gitlab.com/buildroot.org/buildroot/-/commit/b7d5ff9d51507dcef721ff3d5db862f8715d3351#48ea993dbd04b7e5bbf317a81c0aa3446cd106dd_36_39
Best regards,
Julien.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH 1/3] package/binutils: add support for binutils 2.45.1
2025-11-21 15:13 ` Julien Olivain via buildroot
@ 2025-11-21 20:21 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-11-21 20:21 UTC (permalink / raw)
To: Julien Olivain; +Cc: buildroot, Giulio Benetti, Romain Naour
On Fri, 21 Nov 2025 16:13:35 +0100
Julien Olivain <ju.o@free.fr> wrote:
> Series applied to next, thanks.
> For info, I fixed the binutils version 2.45.1 Kconfig prompt. See:
> https://gitlab.com/buildroot.org/buildroot/-/commit/b7d5ff9d51507dcef721ff3d5db862f8715d3351#48ea993dbd04b7e5bbf317a81c0aa3446cd106dd_36_39
Thanks a lot for the fix!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-11-21 20:21 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-20 22:15 [Buildroot] [PATCH 0/3] binutils: bump to 2.45, default to 2.44, drop 2.42 Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 1/3] package/binutils: add support for binutils 2.45.1 Thomas Petazzoni via buildroot
2025-11-21 15:13 ` Julien Olivain via buildroot
2025-11-21 20:21 ` Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 2/3] package/binutils: make binutils 2.44 be the default Thomas Petazzoni via buildroot
2025-11-20 22:15 ` [Buildroot] [PATCH 3/3] package/binutils: remove support for binutils 2.42 Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox