[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