[LLVMdev] LLD improvement plan
Sean Silva
chisophugis at gmail.com
Wed May 6 13:10:26 PDT 2015
On Wed, May 6, 2015 at 12:51 AM, Will Newton <will.newton at gmail.com> wrote:
> On Wed, May 6, 2015 at 6:22 AM, Chris Lattner <clattner at apple.com> wrote:
> > On May 5, 2015, at 6:47 PM, Daniel Dilts <diltsman at gmail.com> wrote:
> >
> > Take a look at how debuggers have migrated through the years. They too
> >>
> >> used to have their own script format. Now most (all?) popular debuggers
> >> do scripting through embedding an actual programming language. This
> >> could be a better way forward for linkers as well -- embed Python in the
> >> linker, define a Python API for linkable item placement, entry point,
> >> symbol operations, etc..., and then you also have the rest of Python at
> >> your fingertips.
> >
> >
> > I mostly care about specifying address where specific symbols will be
> placed
> > and specifying the memory layout of the platform. I normally use
> > __attribute__((section(""))) to place the symbols in their own sections
> and
> > then use the linker script to place the sections at the required
> addresses.
> > How would this be accomplished without linker scripts?
> >
> >
> > I’d prefer to use an "__attribute__((address(0x1234)))” myself. That way
> > you can control platform specifics with #ifdefs.
>
> But that way you have to do layout by hand in C. Generally you won't
> know the size of the preceding code or data so you won't know what
> address to put things at at the granularity of a single C level
> object/function. Better to say "put this in the ROM section" and set
> the address of the ROM section once in a linker script and let the
> linker do the layout.
>
Chris is referring to memory-mapped registers that are literally at a fixed
address in the hardware. These sorts of attributes already exist, e.g.
https://gcc.gnu.org/onlinedocs/gcc/AVR-Variable-Attributes.html#AVR-Variable-Attributes
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150506/ab8befd2/attachment.html>
More information about the llvm-dev
mailing list