Skip to content

Conversation

@ziuziakowska
Copy link
Contributor

@ziuziakowska ziuziakowska commented Nov 18, 2025

As upstream now supports the Bitmanip 1.0.0 spec, the unratified extension support was re-implemented in a fork of Binutils. This should make it easier and less error-prone to update to newer versions, instead of applying a patch.
The BFD and libc patches are also no longer needed in this version of Binutils, so that leaves no more patching.

Since the last version of Binutils we used, GMP and MPFR have become required dependencies of GDB. However, the configure script prefers to dynamically link shared libraries if they are available, and fallback to static ones if they are not present, so we opt to build both libraries statically as part of the build script.

@ziuziakowska ziuziakowska marked this pull request as ready for review November 18, 2025 16:53
@ziuziakowska ziuziakowska force-pushed the binutils-2_44 branch 3 times, most recently from ab244aa to 322113a Compare November 18, 2025 17:07
Copy link
Contributor

@jwnrt jwnrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks

@ziuziakowska ziuziakowska marked this pull request as draft November 18, 2025 19:00
@ziuziakowska
Copy link
Contributor Author

Switched back to draft for now - this should use the static versions of GMP and MPFR instead.

@ziuziakowska ziuziakowska marked this pull request as ready for review November 25, 2025 17:47
@ziuziakowska ziuziakowska force-pushed the binutils-2_44 branch 4 times, most recently from cae1bc2 to 5e868b1 Compare November 25, 2025 18:32
Upstream binutils now supports the ratified 1.0.0 bitmanip extensions,
so rather than maintaining patches to add the unratified extensions back
in, a fork of binutils was created which we now use, and should allow
for easier updates to future versions.

The glob and ELF BFD patches are no longer required for this version of
binutils to build correctly so they are removed.

Since the last version of binutils used, the GMP and MPFR libraries have
become required for building GDB. However, the configure step will
always prefer the shared library rather than the static one when
building, so we have to build our own static-only libraries of these to
link.

MPFR is clone-able from the official repository, however GMP does not
appreciate excessive cloning, so we use a release archive instead for
that.

The updated binutils contain a change for generating verilog memory
(vmem) files that is useful for OpenTitan.

See also: https://github.com/lowRISC/binutils

Signed-off-by: Alice Ziuziakowska <[email protected]>
@jwnrt jwnrt mentioned this pull request Nov 26, 2025
@luismarques luismarques merged commit bbbbad5 into lowRISC:master Nov 26, 2025
4 checks passed
@ziuziakowska ziuziakowska deleted the binutils-2_44 branch November 26, 2025 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants