An RTEMS application default configuration is contained in
cpukit/libmisc/dummy/default-configuration.c. This default
configuration was contained in librtemscpu.a. This had at least two
problems:
1. Application configuration errors may have pulled in the default
configuration which in turn lead to multiply define symbols error.
This was quite confusing. You had to consult the linker map file to
figure out what cased the pull in of the default configuration. You
needed to know what a linker map file is and how you generate it with
your build system. This was not very user friendly.
2. It prevented the use of default configuration items for each subsystem
in librtemscpu.a. This may be used to reduce the size of the
configuration itself.
Move the default configuration to the separate library
librtemsdefaultconfig.a.
Close#3551.
The Telnet service started via rtems_telnetd_start() had a keep stdio
feature. This just created a task and executed the command function in
a loop. For this kind of service we do not library support. This can
be done by an application task on its own. Remove this feature and
provide only the real Telnet server functionality.
Use syslog() for error and status messages.
Add test program for the Telnet server.
Close#3542.
Standard C does not allow pointer operands in an integer constant
expressions. GCC issues only a -Wpedantic warning in the removed static
assertion. However, clang is pedantic by default and issues an error.
Rely on the test case instead.
The configured interrupt stack size (CONFIGURE_INTERRUPT_STACK_SIZE) is
checked against the minimum task stack size. The minium tasks task
stack size is also a configuration option
(CONFIGURE_MINIMUM_TASK_STACK_SIZE). So, this check does not really
help in case of configuration errors. In addition, the interrupt stack
is also re-used as the initialization stack in most BSPs. It is
probably better to use a stack checker to detect problems.
Update #3459.
This is needed for building rtems correctly with Clang.
Note that this change does not mean rtems can build correctly with
mainline clang. However the change allows building rtems with a
Clang toolchain that has a rtems frontend similar that of GCC's
builtin rtems specs.
Add support to temporarily pin a thread to its current processor. This
may be used to access per-processor data structures in critical sections
with enabled thread dispatching, e.g. a pinned thread is allowed to
block.
Update #3508.