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.
Limit the compilers used to gcc and clang. Clang has not been tested.
Users with MSVC install does not need to remove now.
Force the os.sep path to the standard '\\' on Windows. The MSYS2 python
sets it to '/' for internal project reasons. Doing this does cause waf
problems when running configure so only do this for the build target.
Closes#2583.
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.
Logging to a file requires a 'trace' lock model be used. The 'trace'
lock model holds the lock for the entire trace time, for example
the entry or exit tracing.
Move the options to a section so an option can be a single line. This
gives the user the ability to localise specific configurations in a
top level configuration file.
Provide support for names, enables and triggers. Names is an array of
names of the trace functions. The table is sorted and you can use an
index to reference the trace function. There is a @FUNC_INDEX@ macro
that is replaced with the trace function's index. Enables is a bitmap
of default trace enabled states for all trace functions. Triggers is
a bitmap of default triggers bit states for each trace function.
Generators can use these bitmaps to control functionality.
Currently the bitmaps are const but a generator option can be added
to disable the const and allow the capture engine access to update
the bitmaps.
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 trace linker builds the both_hello example in examples-v2.
Move the various string support functions into a C++ file and stop being
inlined. Make them return const std::string.
Add ld support to rld-cc.
Add search path support to rld-config so installed common files can be used.
Fix the path bugs.
Add an absolute path function to rld-path.
The --wrapper option lets a user control the wrapper file name and
location to aid testing.
Add keep support to tempfiles so specific tempfile can be set
to be kept.
Add unlink to the rld::path namespace.