benshi001 added a comment.

In D144533#4160297 <https://reviews.llvm.org/D144533#4160297>, @MaskRay wrote:

> This change is an improvement but why is `__DATA_REGION_ORIGIN__` defined?

Because,

1. Different AVR devices have different SRAM address range (start & length), 
and `__DATA_REGION_ORIGIN__` specifies the start address.
2. `__DATA_REGION_ORIGIN__` is a expected symbol by GNU-ld's default AVR linker 
script. Please refer to 
https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=ld/scripttempl/avr.sc;h=9abfc536121cdfad67dfed295d4d879fa3722b1b;hb=d80081ef39c729b0f5f548c9567be2d80dcc2fd0

The benefit

1. User can fully use the SRAM region without concerning about linking, by 
using default values/choices.
2. User can specify his own device's SRAM region by using his own linker 
script, (of course, he should not use `__DATA_REGION_ORIGIN__` in his linker 
script, but this is much better than current `-Tdata`).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144533/new/

https://reviews.llvm.org/D144533

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to