| Commit message (Collapse) | Author | Files | Lines |
|
A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.
This has at least seven problems:
* The make preinstall step itself needs time and disk space.
* Errors in header files show up in the build tree copy. This makes it
hard for editors to open the right file to fix the error.
* There is no clear relationship between source and build tree header
files. This makes an audit of the build process difficult.
* The visibility of all header files in the build tree makes it
difficult to enforce API barriers. For example it is discouraged to
use BSP-specifics in the cpukit.
* An introduction of a new build system is difficult.
* Include paths specified by the -B option are system headers. This
may suppress warnings.
* The parallel build had sporadic failures on some hosts.
This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.
The new cpukit include directories are:
* cpukit/include
* cpukit/score/cpu/@RTEMS_CPU@/include
* cpukit/libnetworking
The new BSP include directories are:
* bsps/include
* bsps/@RTEMS_CPU@/include
* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include
There are build tree include directories for generated files.
The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.
The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.
Update #3254.
|
|
|
|
Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.
In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:
- 16 32-bit integers were allocated.
- A total of 64 bytes per task per thread.
This is especially critical in low memory and safety-critical applications.
They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.
Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.
updates #2493.
|
|
|
|
|
|
Move implementation specific parts of extension.h and extension.inl into
new header file extensionimpl.h. The extension.h contains now only the
application visible API.
|
|
This is the result of a sed script which converts all uses
of @{ into a consistent form.
|
|
|
|
http://www.google-melange.com/gci/task/view/google/gci2012/8011204
|
|
|
|
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
* sapi/include/rtems/extension.h: Documentation.
|
|
_User_extensions_Add_API_set
|
|
|
|
* sapi/include/rtems/extension.h, sapi/src/extensiondelete.c,
sapi/src/extensionident.c, sapi/src/extensioncreate.c,
sapi/inline/rtems/extension.inl, score/include/rtems/score/userext.h,
score/src/userextthreaddelete.c, score/src/userext.c,
score/src/userextthreadcreate.c, score/src/userextremoveset.c,
score/src/userextthreadbegin.c, score/src/userextaddset.c,
score/src/userextthreadstart.c, score/src/userextthreadswitch.c,
score/src/userextthreadrestart.c: Documentation. The types
User_extensions_routine and rtems_extension are now deprecated.
Removed unused types User_extensions_thread_post_switch_extension and
rtems_task_post_switch_extension. Renamed _User_extensions_Add_API_set()
in _User_extensions_Add_set(). Renamed _User_extensions_Add_set() in
_User_extensions_Add_set_with_table().
* score/src/userextaddapiset.c: Removed file.
* score/Makefile.am: Update.
|
|
* sapi/include/rtems/extension.h, sapi/include/rtems/io.h,
sapi/src/exinit.c, sapi/src/extension.c, sapi/src/io.c,
score/include/rtems/score/mpci.h, score/include/rtems/score/object.h,
score/include/rtems/score/thread.h, score/include/rtems/score/tod.h,
score/include/rtems/score/userext.h,
score/include/rtems/score/wkspace.h, score/src/coretod.c,
score/src/mpci.c, score/src/object.c, score/src/thread.c,
score/src/userext.c, score/src/wkspace.c: Convert SAPI manager and
SuperCore Handler initialization routines to directly pull parameters
from configuration table.
|
|
the size of the BSS section when an optional manageer stub is used. Some tests showed about a 600 byte reduction in BSS size. Also eliminated the variables _RTEMS_tasks_User_initialization_tasks and _RTEMS_tasks_Number_of_initialization_tasks because they were only used in one place after initialized. It was a waste of space.
|
|
|
|
|
|
* sapi/include/confdefs.h, sapi/include/rtems/config.h,
sapi/include/rtems/extension.h, sapi/include/rtems/fatal.h,
sapi/include/rtems/init.h, sapi/include/rtems/io.h,
sapi/src/exinit.c, sapi/src/extension.c, sapi/src/fatal.c,
sapi/src/io.c: Convert to using c99 fixed size types.
|
|
* include/confdefs.h, include/rtems/config.h,
include/rtems/extension.h, include/rtems/fatal.h,
include/rtems/init.h, include/rtems/io.h, include/rtems/mptables.h,
include/rtems/sptables.h, include/rtems/sptables.h.in,
inline/rtems/extension.inl, macros/rtems/extension.inl, src/debug.c,
src/exinit.c, src/extension.c, src/extensioncreate.c,
src/extensiondelete.c, src/extensionident.c, src/fatal.c, src/io.c,
src/itronapi.c, src/posixapi.c, src/rtemsapi.c: URL for license
changed.
|
|
|
|
|
|
|
|
|
|
of switching to the modified GNU GPL.
|
|
score, rtems api, or posix api related.
|
|
the inline implementation. The impetus for this was twofold. First,
it is incorrect to have static inline prototypes when using the macro
implementation. Second, this reduced the number of lines in the include
files seen by rtems.h by about 2000 lines.
Next we restricted visibility for the inline routines to inside the
executive itself EXCEPT for a handful of objects. This reduced the
number of include files included by rtems.h by 40 files and reduced
the lines in the include files seen by rtems.h by about 6000 lines.
In total, these reduced the compile time of the entire RTEMS tree by 20%.
This results in about 8 minutes savings on the SparcStation 10 morgana.
|
|
in each thread which must be set when the post switch extension is to be run.
|
|
|
|
Configuration Table Template file added and all tests
modified to use this. All gvar.h and conftbl.h files
removed from test directories.
Configuration parameter maximum_devices added.
Core semaphore and mutex handlers added and RTEMS API Semaphore
Manager updated to reflect this.
Initialization sequence changed to invoke API specific initialization
routines. Initialization tasks table now owned by RTEMS Tasks Manager.
Added user extension for post-switch.
Utilized user extensions to implement API specific functionality
like signal dispatching.
Added extensions to the System Initialization Thread so that an
API can register a function to be invoked while the system
is being initialized. These are largely equivalent to the
pre-driver and post-driver hooks.
Added the Modules file oar-go32_p5, modified oar-go32, and modified
the file make/custom/go32.cfg to look at an environment varable which
determines what CPU model is being used.
All BSPs updated to reflect named devices and clock driver's IOCTL
used by the Shared Memory Driver. Also merged clock isr into
main file and removed ckisr.c where possible.
Updated spsize to reflect new and moved variables.
Makefiles for the executive source and include files updated to show
break down of files into Core, RTEMS API, and Neither.
Header and inline files installed into subdirectory based on whether
logically in the Core or a part of the RTEMS API.
|
|
both fixed length "raw" names and strings from the API's point of view.
Both inline and macro implementations were tested.
|