Subject: Re: bug#40737: Segfault in arm gcc7, thumb2 builroot, with arm patch

From: Ludovic Courtès <[email-masked]>
Date: Sat, 20 Jun 2020 16:37:59 +0200

Hi,

Ludovic Courtès <[email-masked]> skribis:

> Andrew Gierth <[email-masked]> skribis:
>
>> diff --git a/libguile/lightening/lightening/arm-cpu.c b/libguile/lightening/lightening/arm-cpu.c
>> index 4445266af..2b4eecc29 100644
>> --- a/libguile/lightening/lightening/arm-cpu.c
>> +++ b/libguile/lightening/lightening/arm-cpu.c
>> @@ -230,7 +230,7 @@ encode_thumb_immediate(unsigned int v)
>>      return ((v & 0xff) | (1 << 12));
>>    /* abcdefgh 00000000 abcdefgh 00000000 */
>>    if (((v & 0xffff0000) >> 16) == (v & 0xffff) && (v & 0xff) == 0)
>> -    return ((v & 0x000000ff) | (2 << 12));
>> +    return (((v & 0x0000ff00) >> 8) | (2 << 12));
>>    /* abcdefgh abcdefgh abcdefgh abcdefgh */
>>    if ( (v &    0xff)        == ((v &     0xff00) >>  8) &&
>>         ((v &   0xff00) >> 8) == ((v &   0xff0000) >> 16) &&
>
> I pushed this fix to the lightening repo on your behalf:
>
>   https://gitlab.com/wingo/lightening/-/commit/1bb909a44d2303f88bb05125fc6742e97f80cd1d
>
> The CI jobs pass:
>
>   https://gitlab.com/wingo/lightening/-/pipelines/158337465
>
> I’ll try merging it into Guile, but do you have a test that reproduces
> the original bug, either at the Guile level or in C using the lightening
> API?  Perhaps the test that Dale posted yesterday at
> <https://paste.debian.net/1152897/>?

Replying to myself after our discussion on IRC: I’ve merged the test you
provided, Dale (with the addition of enter/leave_jit_abi), and pushed.

  https://gitlab.com/wingo/lightening/-/commit/24ef197b1269f8371b1f4a412caa6d2b99d66839

I’ll look into merging into Guile later today, and then I guess we can
close this bug.

Thank you!

Ludo’.