345 Commits

Author SHA1 Message Date
Bernd Kuhls e0c14c083a package/binutils: remove support for binutils 2.43
Now that binutils 2.46.0 has been introduced and binutils 2.45.1 made
the default version, drop the oldest supported version, binutils 2.43,
keeping only the 3 last versions supported: 2.44, 2.45.1 and 2.46.0.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
2026-02-17 22:44:12 +01:00
Bernd Kuhls 3b592bd620 package/binutils: make binutils 2.45.1 be the default
Now that support for binutils 2.46.0 has been introduced, we follow our
policy of making binutils 2.45.1 the default version.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-17 22:40:46 +01:00
Bernd Kuhls 101997e334 package/binutils: add support for binutils 2.46.0
https://sourceware.org/pipermail/binutils/2026-February/148149.html

" This release contains numerous bug fixes, and also the following new
  features:

    * Support for new instructions added to AMD, ARM and RISC-V
      architectures.

    * Support for version 3 of the SFrame standard.

    * The readelf program can now display the contents of Global Offset
      Tables.

    * Improved linker tagging support."

We bring and rebased patches 0001 and 0002 that we carry for binutils
2.45.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-17 22:40:43 +01:00
Thomas Petazzoni cad4f06931 package/binutils: remove support for binutils 2.42
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>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-11-21 12:34:33 +01:00
Thomas Petazzoni 08fa58f1da package/binutils: make binutils 2.44 be the default
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>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-11-21 12:34:33 +01:00
Thomas Petazzoni b7d5ff9d51 package/binutils: add support for binutils 2.45.1
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>
[Julien: fix BR2_BINUTILS_VERSION_2_45_X prompt to 2.45.1]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-11-21 12:34:33 +01:00
Thomas Petazzoni ddbad663e0 package/binutils: add patches to fix gprofng build with GCC 15.x
When BR2_BINUTILS_GPROFNG=y, the build currently fails with GCC 15.x,
of course on architectures for which gprofng is actually
available. This issue only exists in binutils 2.42 and 2.43.1, as
binutils 2.44 has the necessary fixes.

Therefore, this commit backports the relevant commits from binutils
2.44 to 2.43.1 and 2.42.

Fixes:

  https://autobuild.buildroot.net/results/7cf52019f87625c73ef3c4ca0b6270e20a4ab768/ (binutils 2.42)
  https://autobuild.buildroot.net/results/478e24af1a03dea5ec64b77ca611b4f7225c9d39/ (binutils 2.43.1)

The following defconfig, built under a Fedora 42 Docker container
allows to reproduce the issue:

 BR2_x86_nehalem=y
 BR2_BINUTILS_VERSION_2_42_X=y
 BR2_BINUTILS_GPROFNG=y
 BR2_INIT_NONE=y
 BR2_SYSTEM_BIN_SH_NONE=y
 # BR2_PACKAGE_BUSYBOX is not set
 # BR2_TARGET_ROOTFS_TAR is not set

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2025-08-24 15:50:59 +02:00
Thomas Petazzoni bfd75a5bd2 package/binutils: never build readline to fix GCC 15.x build issue
The binutils-gdb code base in Git does have a copy of readline that is
used by gdb.

The release tarballs of binutils do NOT contain readline as it's not
needed for binutils itself (only gdb).

However, when we build the ARC binutils, taken from Git, the readline/
folder is present, and therefore readline is built even if it is not
actually needed.

This causes build failures as the copy of readline in ARC binutils
2024.12 (based on binutils 2.43) does not build with GCC 15.x.

To work around this problem, we use a suggestion from Waldemar
Brodkorb: pass --with-system-readline. Indeed, this disables the build
of readline... but it does not actually check that we have a system
readline, since we're not building gdb.

Fixes:

  https://autobuild.buildroot.net/results/976243181f7000fe2790b3450bdae51e8c12769e/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2025-08-24 15:23:37 +02:00
Thomas Petazzoni 8ef2ba2ec3 package/{gcc, binutils, gdb}: update ARC version to 2024.12
This commit updates the ARC toolchain components to the 2024.12
release, keeping the same patches.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-08-07 23:00:42 +02:00
Raphaël Mélotte 430aa91c3d package/binutils: fix build with gcc 15
Backport the upstream patch that fixes the following build error when
compiling for mips with gcc 15:

In file included from mips-opc.c:29:
mips-opc.c: In function 'decode_mips_operand':
mips-formats.h:86:7: error: expected identifier or '(' before
'static_assert'
   86 |       static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
         |       ^~~~~~~~~~~~~

The patch is already part of upstream binutils 2.44, so we only need
it for 2.42 and 2.43.1.

