This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC] Extension to NOCROSSREFS linker script command


I am putting together some advice for creating applications that will run
over multiple cores.  This is in the sense that you create one application
with multiple entry points for each core. Some code and data is specific
to a core and some is shared. Where code and data is private to a core
then I want to guarantee there are no cross references between cores. I
also want to support some checks on references between core-specific and
shared code/data. These restrictions are required because the memory is
simply not accessible on both cores in some cases.

The NOCROSSREFS command in a linker script can easily identify when there
are references between the core-specific code/data of each core, which is
great.

The case I want to handle for shared code and core-specific code is to
allow references from core specific code to shared code but not in the
reverse direction. (Passing function pointers around can of course still
violate this but some level of automated support would be useful.)

My proposal is relatively simple... A new command to check one direction
only:

NOCROSSREFSTO (<to-section> , <from-section1> , <from-section2> ...)

The implementation of this in LD is pretty trivial. Any thoughts on this
or alternative approaches?

Thanks,
Matthew


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]