Clang do not support -mfix-gr712rc, -mfix-ut700 and -mfix-ut699.
Therefore we adjust the CPU_CFLAGS to remove these when compiling with
Clang. Instead use
GR712RC: -mcpu=gr712rc
GR740: -mcpu=gr740
UT699/UT700: Not currently supported by clang, use LEON3 BSP.
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.
Use the non-standard typeof operator to avoid code generation errors
with clang and use of uninitialized variable warnings with GCC and
Coverity Scan.
Update #3465.
In standard C pointer operands are not allowed in integer constant
expressions. Avoid a static assertion based on an array typedef since
this could lead to warnings ("variably modified 'x' at file scope" and
"typedef 'x' locally defined but not used");
This implementation requires unique messages.
By default, the interrupt vector of an interrupt server request is set
to a special value which is outside the range of vectors supported by
the interrupt controller hardware.
Add rtems_interrupt_server_request_set_vector() to set the interrupt
vector in an interrupt server request.
Calls to rtems_interrupt_server_request_submit() will disable the interrupt
vector of the request. After processing of the request by the interrupt
server the interrupt vector will be enabled again.
Prepare the interrupt stack which may be used by the boot processor as
initialization stack with the stack sanity pattern. Check the interrupt
stack of the current processor in the thread begin and switch extension.
Update #3459.
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.