All 3 versions we have of host-binutils were build-tested using the
defconfig from the autobuilder failure (see the link below) and gcc 15
on the host.

Fixes:
- https://autobuild.buildroot.org/results/873/873ec25cf01d5f2b9ae7044e0b1d8d8791b781e6/

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-06-28 12:57:42 +02:00
Titouan Christophe 4dc951f3ee package/binutils: apply security patch for CVE-2025-3198
This fixes a memory leaks that affects both binutils 2.43 and 2.44,
see https://www.cve.org/CVERecord?id=CVE-2025-3198

Fixes the following CVE:
- CVE-2025-3198: A vulnerability has been found in GNU Binutils 2.43/2.44
                 and classified as problematic. Affected by this
                 vulnerability is the function display_info of the file
                 binutils/bucomm.c of the component objdump.
                 The manipulation leads to memory leak.

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-05-21 19:50:45 +02:00
Vincent Jardin 3572658ad2 package/binutils: fix change to 2.43 as default version
Commit 360fd01de2 changed the binutils
package to use 2.43.x as the default version, but got the change wrong
in the BINUTILS_VERSION variable assignment. Indeed we don't support
2.43, but 2.43.1. This issue is causing the following build failure:

  ERROR: No hash found for binutils-2.43.tar.xz

Fixes:

  https://gitlab.com/vjardin/buildroot/-/jobs/9043815781

Signed-off-by: Vincent Jardin <vjardin@free.fr>
[Thomas: proper fix, and improved commit log]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2025-02-05 07:55:33 +01:00
Thomas Petazzoni 32829d0d13 package/binutils: drop binutils 2.41
Now that we have added binutils 2.44, made binutils 2.43 the default,
let's continue to follow our usual policy and drop support for
binutils 2.41.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2025-02-04 10:16:44 +01:00
Thomas Petazzoni 360fd01de2 package/binutils: make 2.43 the default version
Now that we've added support for binutils 2.44, follow our usual
process of masking the previous release, 2.43, the default one.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2025-02-04 10:13:45 +01:00
Thomas Petazzoni a42041575e package/binutils: add support for version 2.44
Release notes:
https://sourceware.org/pipermail/binutils/2025-February/139195.html

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2025-02-04 10:10:21 +01:00
Romain Naour 99bfbef093 package: remove BR2_nios2 symbol
Remaining "nios2" strings come from existing patches that
are not removed with along with BR2_nios2 symbol.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-15 21:30:36 +01:00
Waldemar Brodkorb 4e492e4492 package/binutils: update to 2.43.1
See here the release announcement for changes:
https://sourceware.org/pipermail/binutils/2024-August/136396.html

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-23 19:37:16 +02:00
Waldemar Brodkorb ee9d018341 package/binutils: drop support for binutils 2.40
Now that we have integrated support for binutils 2.43, and made
binutils 2.42 the default, following our tradition, we can drop
support for binutils 2.40.

In addition to the usual things, there is an additional change
in elf2flt.mk, which had a special condition applicable to binutils
2.40, which can be removed now.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-12 22:53:20 +02:00
Waldemar Brodkorb 5219cd2a4d package/binutils: make 2.42 the default version
Now that 2.43 has been introduced, let's make 2.42 the latest version,
following the traditional Buildroot policy.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-12 22:52:31 +02:00
Waldemar Brodkorb 800a033f78 package/binutils: add support for 2.43
See following Changelogs for News:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/heads/binutils-2_43-branch
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gas/NEWS;hb=refs/heads/binutils-2_43-branch
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=ld/NEWS;hb=refs/heads/binutils-2_43-branch

Patch 0003 is upstream.
Patch 0002 is rebased.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-12 22:52:26 +02:00
Giulio Benetti 83339a69e4 package/binutils: add local patches to fix Nios2 bug 27597
These backported patches fix Nios2 linker bug 27597 that affects packages
gdal, kf5-kcoreaddons, libgeos, libcamera, pistache.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-05-01 21:57:16 +02:00
Thomas Petazzoni e1f9c98808 package/binutils: drop BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME
Now that binutils 2.39 is gone, we can drop
BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME, which was only used for
binutils 2.39. This was a blind option, so Config.in.legacy handling
is not needed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-03-03 11:46:18 +01:00
Thomas Petazzoni f4187bd1ee package/binutils: drop support for binutils 2.39
Now that we have integrated support for binutils 2.42, and made
binutils 2.41 the default, following our tradition, we can drop
support for binutils 2.39.

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

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-03-03 11:46:16 +01:00
Thomas Petazzoni e88225ed88 package/binutils: make 2.41 the default version
Now that 2.42 has been introduced, let's make 2.41 the latest version,
following the traditional Buildroot policy.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-03-03 11:24:49 +01:00
Thomas Petazzoni ae910aac62 package/binutils: add support for 2.42
Note that the hash of the tarball does not need to be added, as it was
already added as part of commit 11b439ce1b
("package/binutils-bare-metal: new package").

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

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[yann.morin.1998@free.fr: keep version list in strict version order]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-03-03 11:22:41 +01:00
Neal Frager 11b439ce1b package/binutils-bare-metal: new package
This patch adds a new package for building binutils for a bare-metal toolchain.
The cpu architecture is defined by a toolchain-bare-metal virtual package.
While any cpu architecture could be used, the default configuration will be a
Xilinx microblaze little endian architecture, so that buildroot will be able
to build the microblaze firmware applications for zynqmp and versal.

