Am 01.12.24 um 05:45 schrieb Maciej W. Rozycki:
On Sat, 30 Nov 2024, Georg-Johann Lay wrote:
The gcc.c-torture/execute/memcpy-a[1248].c tests consumed more time
than the whole rest of the test suite, just to come up with
a "memory full" even at -Os. Skipped thusly.
As a matter of interest, is the timeout/memory exhaustion observed with
host compilation or target execution?
It happens during link, when the linker observes that the memory regions
won't fit:
.../avr/bin/ld: memcpy-a8.elf section `.text' will not fit in region `text'
.../avr/bin/ld: address 0x82c174 of memcpy-a8.elf section `.data' is not
within region `data'
.../avr/bin/ld: address 0x82c17c of memcpy-a8.elf section `.bss' is not
within region `data'
.../avr/bin/ld: region `text' overflowed by 245074 bytes
collect2: error: ld returned 1 exit status
From my observation the optimisation level does not matter much for
compilation times unless you use -O0, reducing the number of passes and
code transformations applied. So whether it's at -O2 or -Os the time
consumed does not change much.
The resulting executables themselves take ~560KiB with a VAX target, the
The AVR device used has a program memory of 128 KiB. Other AVR devices
have less program memory. The simulator assigns 32 KiB of RAM or less.
So both memories are exhausted by quite a margin.
Johann
ultimate CISC machine which also has memory move and memory set hardware
instructions contributing to size reduction, and ~1200KiB with a POWER9
target, a 64-bit RISC machine. I suppose the sizes will lie somewhere in
between for the majority of our targets, and with smaller embedded ones
the executables may not fit in the address space available.
Maciej