This adds support for the "vGetTLSAddr" GDB query which retrieves the
address of a TLS variable by offset from the beginning of the TLS memory
space for the given thread. This offset does not include the size of the
thread control block which is at the beginning of every TLS area as used
by RTEMS. Notably, the returned address is big-endian rather than the
little-endian typical with other responses.
This functionality does not include retrieval of addresses for TLS
variables hosted in loadable modules, only TLS variables in the host
binary.
According to the Posix specification:
Upon successful completion pthread_sigmask() shall return 0;
otherwise, it shall return the corresponding error number.
GCC warnings when comparing the starting addresses of two arrays when
using just the name of the array. Changes to use the address of
element 0 which resolved the warning.
On some BSP builds, the variable q was reported as used before
it was initialized. This is a false positive. The variable is now
initialized to NULL to prevent this.
This was warning about the FP context not being restored
when a thread is restarted. The current and long standing
execution path is through _Thread_Handler() which does restore
the FP context.
This function was static inline which means that it must compile
cleanly for all versions of C and C++. Newer C standards make it
an error to cast between incompatible function types. Moving this
function to cpu.c from cpu.h allows the C standard version required
to be narrowed from "whatever the user wants" to the one version
that is used to compile RTEMS.
GCC gave the warning that "ISO C restricts enumerator values to
range of 'int' before C23 [-Wpedantic]."
Changed place holder value from 0xffffffff to 0x7fffffff.
removed all set_vector() function prototypes from
all the respective bsp.h header files and removed
bsps/shared/start/setvec.c from respective .yml files.
* Fixes#5256.
* Specify an initial baud rate to use during startup.
After the PL011 code refactor in
0f42153959, an initial baud rate
is required. arm_pl011_first_open is called from boot_card and
will fail without a baud rate specified. This can cause certain
future uses of /dev/console, such as opening a shell, to fail.
The rtems_interrupt_disable macros expand to some code that
is indented. GCC sees this as misleading indentation next
to the while loop without braces.
The opto* include must come before the bspopts include or else the flags
from the opto* include get dropped which causes librtemscpu to build
without the function and data sections flag which causes link-time
errors because unused sections cannot be dropped. The mechanism here
should be better understood, but this fixes the build errors.
The Moxie does not implement the interrupt disable/enable functions
and this led to an unused variable warning. Just added proper
annotation to let GCC know it is intentionally unused.
The macro Install_tm27_vector() included an extern for tm27IrqData
inside the scope of the macro. This generated a "nested extern
declaration warning. Moved the extern outside the scope.
The PowerPC has both 32 and 64 bit CPUs within a single architecture
and collection of BSPs. This change set addresses cases where the
format specifier, type, or cast was not correct or portable across
32 and 64 bit environments.