Re: Firefox crashes all the time on the RaspBerry Pi Zero 2W

From: Mario Marietto <marietto2008_at_gmail.com>
Date: Sun, 13 Apr 2025 13:54:50 UTC
What are the parameters to slow down the compilation so that it does not
give an error because it has exceeded the 500 mb memory buffer limit ? Even
if it took a month, it would not matter, the important thing is that the
compilation does not give errors that force me to start over. Also tell me
what is the parameter that avoids starting over. Thanks.



On Sun, Apr 13, 2025 at 3:46 PM Andrew Haley <aph-open@littlepinkcloud.com>
wrote:

> This is unlikely to be your problem, but here's what the workaround does:
>
> gcc -O2
>
>   -mno-fix-cortex-a53-835769
>
> foo(unsigned int volatile*, unsigned long):
>          sub     sp, sp, #16
>          str     wzr, [sp, 12]
>          ldr     w2, [sp, 12]
>          cmp     x1, x2, sxtw
>          bls     .L4
>          adrp    x5, .LANCHOR0
>          add     x5, x5, :lo12:.LANCHOR0
>          mov     x4, x0
>          mov     w6, 1713
>          mov     x0, 0
> .L3:
>          ldr     w2, [sp, 12]
>          sxtw    x2, w2
>          str     x2, [x5]
>          ldr     w2, [sp, 12]
>          sxtw    x2, w2
>          ldr     w3, [x4, x2, lsl 2]
>          ldr     w2, [sp, 12]
>          add     w2, w2, 1
>          str     w2, [sp, 12]
>          umaddl  x0, w3, w6, x0
>          ldr     w2, [sp, 12]
>          cmp     x1, x2, sxtw
>          bhi     .L3
>          add     sp, sp, 16
>          ret
> .L4:
>          mov     x0, 0
>          add     sp, sp, 16
>          ret
>          .set    .LANCHOR0,. + 0
> p:
>          .zero   8
>
>
>
>
> foo(unsigned int volatile*, unsigned long):
>          sub     sp, sp, #16w6
>          str     wzr, [sp, 12]
>          ldr     w2, [sp, 12]
>          cmp     x1, x2, sxtw
>          bls     .L4
>          adrp    x5, .LANCHOR0
>          add     x5, x5, :lo12:.LANCHOR0
>          mov     x4, x0
>          mov     w6, 1713
>          mov     x0, 0
> .L3:
>          ldr     w2, [sp, 12]
>          sxtw    x2, w2
>          str     x2, [x5]
>          ldr     w2, [sp, 12]
>          sxtw    x2, w2
>          ldr     w3, [x4, x2, lsl 2]
>          ldr     w2, [sp, 12]
>          add     w2, w2, 1
>          str     w2, [sp, 12]
>          nop // between mem op and mult-accumulate
>          umaddl  x0, w3, w6, x0
>          ldr     w2, [sp, 12]
>          cmp     x1, x2, sxtw
>          bhi     .L3
>          add     sp, sp, 16
>          ret
> .L4:
>          mov     x0, 0
>          add     sp, sp, 16
>          ret
>          .set    .LANCHOR0,. + 0
> p:
>          .zero   8
>


-- 
Mario.