If a symbol map file is specified by the user and no output file, then
just generate the symbol map file. The user can then compile the file
using its own build jobs.
.long in RISC-V assembly is 4 bytes, while the address in riscv64
is 8 bytes (.quad). Moreover, RTEMS' libdl increases the symbols
pointer by sizeof(long) in C when iterating over global symbols.
Add any weak symbols that have been linked into the base image to the
global symbol table. A weak symbol is global when view viewed from
a dynamically loaded module.
Closes#2704.
On certain targets (e.g. PowerPC) global data below a certain threshold
(e.g. 8 bytes) may resided in a special memory area, the small-data
area. This allows more efficient load/store operations. Placing such
data into the wrong section (e.g. .rodata) leads to relocation errors
during link-time. See test program libtests/dl02 in the RTEMS
testsuite. Using an array of unspecified size prevents that the
compiler assumes that a certain variable is in the small-data area.
Support a top level VERSION file that defines an RTEMS release.
Fix the install of the python modules including thertems-test.
Update the git python module to the RSB version. Fix the options to
not call clean and to call dirty.
Update the version python module.
Fix the rtld C++ support to the VERSION file and the top level waf
script.
This change adds support to the rtems-syms code to generate a suitable
ELF object you can link to the base image kernel in the embed mode or
you can load with the run-time load mode.
The change fixes a bug in the framework where local ELF symbols
were being placed in the external symbol table. The external
symbol table has been removed and a global, weak and local set
of tables is now provided as this is more aligned with the ELF
format.
The rtems-sym tool has been changed from a basic map tool to now
provide an object file in the specific architecture containing
the symbols in the RTEMS kernel. It can still generate a map.
The object can be embedded or loaded. It cannot be both.
The refactoring allows better reuse of the ELF support and cleans up
some hacks from the generic file and archive handling improving the
separation of the file handling from the file format, ie ELF. The
handling of ELF object files and ELF object files inside archives
is cleaner.
The refactor cleaned up the symbol handling where the symbols now
reside in the ELF file object and references are take in symbol
pointer containers and symbol table containers.
The main purpose of the refactor is to allow support for creating
and writing ELF files.
Also added an rtems-syms command where special symbol support
can be added.