diff mbox series

[bug#53706] gnu: Disable compressed debug sections for mingw-w64

Message ID 20220201182202.2300335-1-contact@carldong.me
State Accepted
Headers show
Series [bug#53706] gnu: Disable compressed debug sections for mingw-w64 | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Carl Dong Feb. 1, 2022, 6:22 p.m. UTC
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.
---
 gnu/packages/cross-base.scm | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Comments

Carl Dong Feb. 3, 2022, 6:51 p.m. UTC | #1
Just for some extra context, this commit should not trigger mass rebuilds. I’m happy to commit it myself, but would someone to give me a quick sanity check before doing so!

Related: https://issues.guix.gnu.org/53426 <https://issues.guix.gnu.org/53426>

Cheers,
Carl Dong
Maxim Cournoyer Feb. 6, 2022, 4:59 a.m. UTC | #2
Hi Carl,

Carl Dong <contact@carldong.me> writes:

> Just for some extra context, this commit should not trigger mass
> rebuilds. I’m happy to commit it myself, but would someone to give me
> a quick sanity check before doing so!
>
> Related: https://issues.guix.gnu.org/53426 <https://issues.guix.gnu.org/53426>

I just had a quick look, and it LGTM.

Thanks,

Maxim
Carl Dong Feb. 7, 2022, 9:40 p.m. UTC | #3
In master as of 2d78b27711d44f39fabf170d044b45247af7babe
diff mbox series

Patch

diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 78cbf871ac..529144d127 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -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))