janneke pushed a commit to branch core-packages-team
in repository guix.
commit 462780a840650b9734e1e0046de5bc0e8c84320c
Author: Zheng Junjie <[email protected]>
AuthorDate: Sat Feb 8 18:25:19 2025 +0800
gnu: binutils: Update to 2.44.
* gnu/packages/patches/binutils-2.41-fix-cross.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (binutils): Update to 2.44 and use it.
* gnu/packages/patches/binutils-mingw-w64-timestamp.patch: Adjust it.
Change-Id: Ia54b0e7a076b1fe162524bf76a1ab4031792bc32
---
gnu/local.mk | 1 +
gnu/packages/base.scm | 8 +-
gnu/packages/patches/binutils-2.41-fix-cross.patch | 63 +++++++++
.../patches/binutils-mingw-w64-timestamp.patch | 142 +++++++++------------
4 files changed, 131 insertions(+), 83 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 9cd2ff5219..708c748de3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1062,6 +1062,7 @@ dist_patch_DATA =
\
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
+ %D%/packages/patches/binutils-2.41-fix-cross.patch \
%D%/packages/patches/bloomberg-bde-cmake-module-path.patch \
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/boolector-find-googletest.patch \
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index a138e09fec..47a864f227 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -715,15 +715,17 @@ change. GNU make offers many powerful extensions over
the standard utility.")
(define-public binutils
(package
(name "binutils")
- (version "2.41")
+ (version "2.44")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2"))
(sha256
- (base32 "02xkm9xgcrqhln742636nm43yzrpjkhqj0z64h03gf7pab0bxi54"))
- (patches (search-patches "binutils-loongson-workaround.patch"))))
+ (base32 "0fnwaasfglbphqzvz5n25js9gl695p7pjbmb1z81g8gsc6k90qzn"))
+ (patches (search-patches
+ "binutils-2.41-fix-cross.patch"
+ "binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
(arguments
(list #:out-of-source? #t ;recommended in the README
diff --git a/gnu/packages/patches/binutils-2.41-fix-cross.patch
b/gnu/packages/patches/binutils-2.41-fix-cross.patch
new file mode 100644
index 0000000000..40a19e091d
--- /dev/null
+++ b/gnu/packages/patches/binutils-2.41-fix-cross.patch
@@ -0,0 +1,63 @@
+From b499f0c797779a6d7ff01445aebd2fcc47aac357 Mon Sep 17 00:00:00 2001
+From: Zheng Junjie <[email protected]>
+Date: Mon, 10 Feb 2025 17:04:55 +0800
+Subject: [PATCH] gprofng: Fix cross-compilation binary name.
+
+commit d25ba4596e85da6d8af78c88b5917e14763afbe1 create symbolic link
+no care cross-compilation prefix.
+
+gprofng/ChangeLog
+2025-02-10 Zheng Junjie <[email protected]>
+ * src/Makefile.am: create symbolic link respect cross-compilation.
+ * src/Makefile.in: Rebuild.
+---
+ gprofng/src/Makefile.am | 12 +++++-------
+ gprofng/src/Makefile.in | 12 +++++-------
+ 2 files changed, 10 insertions(+), 14 deletions(-)
+
+diff --git a/gprofng/src/Makefile.am b/gprofng/src/Makefile.am
+index a132a9ddb05..0465cdb06e3 100644
+--- a/gprofng/src/Makefile.am
++++ b/gprofng/src/Makefile.am
+@@ -179,10 +179,8 @@ $(srcdir)/DbeSession.cc: QLParser.tab.hh
+ .PHONY: install-exec-local
+ install-exec-local:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+- rm -f
$(DESTDIR)$(bindir)/gp-{archive,collect-app,display-html,display-src,display-text}
+- ln -s gprofng-archive $(DESTDIR)$(bindir)/gp-archive
+- ln -s gprofng-collect-app $(DESTDIR)$(bindir)/gp-collect-app
+- ln -s gprofng-display-html $(DESTDIR)$(bindir)/gp-display-html
+- ln -s gprofng-display-src $(DESTDIR)$(bindir)/gp-display-src
+- ln -s gprofng-display-text $(DESTDIR)$(bindir)/gp-display-text
+-
++ for i in
gp-{archive,collect-app,display-html,display-src,display-text}; do \
++ oldname=`echo $$i | sed '$(transform)'`; \
++ rm -f $(DESTDIR)$(bindir)/$$oldname ; \
++ ln -s `echo $$oldname | sed 's&gp-&gprofng-&'`
$(DESTDIR)$(bindir)/$$oldname; \
++ done
+diff --git a/gprofng/src/Makefile.in b/gprofng/src/Makefile.in
+index d0dec12e244..d6f1f9438b6 100644
+--- a/gprofng/src/Makefile.in
++++ b/gprofng/src/Makefile.in
+@@ -1119,13 +1119,11 @@ $(srcdir)/DbeSession.cc: QLParser.tab.hh
+ .PHONY: install-exec-local
+ install-exec-local:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+- rm -f
$(DESTDIR)$(bindir)/gp-{archive,collect-app,display-html,display-src,display-text}
+- ln -s gprofng-archive $(DESTDIR)$(bindir)/gp-archive
+- ln -s gprofng-collect-app $(DESTDIR)$(bindir)/gp-collect-app
+- ln -s gprofng-display-html $(DESTDIR)$(bindir)/gp-display-html
+- ln -s gprofng-display-src $(DESTDIR)$(bindir)/gp-display-src
+- ln -s gprofng-display-text $(DESTDIR)$(bindir)/gp-display-text
+-
++ for i in
gp-{archive,collect-app,display-html,display-src,display-text}; do \
++ oldname=`echo $$i | sed '$(transform)'`; \
++ rm -f $(DESTDIR)$(bindir)/$$oldname ; \
++ ln -s `echo $$oldname | sed 's&gp-&gprofng-&'`
$(DESTDIR)$(bindir)/$$oldname; \
++ done
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+--
+2.47.1
+
diff --git a/gnu/packages/patches/binutils-mingw-w64-timestamp.patch
b/gnu/packages/patches/binutils-mingw-w64-timestamp.patch
index fcfe4a36aa..059084e41d 100644
--- a/gnu/packages/patches/binutils-mingw-w64-timestamp.patch
+++ b/gnu/packages/patches/binutils-mingw-w64-timestamp.patch
@@ -11,9 +11,9 @@ Author: Stephen Kitt <[email protected]>
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
-@@ -77,6 +77,9 @@
+@@ -74,6 +74,9 @@
+ #include <wchar.h>
#include <wctype.h>
- #endif
+#include <errno.h>
+#include <limits.h>
@@ -21,46 +21,37 @@ Author: Stephen Kitt <[email protected]>
/* NOTE: it's strange to be including an architecture specific header
in what's supposed to be general (to PE/PEI) code. However, that's
where the definitions are, and they don't vary per architecture
-@@ -876,9 +879,36 @@
-
- /* Use a real timestamp by default, unless the no-insert-timestamp
- option was chosen. */
-- if ((pe_data (abfd)->timestamp) == -1)
-- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
-- else
-+ if ((pe_data (abfd)->timestamp) == -1) {
-+ time_t now;
-+ char *source_date_epoch;
-+ unsigned long long epoch;
-+ char *endptr;
-+
-+ now = time (NULL);
-+ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-+ if (source_date_epoch) {
-+ errno = 0;
-+ epoch = strtoull(source_date_epoch, &endptr, 10);
-+ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
-+ || (errno != 0 && epoch == 0)) {
-+ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH:
strtoull: %s\n",
-+ strerror(errno));
-+ } else if (endptr == source_date_epoch) {
-+ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: No
digits were found: %s\n",
-+ endptr);
-+ } else if (*endptr != '\0') {
-+ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: Trailing
garbage: %s\n",
-+ endptr);
-+ } else if (epoch > ULONG_MAX) {
-+ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: value
must be smaller than or equal to: %lu but was found to be: %llu\n",
-+ ULONG_MAX, epoch);
-+ } else {
-+ now = epoch;
+@@ -842,6 +845,30 @@
+ if ((pe_data (abfd)->timestamp) == -1)
+ {
+ time_t now = bfd_get_current_time (0);
++ char *source_date_epoch;
++ unsigned long long epoch;
++ char *endptr;
++ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
++ if (source_date_epoch) {
++ errno = 0;
++ epoch = strtoull(source_date_epoch, &endptr, 10);
++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
++ || (errno != 0 && epoch == 0)) {
++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH:
strtoull: %s\n",
++ strerror(errno));
++ } else if (endptr == source_date_epoch) {
++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: No
digits were found: %s\n",
++ endptr);
++ } else if (*endptr != '\0') {
++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH:
Trailing garbage: %s\n",
++ endptr);
++ } else if (epoch > ULONG_MAX) {
++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: value
must be smaller than or equal to: %lu but was found to be: %llu\n",
++ ULONG_MAX, epoch);
++ } else {
++ now = epoch;
++ }
+ }
-+ }
-+ H_PUT_32 (abfd, now, filehdr_out->f_timdat);
-+ } else
- H_PUT_32 (abfd, pe_data (abfd)->timestamp, filehdr_out->f_timdat);
-
- PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr,
+ H_PUT_32 (abfd, now, filehdr_out->f_timdat);
+ }
+ else
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -27,6 +27,8 @@
@@ -72,46 +63,37 @@ Author: Stephen Kitt <[email protected]>
#include <time.h>
#include "ld.h"
-@@ -1218,9 +1220,36 @@
-
- memset (edata_d, 0, edata_sz);
-
-- if (pe_data (abfd)->timestamp == -1)
-- H_PUT_32 (abfd, time (0), edata_d + 4);
-- else
-+ if (pe_data (abfd)->timestamp == -1) {
-+ time_t now;
-+ char *source_date_epoch;
-+ unsigned long long epoch;
-+ char *endptr;
-+
-+ now = time(NULL);
-+ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-+ if (source_date_epoch) {
-+ errno = 0;
-+ epoch = strtoull(source_date_epoch, &endptr, 10);
-+ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
-+ || (errno != 0 && epoch == 0)) {
-+ einfo("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n",
-+ strerror(errno));
-+ } else if (endptr == source_date_epoch) {
-+ einfo("Environment variable $SOURCE_DATE_EPOCH: No digits were found:
%s\n",
-+ endptr);
-+ } else if (*endptr != '\0') {
-+ einfo("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n",
-+ endptr);
-+ } else if (epoch > ULONG_MAX) {
-+ einfo("Environment variable $SOURCE_DATE_EPOCH: value must be smaller
than or equal to: %lu but was found to be: %llu\n",
-+ ULONG_MAX, epoch);
-+ } else {
-+ now = epoch;
+@@ -1254,6 +1256,30 @@
+ if (pe_data (abfd)->timestamp == -1)
+ {
+ time_t now = bfd_get_current_time (0);
++ char *source_date_epoch;
++ unsigned long long epoch;
++ char *endptr;
++ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
++ if (source_date_epoch) {
++ errno = 0;
++ epoch = strtoull(source_date_epoch, &endptr, 10);
++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
++ || (errno != 0 && epoch == 0)) {
++ einfo("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n",
++ strerror(errno));
++ } else if (endptr == source_date_epoch) {
++ einfo("Environment variable $SOURCE_DATE_EPOCH: No digits were
found: %s\n",
++ endptr);
++ } else if (*endptr != '\0') {
++ einfo("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage:
%s\n",
++ endptr);
++ } else if (epoch > ULONG_MAX) {
++ einfo("Environment variable $SOURCE_DATE_EPOCH: value must be
smaller than or equal to: %lu but was found to be: %llu\n",
++ ULONG_MAX, epoch);
++ } else {
++ now = epoch;
++ }
+ }
-+ }
-+ H_PUT_32 (abfd, now, edata_d + 4);
-+ } else
- H_PUT_32 (abfd, pe_data (abfd)->timestamp, edata_d + 4);
-
- if (pe_def_file->version_major != -1)
+ H_PUT_32 (abfd, now, edata_d + 4);
+ }
+ else
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -304,7 +304,7 @@