In order to build the zynqmp pmufw and versal plm applications without error,
binutils version 2.41 or higher is required.

Signed-off-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-02-06 17:57:18 +01:00
Alexey Brodkin 7f13171e9d package/binutils: re-add poison system directories patch to ARC binutils
While updating ARC GNU toolchain version (see [1]) we unintentionally
got rid of "0001-poison-system-directories.patch" which still makes
sense.

Even though one may think that we do not need these Binutils patches
because we do "poisoning" of system directories in toolchain wrapper,
but these wrappers don't exist for tools originated from Binutils, only
for gcc, g++ etc.

So we need to keep that patch still, sorry.

[1] https://git.buildroot.net/buildroot/commit/?id=045ab73702b8bc09f94ca1f3b8e5bf3acb0b0843

Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-01-10 21:38:04 +01:00
Alexey Brodkin 045ab73702 toolchain: bump ARC toolchain components to arc-2023.09-release
With the most recent ARC GNU toolchain version released [1]
we may switch to its stable and verified components for Buildroot's
built-in toolchian.

And while for ARCompact (i.e. ARC700) & ARCv2 (ARC HS38 & HS48)
processors upstream components work just fine, in this new release
of ARC GNU toolchain we have also support for newer ARCv3 procesors.

And so that update is more of an enabler for introduction of ARCv3
in the next series of patches.

[1] https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2023.09-release

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Waldemar Brodkorb <mail@waldemar-brodkorb.de>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-01-05 09:31:05 +01:00
Fabrice Fontaine e9f2f48a7e package/binutils: install libsframe for all relevant binutils versions
Fix the following build failure with oprofile raised since bump of
binutils to version 2.40 in commit
35656482d3:

configure: error: bfd library not found

[...]

configure:17928: checking for bfd_openr in -lbfd
configure:17953: /home/buildroot/autobuild/run/instance-1/output-1/host/bin/arm-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g0  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c -lbfd  -liberty -lpopt  -ldl -lintl >&5
/home/buildroot/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/12.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: warning: libsframe.so.0, needed by /home/buildroot/autobuild/run/instance-1/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libbfd.so, not found (try using -rpath or -rpath-link)

Indeed, in this case, libsframe is not installed even after applying
commit 1b4d921e1d because
BR2_BINUTILS_VERSION_2_40_X is not selected by anyone (binutils package
is selected by oprofile and the toolchain is not generated by buildroot)

To fix this issue, invert the logic: install libsframe by default (i.e.
when binutils is selected or with a buildroot toolchain). libsframe will
not be installed only if binutils < 2.40 is detected.

Fixes:
 - http://autobuild.buildroot.org/results/af9a2d52823a332b48e6df14d2708b6a4b3833a4

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-09-20 21:33:23 +02:00
Bernd Kuhls 1391c99d62 package/binutils: drop 2.38.x series
Now that 2.41.x has been added, that 2.40.x is the default version,
drop support for 2.38.x.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-08-01 23:12:01 +02:00
Bernd Kuhls 35656482d3 package/binutils: switch to 2.40.x as the default version
Now that 2.41 has been released, let's use 2.40.x as the default
binutils version.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-08-01 23:11:58 +02:00
Bernd Kuhls ec9d16b904 package/{binutils, libiberty}: add support for version 2.41
Release notes:
https://sourceware.org/pipermail/binutils/2023-July/128719.html

Copied patches from version 2.40.

Build-tested using these four defconfigs:
----------
BR2_arceb=y
----------
BR2_BINUTILS_VERSION_2_39_X=y
----------
(empty defconfig meaning binutils-2.40)
----------
BR2_BINUTILS_VERSION_2_41_X=y
----------
each using these commands:

$ make host-libiberty
$ make host-binutils

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-08-01 23:11:56 +02:00
Bernd Kuhls 1b4d921e1d package/binutils: install libsframe to staging
binutils 2.40 added libsframe:
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=19e559f1c91bfaedbd2f91d85ee161f3f03fda3c

Quoting release notes:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/heads/binutils-2_40-branch
* readelf and objdump now have a newly added option --sframe which dumps
  the SFrame section.

Install libsframe to staging when available to avoid build errors, for
example with lightning:
libsframe.so.0, needed by output/per-package/lightning/host/arm-
  buildroot-linux-gnueabi/sysroot/usr/lib/libopcodes.so, not found

Fixes:
http://autobuild.buildroot.net/results/1d1/1d1480dc0c3fb0a88490e3fae85abb2aa76bdade/

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-08-01 00:11:11 +02:00
Romain Naour 8a55a0bf8e package/binutils: drop 2.37.x series
Now that 2.40.x has been added, that 2.39.x is the default version,
drop support for 2.37.x.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-07-01 23:07:29 +02:00
Romain Naour fb50eab8a5 package/binutils: switch to 2.39.x as the default version
Now that 2.40 has been released, let's use 2.39.x as the default
binutils version.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-07-01 23:07:06 +02:00
Romain Naour e2d794416c package/binutils: add support for version 2.40
See:
https://sourceware.org/pipermail/binutils/2023-January/125671.html

Disable zstd support to avoid adding a new dependency.

Add Upstream tag on each binutils patches:
  0001-sh-conf.patch: Buildroot specific since we are carrying this patch for years.
  0002-poison-system-directories.patch: Add the Buildroot Upstream tag

Remove 0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch since
it was rejected by upstream [1] and actually only needed for binutils
< 2.37. Binutils 2.37 replaced AC_PROG_CC with AC_PROG_CC_C99 in top
level configure file [2].

[1] https://sourceware.org/pipermail/binutils/2021-June/116907.html
[2] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=a8d6316b67d52eaa1b7b311084ddff71a66f7cc0

Runtime tested:
https://gitlab.com/kubu93/buildroot/-/pipelines/895618463

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-07-01 23:07:02 +02:00
Romain Naour bd17127b4a package/{binutils, gdb}: switch to https urls for archives hashes
FTP urls doesn't work anymore with Firefox [1] and Google Chrome [2],
switch to https urls.

[1] https://blog.mozilla.org/addons/2020/04/13/what-to-expect-for-the-upcoming-deprecation-of-ftp-in-firefox/
[2] https://chromestatus.com/feature/6246151319715840

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-07-01 23:03:20 +02:00
Romain Naour 0e42555691 package/binutils: invert version logic
BR2_BINUTILS_GPROFNG was made available for known supported versions
only (binutils 2.39 at this point). As all new versions of binutils
support gprofng, it makes sense to invert the logic, and instead make
BR2_BINUTILS_GPROFNG not available with old binutils versions.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-07-01 23:02:09 +02:00
Thomas Petazzoni a904fb2ac4 package/binutils: prevent selecting 2.37 for AVX512 systems
Support for the AVX512FP16 instructions was added in binutils
2.38. See the binutils 2.38 releases notes [0] that state:

    X86:
    [...]
      * Add support for Intel AVX512_FP16 instructions.

[0] https://sourceware.org/pipermail/binutils/2022-February/119721.html

It turns out that when building GCC 12.x, some of these AVX512FP16
instructions are now used, and therefore when binutils < 2.38 is used,
the build fails as the assembler does not recognize those
instructions:

