This is required to get avr-gdb correctly showing values at the right
addresses. This problem was discovered by using debug symbols in an
external program to lookup values in an AVR simulator.
Args.AddAllArgs(CmdArgs, options::OPT_L);
getToolChain().AddFilePathLibArgs(Args, CmdArgs);
+ // "Not [sic] that addr must be offset by adding 0x800000 the to
+ // real SRAM address so that the linker knows that the address
+ // is in the SRAM memory space."
+ //
+ // - https://www.nongnu.org/avr-libc/user-manual/mem_sections.html
+ CmdArgs.push_back("-Tdata=0x800100");
+
// If the family name is known, we can link with the device-specific libgcc.
// Without it, libgcc will simply not be linked. This matches avr-gcc
// behavior.