gnu: Disable compressed debug sections for mingw-w64

The newly introduced --enable-compressed-debug-section=all configure
flag in the base binutils package makes the mingw-w64 build system
unusable. For example:

    $ guix build --target=x86_64-w64-mingw32 hello

        and

    $ guix build mingw-w64-x86_64-winpthreads

Will fail to build with an error:

    "x86_64-w64-mingw32-ld: final link failed: bad value"

Turning off this flag seems to fix the problem, but perhaps it'd also be
worthwhile to investigate the root cause.

* gnu/packages/cross-base.scm (cross-binutils): When building for mingw
  targets, append "--enable-compressed-debug-section=no" to configure
  flags.
This commit is contained in:
Carl Dong 2022-02-01 12:33:16 -05:00
parent e5c06dce93
commit 2d78b27711
No known key found for this signature in database
GPG key ID: 0CC52153197991A5

View file

@ -101,7 +101,16 @@ (define* (cross-binutils target #:optional (binutils binutils))
"ath9k-htc-firmware-binutils.patch")))
((target-mingw? target)
(package-with-extra-patches
binutils
(package-with-extra-configure-variable
;; mingw binutils does not work correctly when configured
;; with `--enable-compressed-debug-sections`. An error
;; like the following will occur whenever you try to link:
;;
;; x86_64-w64-mingw32-ld: final link failed: bad value
;;
;; TODO: This seems like a deeper problem that warrants
;; deeper investigation.
binutils "--enable-compressed-debug-sections" "no")
(search-patches "binutils-mingw-w64-timestamp.patch"
"binutils-mingw-w64-deterministic.patch")))
(else binutils))