/tmp/ccChzL2g.s: Assembler messages:
/tmp/ccChzL2g.s:20: Error: no such instruction: `vmovw 24(%esp),%xmm2'
/tmp/ccChzL2g.s:21: Error: no such instruction: `vmovw 28(%esp),%xmm3'
/tmp/ccChzL2g.s:22: Error: no such instruction: `vmovw 32(%esp),%xmm4'
/tmp/ccChzL2g.s:23: Error: no such instruction: `vmovw 36(%esp),%xmm5'
/tmp/ccChzL2g.s:30: Error: no such instruction: `vcvtsh2ss %xmm2,%xmm6,%xmm6'
/tmp/ccChzL2g.s:36: Error: no such instruction: `vcvtsh2ss %xmm3,%xmm6,%xmm6'
/tmp/ccChzL2g.s:42: Error: no such instruction: `vcvtsh2ss %xmm4,%xmm7,%xmm7'
/tmp/ccChzL2g.s:48: Error: no such instruction: `vcvtsh2ss %xmm5,%xmm1,%xmm1'
/tmp/ccChzL2g.s:80: Error: no such instruction: `vcvtss2sh (%esp),%xmm1,%xmm1'
/tmp/ccChzL2g.s:96: Error: no such instruction: `vcvtss2sh (%esp),%xmm0,%xmm0'
/tmp/ccChzL2g.s💯 Error: no such instruction: `vucomish %xmm1,%xmm1'
/tmp/ccChzL2g.s:103: Error: no such instruction: `vucomish %xmm0,%xmm0'
/tmp/ccChzL2g.s:122: Error: no such instruction: `vucomish %xmm2,%xmm2'

The same issue does not occur with GCC 11.x, but nothing prevents
other packages than GCC to use those instructions, so the problem
really lies on the binutils side missing the support for those
instructions.

Also, in Buildroot, we do not distinguish AVX512 in general from
AVX512FP16 specifically, so our only option is to make binutils 2.37
unavailable for AVX512 systems even if some of them perhaps don't
support AVX512FP16 anyway. This seems like a reasonable trade-off, as
binutils 2.38 is anyway already the default in Buildroot, and
AVX512-capable systems are fairly recent, and therefore using a recent
binutils version should not be a problem on these platforms.

Fixes:

  http://autobuild.buildroot.net/results/eb6e28c934654e6d714973415a2fb452f9580279/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-10-30 20:31:41 +01:00
Yann E. MORIN d4afac3ab1 package/binutils: fix typo in variable name
Commit 7ff21f8d4b (package/binutils: handle gprofng as an optional
feature) introduced the typo. Although it was noticed, the commit was
not amended before being pushed...

Fix that now...

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-08-14 17:13:57 +02:00
Thomas Petazzoni 7ff21f8d4b package/binutils: handle gprofng as an optional feature
binutils 2.39 added support for gprofng, a new profiler (see
https://www.phoronix.com/news/GNU-Profiler-gprofng).

This new profiler is enabled by default, but it requires bison on the
host.

In order to handle this, this commit:

 - Adds a new option BR2_BINUTILS_GPROFNG, which allows to
   enable/disable gprofng in host-binutils

 - Unconditionnally disables gprofng for the target binutils, based on
   the idea that in a Buildroot context the analysis of profiling data
   is generally done on the host system. This can of course always be
   revisited later by adding a new option to the target binutils
   package.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-08-13 23:28:20 +02:00
Waldemar Brodkorb d08639e6b9 package/binutils: remove 2.36.1 and make 2.38 default
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-08-13 00:07:55 +02:00
Waldemar Brodkorb 9b773d0189 package/binutils: add version 2.39
Patch 0002-poison-system-directories.patch got rebased.
Patch 0004+0005 is upstreamed and got removed.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-08-13 00:03:44 +02:00
Yann E. MORIN 84fe8e694e package: drop csky support in toolchain-related packages
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Guo Ren <ren_guo@c-sky.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-27 17:00:30 +02:00
Arnout Vandecappelle (Essensium/Mind) f0f99c9087 package/binutils: remove BR2_BINUTILS_ENABLE_LTO
Currently, this option doesn't do anything. It only adds
--enable-plugins --enable-lto to the configure flags, but doesn't
disable them if it is not set. Since both of these default to enabled,
plugins and lto are effectively always enabled.

There really is no need to make this configurable: it adds a bit of size
and build time to host-binutils, but we don't care about that for host
tools. It's still up to individual builds to enable the LTO options.

Therefore, remove the option entirely. For clarity, explicitly pass
--enable-plugins --enable-lto to configure.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-26 21:56:21 +02:00
Thomas Petazzoni 6030cea9e9 package/binutils: drop version 2.32
Now that recent versions of binutils work with FLAT binaries, we can
drop the old 2.32 version, which was kept only to keep support FLAT
binaries.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-04-28 23:45:08 +02:00
Thomas Petazzoni 44b9361a2e package/binutils: re-enable recent versions of binutils for FLAT binaries
Thanks to the bump of elf2flt to version 2021.08, the issue with
recent versions of binutils has been fixed, so we can re-enable using
the recent binutils versions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-04-28 23:45:07 +02:00
Waldemar Brodkorb 5a96dbad7e package/binutils: make 2.37 the default
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-04-23 16:07:20 +02:00
Waldemar Brodkorb 5706080f69 package/binutils: remove 2.35.2
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-04-23 16:07:11 +02:00
Waldemar Brodkorb e93cec6d3c package/binutils: add version 2.38
See:
https://sourceware.org/pipermail/binutils/2022-February/119721.html

i386-Allow-GOT32-relocations-against-ABS-symbols.patch is not required
as it is in release.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-04-23 16:05:39 +02:00