janneke pushed a commit to branch core-packages-team
in repository guix.

commit 462780a840650b9734e1e0046de5bc0e8c84320c
Author: Zheng Junjie <z572@z572.online>
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 <zhengjun...@iscas.ac.cn>
+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  <zhengjun...@iscas.ac.cn>
+       * 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 <sk...@debian.org>
 
 --- 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 <sk...@debian.org>
  /* 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 <sk...@debian.org>
  #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 @@

Reply via email to