Author: Dylan McKay Date: 2020-05-18T02:24:51+12:00 New Revision: ede6005e7092ddae454e4d365d8adefeaec1f5e3
URL: https://github.com/llvm/llvm-project/commit/ede6005e7092ddae454e4d365d8adefeaec1f5e3 DIFF: https://github.com/llvm/llvm-project/commit/ede6005e7092ddae454e4d365d8adefeaec1f5e3.diff LOG: [AVR] Explicitly set the address of the data section when invoking the linker 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. Added: Modified: clang/lib/Driver/ToolChains/AVR.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/AVR.cpp b/clang/lib/Driver/ToolChains/AVR.cpp index 6405db1a11a9..04655d5b1885 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -120,6 +120,13 @@ void AVR::Linker::ConstructJob(Compilation &C, const JobAction &JA, 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. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits