From 79825bee07fceb781efc40a8c56a85aac13bba5a Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Tue, 24 Mar 2020 15:39:06 -0400 Subject: 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/packages/cross-base.scm | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'gnu/packages/cross-base.scm') diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index ab866eebc6..945ef12088 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,17 @@ `(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) -- cgit v1.2.3