GNU bug report logs - #40556
[PATCH] gnu: dovecot: Add libunwind input.

Previous Next

Package: guix-patches;

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

Date: Sat, 11 Apr 2020 15:44:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 40556 in the body.
You can then email your comments to 40556 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#40556; Package guix-patches. (Sat, 11 Apr 2020 15:44:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Pierre Langlois <pierre.langlois <at> gmx.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 11 Apr 2020 15:44:02 GMT) Full text and rfc822 format available.

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
Cc: Julien Lepiller <julien <at> lepiller.eu>
Subject: [PATCH] gnu: dovecot: Add libunwind input.
Date: Sat, 11 Apr 2020 17:42:50 +0200
[Message part 1 (text/plain, inline)]
Hi Guix, Julien,

I noticed I couldn't build dovecot on either aarch64 or arm :-/. I did a
little bit of debugging, and it looks like the backtrace_symbols()
function isn't working correctly. Dovecot is able to use libunwind
instead, and this appears to work.

I then noticed it was reported upstream already, coming to the same
conclusion https://markmail.org/message/fjgo7lkuk7tk4iek

I wonder what's wrong with backtrace_symbols() in guix, I'm not sure how
to investigate that. For now though, what do you think of using
libunwind?

Thanks,
Pierre

[0001-gnu-dovecot-Add-libunwind-input.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#40556; Package guix-patches. (Sat, 11 Apr 2020 16:18:01 GMT) Full text and rfc822 format available.

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

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: 40556 <at> debbugs.gnu.org, Pierre Langlois <pierre.langlois <at> gmx.com>
Subject: Re: [bug#40556] [PATCH] gnu: dovecot: Add libunwind input.
Date: Sat, 11 Apr 2020 18:17:09 +0200
[Message part 1 (text/plain, inline)]
Pierre,

Pierre Langlois 写道:
> I wonder what's wrong with backtrace_symbols() in guix, I'm not 
> sure how
> to investigate that. For now though, what do you think of using
> libunwind?

OK, but it should only be included on platforms that require it:

 ;; Untested…
 (inputs
  `(…
    ,@(match (%current-system)
        ((or "aarch64-linux" "armhf-linux" …)
         `(("libunwind" ,libunwind)))
        (_ `()))
    …))

Could you test that?

Kind regards,

T G-R
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#40556; Package guix-patches. (Sat, 11 Apr 2020 16:54:02 GMT) Full text and rfc822 format available.

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

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>
Cc: Pierre Langlois <pierre.langlois <at> gmx.com>, 40556 <at> debbugs.gnu.org
Subject: Re: [bug#40556] [PATCH] gnu: dovecot: Add libunwind input.
Date: Sat, 11 Apr 2020 18:53:29 +0200
[Message part 1 (text/plain, inline)]
Tobias Geerinckx-Rice writes:

> Pierre,
>
> Pierre Langlois 写道:
>> I wonder what's wrong with backtrace_symbols() in guix, I'm not sure
>> how
>> to investigate that. For now though, what do you think of using
>> libunwind?
>
> OK, but it should only be included on platforms that require it:

Oh sure thing!

>
>  ;; Untested…
>  (inputs
>   `(…
>     ,@(match (%current-system)
>         ((or "aarch64-linux" "armhf-linux" …)
>          `(("libunwind" ,libunwind)))
>         (_ `()))
>     …))
>
> Could you test that?

OK, the following patch works for me (tested building for armhf and
aarch64 on a rockpro64). I've also added a "FIXME" comment to mention
the issue so we can remove/keep it when we have a good understanding of
what's going on.

[0001-gnu-dovecot-Add-libunwind-input-for-arm.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
Thanks,
Pierre

Information forwarded to guix-patches <at> gnu.org:
bug#40556; Package guix-patches. (Sat, 11 Apr 2020 17:58:01 GMT) Full text and rfc822 format available.

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

From: Julien Lepiller <julien <at> lepiller.eu>
To: Pierre Langlois <pierre.langlois <at> gmx.com>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>
Cc: 40556 <at> debbugs.gnu.org
Subject: Re: [bug#40556] [PATCH] gnu: dovecot: Add libunwind input.
Date: Sat, 11 Apr 2020 13:56:42 -0400
Le 11 avril 2020 12:53:29 GMT-04:00, Pierre Langlois <pierre.langlois <at> gmx.com> a écrit :
>
>Tobias Geerinckx-Rice writes:
>
>> Pierre,
>>
>> Pierre Langlois 写道:
>>> I wonder what's wrong with backtrace_symbols() in guix, I'm not sure
>>> how
>>> to investigate that. For now though, what do you think of using
>>> libunwind?
>>
>> OK, but it should only be included on platforms that require it:
>
>Oh sure thing!
>
>>
>>  ;; Untested…
>>  (inputs
>>   `(…
>>     ,@(match (%current-system)
>>         ((or "aarch64-linux" "armhf-linux" …)
>>          `(("libunwind" ,libunwind)))
>>         (_ `()))
>>     …))
>>
>> Could you test that?
>
>OK, the following patch works for me (tested building for armhf and
>aarch64 on a rockpro64). I've also added a "FIXME" comment to mention
>the issue so we can remove/keep it when we have a good understanding of
>what's going on.

Great, thanks for working on it, I had totally forgotten about it, because I fixed it in my systems by not running tests. There's also a bug report I sent to bug-guix I think. Adding libunwind should work. I remember testing it once, but it was just too long and I forgot about it ^^"




Information forwarded to guix-patches <at> gnu.org:
bug#40556; Package guix-patches. (Thu, 16 Apr 2020 16:26:01 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Pierre Langlois <pierre.langlois <at> gmx.com>
Cc: Tobias Geerinckx-Rice <me <at> tobias.gr>, 40556 <at> debbugs.gnu.org
Subject: Re: [bug#40556] [PATCH] gnu: dovecot: Add libunwind input.
Date: Thu, 16 Apr 2020 18:24:56 +0200
Hi,

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

> +       ;; FIXME: The 'test-backtrace' tests fail on arm when using glibc's
> +       ;; backtrace_symbol() function so fallback to using libunwind.
> +       ,@(match (or (%current-target-system) (%current-system))
> +           ((or "aarch64-linux" "armhf-linux")
> +            `(("libunwind" ,libunwind)))
> +           (_ '()))

This isn’t quite correct because ‘%current-target-system’ returns a
triplet, like “arm-linux-gnueabihf”.

Use ‘target-arm?’ instead.

TIA!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#40556; Package guix-patches. (Thu, 16 Apr 2020 17:14:02 GMT) Full text and rfc822 format available.

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

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Pierre Langlois <pierre.langlois <at> gmx.com>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>, 40556 <at> debbugs.gnu.org
Subject: Re: [bug#40556] [PATCH] gnu: dovecot: Add libunwind input.
Date: Thu, 16 Apr 2020 19:13:21 +0200
[Message part 1 (text/plain, inline)]
Hi Ludo!

Ludovic Courtès writes:

> Hi,
>
> Pierre Langlois <pierre.langlois <at> gmx.com> skribis:
>
>> +       ;; FIXME: The 'test-backtrace' tests fail on arm when using glibc's
>> +       ;; backtrace_symbol() function so fallback to using libunwind.
>> +       ,@(match (or (%current-target-system) (%current-system))
>> +           ((or "aarch64-linux" "armhf-linux")
>> +            `(("libunwind" ,libunwind)))
>> +           (_ '()))
>
> This isn’t quite correct because ‘%current-target-system’ returns a
> triplet, like “arm-linux-gnueabihf”.

Oups, I didn't realize the cross-compilation target was different.

>
> Use ‘target-arm?’ instead.

Yep, that works really nicely, it's much clearer.

I've tested on x86_64, arm and aarch64 natively. I'll try
cross-compiling with --target=arm-linux-gnueabihf and
--target=aarch64-linux-gnu as well but that'll take a little longer.

Thanks!
Pierre

[0001-gnu-dovecot-Add-libunwind-input-for-arm.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#40556; Package guix-patches. (Thu, 16 Apr 2020 17:42:02 GMT) Full text and rfc822 format available.

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

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: Pierre Langlois <pierre.langlois <at> gmx.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>, 40556 <at> debbugs.gnu.org
Subject: Re: [bug#40556] [PATCH] gnu: dovecot: Add libunwind input.
Date: Thu, 16 Apr 2020 19:41:50 +0200
Pierre Langlois writes:

> Hi Ludo!
>
> Ludovic Courtès writes:
>
>> Hi,
>>
>> Pierre Langlois <pierre.langlois <at> gmx.com> skribis:
>>
>>> +       ;; FIXME: The 'test-backtrace' tests fail on arm when using glibc's
>>> +       ;; backtrace_symbol() function so fallback to using libunwind.
>>> +       ,@(match (or (%current-target-system) (%current-system))
>>> +           ((or "aarch64-linux" "armhf-linux")
>>> +            `(("libunwind" ,libunwind)))
>>> +           (_ '()))
>>
>> This isn’t quite correct because ‘%current-target-system’ returns a
>> triplet, like “arm-linux-gnueabihf”.
>
> Oups, I didn't realize the cross-compilation target was different.
>
>>
>> Use ‘target-arm?’ instead.
>
> Yep, that works really nicely, it's much clearer.
>
> I've tested on x86_64, arm and aarch64 natively. I'll try
> cross-compiling with --target=arm-linux-gnueabihf and
> --target=aarch64-linux-gnu as well but that'll take a little longer.

Right, it seems dovecot isn't yet cross-compilable, but cross-compiling
libunwind works just fine. With dovecot I get a failure trying to
compile perl natively, as openssl's native-input I believe.

```
$ ./pre-inst-env guix build --target=aarch64-linux-gnu openssl
...
phase `install' succeeded after 21.6 seconds
starting phase `remove-extra-references'
Backtrace:
          14 (primitive-load "/gnu/store/p51mz7mawiixjly3579bfyfv4hx…")
In ice-9/eval.scm:
   191:35 13 (_ _)
In ice-9/boot-9.scm:
    829:9 12 (catch _ _ #<procedure 7ffff3bba518 at /gnu/store/w3jl…> …)
In srfi/srfi-1.scm:
   863:16 11 (every1 #<procedure 7ffff2d50cc0 at /gnu/store/w3jlc8p…> …)
In /gnu/store/w3jlc8pk8416m7h677r5vq92b66h8cqd-module-import/guix/build/gnu-build-system.scm:
   839:30 10 (_ _)
In ice-9/eval.scm:
    619:8  9 (_ #(#(#(#(#(#(#<directory (guile-user)…>) …) …) …) …) …))
In ice-9/boot-9.scm:
    841:4  8 (with-throw-handler _ _ _)
In ice-9/ports.scm:
   445:17  7 (call-with-input-file _ _ #:binary _ #:encoding _ # _)
In /gnu/store/w3jlc8pk8416m7h677r5vq92b66h8cqd-module-import/guix/build/utils.scm:
   739:26  6 (_ _)
   765:26  5 (_ #<input: /gnu/store/kbsn60lnf6vyim3b511qvnadlldmjv1…> …)
In srfi/srfi-1.scm:
   466:18  4 (fold #<procedure 7ffff3b98790 at /gnu/store/w3jlc8pk8…> …)
In ice-9/eval.scm:
   202:51  3 (_ #(#(#(#(#(#(#<directory (guile-user)…> …)) …) …) …) …))
    163:9  2 (_ #(#(#(#(#(#(#<directory (guile-user)…> …)) …) …) …) …))
In unknown file:
           1 (string-append "incpth='" #f "/include'\n")
In ice-9/boot-9.scm:
   752:25  0 (dispatch-exception _ _ _)

ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
In procedure string-append: Wrong type (expecting string): #f
builder for `/gnu/store/50wrwqkvryprlghiqnx3aq8w7ss8mak6-perl-5.30.0.drv' failed with exit code 1
build of /gnu/store/50wrwqkvryprlghiqnx3aq8w7ss8mak6-perl-5.30.0.drv failed
View build log at '/var/log/guix/drvs/50/wrwqkvryprlghiqnx3aq8w7ss8mak6-perl-5.30.0.drv.bz2'.
guix build: error: build of `/gnu/store/50wrwqkvryprlghiqnx3aq8w7ss8mak6-perl-5.30.0.drv' failed
```

But, I think perl has been fixed on core-updates, so we should be good
for this!

Thanks,
Pierre





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Fri, 17 Apr 2020 08:21:02 GMT) Full text and rfc822 format available.

Notification sent to Pierre Langlois <pierre.langlois <at> gmx.com>:
bug acknowledged by developer. (Fri, 17 Apr 2020 08:21:02 GMT) Full text and rfc822 format available.

Message #28 received at 40556-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Pierre Langlois <pierre.langlois <at> gmx.com>
Cc: Tobias Geerinckx-Rice <me <at> tobias.gr>, 40556-done <at> debbugs.gnu.org
Subject: Re: [bug#40556] [PATCH] gnu: dovecot: Add libunwind input.
Date: Fri, 17 Apr 2020 10:20:34 +0200
Hi Pierre,

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

> Right, it seems dovecot isn't yet cross-compilable, but cross-compiling
> libunwind works just fine. With dovecot I get a failure trying to
> compile perl natively, as openssl's native-input I believe.

Not your fault, and it’s fixed on core-updates as you write.

I’ve applied the patch, thank you!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 15 May 2020 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 37 days ago.

Previous Next


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