This is the mail archive of the ecos-patches@sourceware.org mailing list for the eCos 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]

[Bug 1001142] User defined linker sections.


Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001142

--- Comment #20 from Ilija Kocho <ilijak@siva.com.mk> 2011-02-15 09:50:42 GMT ---
(In reply to comment #18)
> (In reply to comment #16 and comment #17)
> 
> Ilija, thank you for clarifications and snippets. I get it. However I
> would rename the undescored macros (__CYG_USER_SECTION_*), e.g.
> 
> #define CYG_LINK_SECTION_START(_name_) __ ## _name_ ## _start
> #define CYG_LINK_SECTION_END(_name_) __ ## _name_ ## _end
> 
> Variants of prefixes to discuss CYG_LINK, CYG_LOAD, and CYG_LD. That
> will mean, - Use them in a linker scripts.
> 
> #define CYG_USER_SECTION_START(_name_) CYG_LINK_SECTION_START(_name_)
> #define CYG_USER_SECTION_END(_name_) CYG_LINK_SECTION_END(_name_)
> 
> The USER means, - Use in a userspace code.

I'm not quite convinced about this notation, I consider USER_SECTION a stem for
all related macro names. I decided to prefix concatenation with __ because they
are supposed to be kind of "hidden", but it may be just my view.

However if some of "linker" variants is opted I would prefer LD as this acronym
is associated with linker staff through the code (target.ld, mlt*.ldi, etc).

> 
> About duplication the declarations. As target.ld scripts ends with
> 
> #include <pkgconf/hal_arch.h>
> #include CYGHWR_MEMORY_LAYOUT_LDI
> 
> We would declare USER_SECTION after that inclusion the arch's header
> and that can be a place for standalone declaration:
> 
> #include <pkgconf/hal_arch.h>
> #if defined(CYG_LINK_SECTION_START) && defined(CYG_LINK_SECTION_END)
> #define USER_SECTION(_name_, _region_,  _vma_, _lma_) \
>     ._name_ _vma_ : _lma_ \
>     { CYG_LINK_SECTION_START(_name_) = ABSOLUTE (.); \
>      *(._name_*) \
>     CYG_LINK_SECTION_END(_name_) = ABSOLUTE (.); } \
>     > _region_
> #endif
> 
> #include CYGHWR_MEMORY_LAYOUT_LDI
> 
> So, the place to define CYG_{USER,LINK} macros would be hal_cortexm.h.
> I hope that I did not "break" something again :-)

I'm not sure if it is proper to place such stuff in a file generated from CDL.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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