[bug#54152] gnu: dovecot: Fix backtrace test on aarch64.
 
Commit Message
  
  
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
  
 
Comments
  
  
Hi,
Pierre Langlois <pierre.langlois@gmx.com> skribis:
> From 4a282547821196ba6d5ec494334144b528c6c9cd Mon Sep 17 00:00:00 2001
> From: Pierre Langlois <pierre.langlois@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.
LGTM, thanks!
Ludo’.
  
 
  
  
Hi,
Ludovic Courtès <ludo@gnu.org> writes:
> Hi,
>
> Pierre Langlois <pierre.langlois@gmx.com> skribis:
>
>> From 4a282547821196ba6d5ec494334144b528c6c9cd Mon Sep 17 00:00:00 2001
>> From: Pierre Langlois <pierre.langlois@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.
>
> LGTM, thanks!
Thanks Ludo'! Pushed with 74130e73c019d7f2bc0700eca04d797d2645ffa4.
Pierre
  
 
  
From 4a282547821196ba6d5ec494334144b528c6c9cd Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@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(+)
@@ -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