New source layout.

Amar Takhar amar at rtems.org
Mon Mar 9 01:42:05 UTC 2015


On 2015-03-09 08:39 +1100, Chris Johns wrote:
> On 8/03/2015 12:51 pm, Amar Takhar wrote:

> Thanks for starting this thread. Reorganising the source tree in RTEMS 
> is long over due.

You're welcome!  The source layout was the second biggest issue I had with 
navigating the code.

> 
> I assume this is all post 4.11 and based on the up coming waf build 
> system. It makes sense to move RTEMS a major revision number which would 
> make 4.11 the last 4.x series release.

Yes.  Though I can see releasing a 4.12 just to end off the legacy build system 
and keep it as purely maintenance.  It would let us have a clean history to start 
from where only important fixes are backported.


> > The directories should be:
> >
> > include/rtems/       - Public API
> > include/             - Private API
> 
> With the public API as a subtree of the private does this mean there is 
> only a single include path to the include tree given to the compiler ?

Yes it is just -Iinclude.


> Does private mean the headers are not installed so are more 'internal' 
> than 'private' ? To me internal means they can used internally to RTEMS 
> but cannot be installed or referenced by public headers while private 
> makes me wonder what I can use and should not use.

Everything in include/rtems/ gets installed.  Any header with the prefix 
'rtems/' will be public if it does not have that then it is private.


> With testing will we have in tree testing and installed testing, ie a 
> test to check no header leakage ?

Yes.  The test suite will have it's public and private components.  One of the 
tests for public APIs is to work off of an installed version of RTEMS.  Since it 
is designed to test the 'user' side it makes sense to simulate the user 
experience.


> > include/arch/        - Private architecture specific
> > include/bsp/         - Common BSP files
> > include/bsp/<arch>   - Architecture specific
> 
> Does this mean all <arch> references are explicit and not using compiler 
> include path tricks ?

Yes, 100% of include paths are explicit, no compiler tricks at all the only 
include will be -Iinclude and nothing more.


> > RTEMS has 1,500 headers we will have no issues filling these directories up.
> > There are 3,258 headers in the waf build.  1,700 of these will be removed after
> > we fix the references in the source -- a project for down the road.
> >
> 
> Getting these files back under control is fantastic. Again many thanks.

I'm very excited to see this move forward and you're welcome!


Amar.


More information about the devel mailing list