* [bug#40362] [PATCH] gnu: cross-base: Add mingw-w64 specific binutils patches.
@ 2020-03-31 22:48 Carl Dong
2020-04-01 14:14 ` Mathieu Othacehe
0 siblings, 1 reply; 6+ messages in thread
From: Carl Dong @ 2020-03-31 22:48 UTC (permalink / raw)
To: 40362
These patches were originally found at the debian mingw-w64 team's
binutils repo, and should improve the reproducibility of our mingw-w64
toolchain.
* gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch:
New file.
* gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch:
New file.
* gnu/packages/cross-base.scm (cross-binutils): Apply relevant patches
if target is mingw-w64.
(package-with-extra-patches): New procedure.
---
gnu/packages/cross-base.scm | 21 ++-
...gw-w64-reproducible-import-libraries.patch | 22 +++
...binutils-mingw-w64-specify-timestamp.patch | 137 ++++++++++++++++++
3 files changed, 175 insertions(+), 5 deletions(-)
create mode 100755 gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch
create mode 100755 gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index ab866eebc6..571a47f72a 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -76,6 +76,12 @@
(source (origin (inherit (package-source original))
(patches (list patch))))))
+(define (package-with-extra-patches original patches)
+ "Return package ORIGINAL with all PATCHES appended to its list of patches."
+ (package-with-patch original
+ `(,@(origin-patches (package-source original))
+ ,@patches))
+
(define (cross-binutils target)
"Return a cross-Binutils for TARGET."
(let ((binutils (package (inherit binutils)
@@ -97,11 +103,16 @@
`(cons "--with-sysroot=/" ,flags)))))))
;; For Xtensa, apply Qualcomm's patch.
- (cross (if (string-prefix? "xtensa-" target)
- (package-with-patch binutils
- (search-patch
- "ath9k-htc-firmware-binutils.patch"))
- binutils)
+ (cross (cond ((string-prefix? "xtensa-" target)
+ (package-with-patch binutils
+ (search-patch
+ "ath9k-htc-firmware-binutils.patch")))
+ ((target-mingw? target)
+ (package-with-extra-patches binutils
+ (search-patches
+ "binutils-mingw-w64-specify-timestamp.patch"
+ "binutils-mingw-w64-reproducible-import-libraries.patch")))
+ (else binutils))
target)))
(define (cross-gcc-arguments target xgcc libc)
diff --git a/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch
new file mode 100755
index 0000000000..3e48b87935
--- /dev/null
+++ b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch
@@ -0,0 +1,22 @@
+This following patch was originally found at the debian mingw-w64 team's
+binutils repo located here:
+https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git
+
+Invoke the following in the aforementioned repo to see the original patch:
+
+ $ git show da63f6b:debian/patches/reproducible-import-libraries.patch
+
+Description: Make DLL import libraries reproducible
+Author: Benjamin Moody <benjamin.moody@gmail.com>
+Bug-Debian: https://bugs.debian.org/915055
+
+--- a/ld/pe-dll.c
++++ b/ld/pe-dll.c
+@@ -2844,6 +2844,7 @@
+
+ bfd_set_format (outarch, bfd_archive);
+ outarch->has_armap = 1;
++ outarch->flags |= BFD_DETERMINISTIC_OUTPUT;
+
+ /* Work out a reasonable size of things to put onto one line. */
+ ar_head = make_head (outarch);
diff --git a/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch
new file mode 100755
index 0000000000..b785043b62
--- /dev/null
+++ b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch
@@ -0,0 +1,137 @@
+This following patch was originally found at the debian mingw-w64 team's
+binutils repo located here:
+https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git
+
+Invoke the following in the aforementioned repo to see the original patch:
+
+ $ git show da63f6b:debian/patches/specify-timestamp.patch
+
+Description: Allow the PE timestamp to be specified
+Author: Stephen Kitt <skitt@debian.org>
+
+--- a/bfd/peXXigen.c
++++ b/bfd/peXXigen.c
+@@ -70,6 +70,9 @@
+ #include <wctype.h>
+ #endif
+
++#include <errno.h>
++#include <limits.h>
++
+ /* 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
+@@ -879,10 +882,38 @@
+
+ /* Use a real timestamp by default, unless the no-insert-timestamp
+ option was chosen. */
+- if ((pe_data (abfd)->insert_timestamp))
+- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
+- else
++ if (pe_data (abfd)->insert_timestamp) {
++ 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;
++ }
++ }
++ H_PUT_32 (abfd, now, filehdr_out->f_timdat);
++ } else {
+ H_PUT_32 (abfd, 0, filehdr_out->f_timdat);
++ }
+
+ PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr,
+ filehdr_out->f_symptr);
+--- a/ld/pe-dll.c
++++ b/ld/pe-dll.c
+@@ -26,6 +26,8 @@
+ #include "filenames.h"
+ #include "safe-ctype.h"
+
++#include <errno.h>
++#include <limits.h>
+ #include <time.h>
+
+ #include "ld.h"
+@@ -1202,8 +1204,36 @@
+
+ memset (edata_d, 0, edata_sz);
+
+- if (pe_data (abfd)->insert_timestamp)
+- H_PUT_32 (abfd, time (0), edata_d + 4);
++ if (pe_data (abfd)->insert_timestamp) {
++ 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;
++ }
++ }
++ H_PUT_32 (abfd, now, edata_d + 4);
++ }
+
+ if (pe_def_file->version_major != -1)
+ {
+--- a/ld/emultempl/pe.em
++++ b/ld/emultempl/pe.em
+@@ -303,7 +303,7 @@
+ OPTION_USE_NUL_PREFIXED_IMPORT_TABLES},
+ {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE},
+ {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE},
+- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP},
++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP},
+ {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP},
+ #ifdef DLL_SUPPORT
+ /* getopt allows abbreviations, so we do this to stop it
+--- a/ld/emultempl/pep.em
++++ b/ld/emultempl/pep.em
+@@ -321,7 +321,7 @@
+ {"no-bind", no_argument, NULL, OPTION_NO_BIND},
+ {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER},
+ {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE},
+- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP},
++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP},
+ {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP},
+ {"build-id", optional_argument, NULL, OPTION_BUILD_ID},
+ {NULL, no_argument, NULL, 0}
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#40362] [PATCH] gnu: cross-base: Add mingw-w64 specific binutils patches.
2020-03-31 22:48 [bug#40362] [PATCH] gnu: cross-base: Add mingw-w64 specific binutils patches Carl Dong
@ 2020-04-01 14:14 ` Mathieu Othacehe
2020-04-01 19:54 ` Carl Dong
0 siblings, 1 reply; 6+ messages in thread
From: Mathieu Othacehe @ 2020-04-01 14:14 UTC (permalink / raw)
To: Carl Dong; +Cc: 40362
Hello Carl!
> * gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch:
> New file.
> * gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch:
> New file.
You also need to add those patches to gnu/local.mk.
> +(define (package-with-extra-patches original patches)
> + "Return package ORIGINAL with all PATCHES appended to its list of patches."
> + (package-with-patch original
> + `(,@(origin-patches (package-source original))
> + ,@patches))
Nitpick, maybe we could just name it package-with-patches?
> + (package-with-extra-patches binutils
> + (search-patches
> + "binutils-mingw-w64-specify-timestamp.patch"
> + "binutils-mingw-w64-reproducible-import-libraries.patch")))
This is over the 78 column limit.
Otherwise, seems fine!
Thanks,
Mathieu
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#40362] [PATCH] gnu: cross-base: Add mingw-w64 specific binutils patches.
2020-04-01 14:14 ` Mathieu Othacehe
@ 2020-04-01 19:54 ` Carl Dong
2020-04-02 9:45 ` Mathieu Othacehe
0 siblings, 1 reply; 6+ messages in thread
From: Carl Dong @ 2020-04-01 19:54 UTC (permalink / raw)
To: Mathieu Othacehe; +Cc: 40362@debbugs.gnu.org
Hey Mathieu!
> > - gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch:
> > New file.
> > - gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch:
> > New file.
>
> You also need to add those patches to gnu/local.mk.
Added!
> > +(define (package-with-extra-patches original patches)
> > - "Return package ORIGINAL with all PATCHES appended to its list of patches."
> > - (package-with-patch original
> > - `(,@(origin-patches (package-source original))
> > - ,@patches))
>
> Nitpick, maybe we could just name it package-with-patches?
I named it this way to make it clear that PACKAGE-WITH-PATCH overrides the
patches, whereas PACKAGE-WITH-EXTRA-PATCHES appends the patches (just like
PACKAGE-WITH-EXTRA-CONFIGURE-VARIABLE)... In fact, I'm not sure that Ludovic
originally intended PACKAGE-WITH-PATCH to override rather than append?
> > - (package-with-extra-patches binutils
> > - (search-patches
> > - "binutils-mingw-w64-specify-timestamp.patch"
> > - "binutils-mingw-w64-reproducible-import-libraries.patch")))
>
> This is over the 78 column limit.
See the updated patch below, is this the right solution?
Many thanks for the review!
Cheers,
Carl Dong
accounts@carldong.me
"I fight for the users"
From c2d53e94eef8bc0b6750e1c1218335cd1461f1be Mon Sep 17 00:00:00 2001
From: Carl Dong <contact@carldong.me>
Date: Tue, 24 Mar 2020 15:39:06 -0400
Subject: [PATCH v2] gnu: cross-base: Add mingw-w64 specific binutils patches.
These patches were originally found at the debian mingw-w64 team's
binutils repo, and should improve the reproducibility of our mingw-w64
toolchain.
* gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch:
New file.
* gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Update accordingly.
* gnu/packages/cross-base.scm (cross-binutils): Apply relevant patches
if target is mingw-w64.
(package-with-extra-patches): New procedure.
---
gnu/local.mk | 2 +
gnu/packages/cross-base.scm | 23 ++-
...gw-w64-reproducible-import-libraries.patch | 22 +++
...binutils-mingw-w64-specify-timestamp.patch | 137 ++++++++++++++++++
4 files changed, 179 insertions(+), 5 deletions(-)
create mode 100755 gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch
create mode 100755 gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 19ab32c0f5..fe685c4e1b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -768,6 +768,8 @@ dist_patch_DATA = \
%D%/packages/patches/bidiv-update-fribidi.patch \
%D%/packages/patches/binutils-boot-2.20.1a.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
+ %D%/packages/patches/binutils-mingw-w64-specify-timestamp.patch \
+ %D%/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
%D%/packages/patches/bluez-CVE-2020-0556.patch \
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index ab866eebc6..858ee743ed 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -76,6 +76,12 @@
(source (origin (inherit (package-source original))
(patches (list patch))))))
+(define (package-with-extra-patches original patches)
+ "Return package ORIGINAL with all PATCHES appended to its list of patches."
+ (package-with-patch original
+ `(,@(origin-patches (package-source original))
+ ,@patches))
+
(define (cross-binutils target)
"Return a cross-Binutils for TARGET."
(let ((binutils (package (inherit binutils)
@@ -97,11 +103,18 @@
`(cons "--with-sysroot=/" ,flags)))))))
;; For Xtensa, apply Qualcomm's patch.
- (cross (if (string-prefix? "xtensa-" target)
- (package-with-patch binutils
- (search-patch
- "ath9k-htc-firmware-binutils.patch"))
- binutils)
+ (cross (cond ((string-prefix? "xtensa-" target)
+ (package-with-patch binutils
+ (search-patch
+ "ath9k-htc-firmware-binutils.patch")))
+ ((target-mingw? target)
+ (package-with-extra-patches binutils
+ (search-patches
+ "binutils-mingw-w64-specify-tim\
+estamp.patch"
+ "binutils-mingw-w64-reproducibl\
+e-import-libraries.patch")))
+ (else binutils))
target)))
(define (cross-gcc-arguments target xgcc libc)
diff --git a/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch
new file mode 100755
index 0000000000..3e48b87935
--- /dev/null
+++ b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch
@@ -0,0 +1,22 @@
+This following patch was originally found at the debian mingw-w64 team's
+binutils repo located here:
+https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git
+
+Invoke the following in the aforementioned repo to see the original patch:
+
+ $ git show da63f6b:debian/patches/reproducible-import-libraries.patch
+
+Description: Make DLL import libraries reproducible
+Author: Benjamin Moody <benjamin.moody@gmail.com>
+Bug-Debian: https://bugs.debian.org/915055
+
+--- a/ld/pe-dll.c
++++ b/ld/pe-dll.c
+@@ -2844,6 +2844,7 @@
+
+ bfd_set_format (outarch, bfd_archive);
+ outarch->has_armap = 1;
++ outarch->flags |= BFD_DETERMINISTIC_OUTPUT;
+
+ /* Work out a reasonable size of things to put onto one line. */
+ ar_head = make_head (outarch);
diff --git a/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch
new file mode 100755
index 0000000000..b785043b62
--- /dev/null
+++ b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch
@@ -0,0 +1,137 @@
+This following patch was originally found at the debian mingw-w64 team's
+binutils repo located here:
+https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git
+
+Invoke the following in the aforementioned repo to see the original patch:
+
+ $ git show da63f6b:debian/patches/specify-timestamp.patch
+
+Description: Allow the PE timestamp to be specified
+Author: Stephen Kitt <skitt@debian.org>
+
+--- a/bfd/peXXigen.c
++++ b/bfd/peXXigen.c
+@@ -70,6 +70,9 @@
+ #include <wctype.h>
+ #endif
+
++#include <errno.h>
++#include <limits.h>
++
+ /* 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
+@@ -879,10 +882,38 @@
+
+ /* Use a real timestamp by default, unless the no-insert-timestamp
+ option was chosen. */
+- if ((pe_data (abfd)->insert_timestamp))
+- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
+- else
++ if (pe_data (abfd)->insert_timestamp) {
++ 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;
++ }
++ }
++ H_PUT_32 (abfd, now, filehdr_out->f_timdat);
++ } else {
+ H_PUT_32 (abfd, 0, filehdr_out->f_timdat);
++ }
+
+ PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr,
+ filehdr_out->f_symptr);
+--- a/ld/pe-dll.c
++++ b/ld/pe-dll.c
+@@ -26,6 +26,8 @@
+ #include "filenames.h"
+ #include "safe-ctype.h"
+
++#include <errno.h>
++#include <limits.h>
+ #include <time.h>
+
+ #include "ld.h"
+@@ -1202,8 +1204,36 @@
+
+ memset (edata_d, 0, edata_sz);
+
+- if (pe_data (abfd)->insert_timestamp)
+- H_PUT_32 (abfd, time (0), edata_d + 4);
++ if (pe_data (abfd)->insert_timestamp) {
++ 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;
++ }
++ }
++ H_PUT_32 (abfd, now, edata_d + 4);
++ }
+
+ if (pe_def_file->version_major != -1)
+ {
+--- a/ld/emultempl/pe.em
++++ b/ld/emultempl/pe.em
+@@ -303,7 +303,7 @@
+ OPTION_USE_NUL_PREFIXED_IMPORT_TABLES},
+ {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE},
+ {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE},
+- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP},
++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP},
+ {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP},
+ #ifdef DLL_SUPPORT
+ /* getopt allows abbreviations, so we do this to stop it
+--- a/ld/emultempl/pep.em
++++ b/ld/emultempl/pep.em
+@@ -321,7 +321,7 @@
+ {"no-bind", no_argument, NULL, OPTION_NO_BIND},
+ {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER},
+ {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE},
+- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP},
++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP},
+ {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP},
+ {"build-id", optional_argument, NULL, OPTION_BUILD_ID},
+ {NULL, no_argument, NULL, 0}
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#40362] [PATCH] gnu: cross-base: Add mingw-w64 specific binutils patches.
2020-04-01 19:54 ` Carl Dong
@ 2020-04-02 9:45 ` Mathieu Othacehe
2020-04-02 15:53 ` Marius Bakke
0 siblings, 1 reply; 6+ messages in thread
From: Mathieu Othacehe @ 2020-04-02 9:45 UTC (permalink / raw)
To: Carl Dong; +Cc: 40362@debbugs.gnu.org
Hey,
> I named it this way to make it clear that PACKAGE-WITH-PATCH overrides the
> patches, whereas PACKAGE-WITH-EXTRA-PATCHES appends the patches (just like
> PACKAGE-WITH-EXTRA-CONFIGURE-VARIABLE)... In fact, I'm not sure that Ludovic
> originally intended PACKAGE-WITH-PATCH to override rather than append?
Well I'm also unsure, but yes it makes sense to name it this way then!
> See the updated patch below, is this the right solution?
In general, its preferred to send one of the procedure call to the next
line and let Emacs indent everything. Like this:
--8<---------------cut here---------------start------------->8---
(cross (cond ((string-prefix? "xtensa-" target)
(package-with-patch binutils
(search-patch
"ath9k-htc-firmware-binutils.patch")))
((target-mingw? target)
(package-with-extra-patches
binutils
(search-patches
"binutils-mingw-w64-specify-timestamp.patch"
"binutils-mingw-w64-reproducible-import-libraries.patch")))
(else binutils))
target)))
--8<---------------cut here---------------end--------------->8---
This patch will trigger a rebuild of all cross-compiled packages, so it
would be better to send it to core-updates maybe? And as core-updates
has been frozen a few days ago, you may need to wait for
core-updates-next to open.
Thanks,
Mathieu
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#40362] [PATCH] gnu: cross-base: Add mingw-w64 specific binutils patches.
2020-04-02 9:45 ` Mathieu Othacehe
@ 2020-04-02 15:53 ` Marius Bakke
2020-04-02 16:12 ` Mathieu Othacehe
0 siblings, 1 reply; 6+ messages in thread
From: Marius Bakke @ 2020-04-02 15:53 UTC (permalink / raw)
To: Mathieu Othacehe, Carl Dong; +Cc: 40362@debbugs.gnu.org
[-- Attachment #1: Type: text/plain, Size: 616 bytes --]
Mathieu Othacehe <m.othacehe@gmail.com> writes:
> This patch will trigger a rebuild of all cross-compiled packages, so it
> would be better to send it to core-updates maybe? And as core-updates
> has been frozen a few days ago, you may need to wait for
> core-updates-next to open.
We traditionally only cared about native builds for the rebuild limit as
the CI only cross-compiles a handful of packages. So 'master' is
probably fine.
Perhaps that will change now that people can cross-compile full system
configurations. What is your opinion Mathieu, as a major stakeholder in
the cross-compilation camp? :-)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#40362] [PATCH] gnu: cross-base: Add mingw-w64 specific binutils patches.
2020-04-02 15:53 ` Marius Bakke
@ 2020-04-02 16:12 ` Mathieu Othacehe
0 siblings, 0 replies; 6+ messages in thread
From: Mathieu Othacehe @ 2020-04-02 16:12 UTC (permalink / raw)
To: Marius Bakke; +Cc: Carl Dong, 40362@debbugs.gnu.org
> Perhaps that will change now that people can cross-compile full system
> configurations. What is your opinion Mathieu, as a major stakeholder in
> the cross-compilation camp? :-)
Hehe, for now that is fine with me :) I guess you can then push to
master Carl.
Thanks,
Mathieu
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-04-02 16:13 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-31 22:48 [bug#40362] [PATCH] gnu: cross-base: Add mingw-w64 specific binutils patches Carl Dong
2020-04-01 14:14 ` Mathieu Othacehe
2020-04-01 19:54 ` Carl Dong
2020-04-02 9:45 ` Mathieu Othacehe
2020-04-02 15:53 ` Marius Bakke
2020-04-02 16:12 ` Mathieu Othacehe
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).