GNU bug report logs - #54152
[PATCH] gnu: dovecot: Fix backtrace test on aarch64.

Previous Next

Package: guix-patches;

Reported by: Pierre Langlois <pierre.langlois <at> gmx.com>

Date: Thu, 24 Feb 2022 23:00:02 UTC

Severity: normal

Tags: patch

Done: Pierre Langlois <pierre.langlois <at> gmx.com>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: dovecot: Fix backtrace test on aarch64.
Date: Thu, 24 Feb 2022 22:53:31 +0000
[Message part 1 (text/plain, inline)]
Hi Guix!

Since the GCC update, dovecot doesn't build on aarch64 because the
test_backtrace() tests fail :-/.  What happens is the backtrace()
function works but only contains addresses and no real symbol names,
which the tests expect.

I was going to propose disabling them, but doing some searching I found
that debian fixed this by using the -rdynamic linker flag [0], and
indeed, looking at GCC's documentation, they suggest using this flag for
symbols to work [1].

I'm not sure why it works OK on other platforms, this flag might be on
by default there. 

OK to push?

[0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=962630
[1]: https://www.gnu.org/software/libc/manual/html_node/Backtraces.html

[signature.asc (application/pgp-signature, inline)]
[0001-gnu-dovecot-Fix-backtrace-test-on-aarch64.patch (text/x-patch, inline)]
From 4a282547821196ba6d5ec494334144b528c6c9cd Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois <at> gmx.com>
Date: Thu, 24 Feb 2022 22:09:45 +0000
Subject: [PATCH] gnu: dovecot: Fix backtrace test on aarch64.

* gnu/packages/mail.scm (dovecot)[arguments]: Add LDFLAGS=-rdynamic to
make-flags.
---
 gnu/packages/mail.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 7a146a8603..8dce9d55b5 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1900,6 +1900,10 @@ (define-public dovecot
                            "--localstatedir=/var"
                            "--with-sqlite"  ; not auto-detected
                            "--with-lucene") ; not auto-detected
+       ;; The -rdynamic linker flag is needed for the backtrace() function to
+       ;; have symbol names rather than just addresses.  Dovecot's tests rely
+       ;; on this, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=962630.
+       #:make-flags (list "LDFLAGS=-rdynamic")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-file-names
--
2.34.0


This bug report was last modified 3 years and 81 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.