173 Commits

Author SHA1 Message Date
Chris Johns
e4b31433e2 rtems-syms: Fix usage help. 2017-03-15 15:23:05 +11:00
Chris Johns
885aebd6b3 linkers/syms: Add weak symbols to the global symbol table.
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.
2016-08-25 15:54:23 +10:00
Chris Johns
6c94148e62 linkers: Demangle the C++ labels in the .ctors/.dtors sections.
Show user friendly labels for the C++ constructors and destructors.
2016-04-03 16:26:36 +10:00
Chris Johns
c81066f67f linkers: Add a tool to show RTEMS executable information. 2016-04-03 15:42:51 +10:00
Chris Johns
7148caeb91 Add Windows specific waf support for MSYS2.
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.
2016-02-19 14:51:28 +11:00
Sebastian Huber
f027f37661 linkers: Fix for targets with a small-data area
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.
2016-01-05 07:05:52 +01:00
Sebastian Huber
a7951f2ca3 linkers: Avoid cast 2016-01-04 11:15:28 +01:00
Chris Johns
efc4f099b4 Add release versioning support.
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.
2015-12-09 20:08:19 +11:00
Chris Johns
0382b6863b Fix Windows build issues.
Fix biulding the mmap Windows code.
Fix installing the files for Windows.
2015-10-19 09:06:49 +11:00
Chris Johns
2f11c3631d Always provide the argument size defines. 2015-10-15 21:06:05 +11:00
Chris Johns
f11d18b9b1 Change to use the task implemenation interface. 2015-10-15 21:05:29 +11:00
Chris Johns
e3df129557 Add a lock model to support different lock models when tracing.
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.
2015-09-29 20:26:38 +10:00
Chris Johns
b24951645d rtemstoolkit: Add support to return the system path split as paths.
Seacch the path for the program name if not found and set it as
an absolute path. This allow the prefix to be found.
2015-03-29 18:06:00 +11:00
Chris Johns
5032d71ab6 trace-linker: Update comments. 2015-03-29 16:37:22 +11:00
Chris Johns
d499e6df89 trace-linker: Add the trace function signatures to the wrapper code.
This gives the tools the ability to extract all needed data from the
executable.
2015-03-27 20:21:33 +11:00
Chris Johns
b69cd3fc07 trace-linker: Add API and POSIX interfaces. 2015-03-26 18:23:35 +11:00
Chris Johns
b988768f83 trace-linker: Add Trace Buffering support.
Trace buffering traces into a static buffer complete with timestamp
and the executing context.

A shell command provides access to the data.
2015-03-26 17:08:18 +11:00
Chris Johns
1703041074 rtems-tld: Add lock and buffer allocator support to generators.
Generators can control a lock and buffer allocation so a single
alloc can happen and a lock released.
2015-03-24 14:37:35 +11:00
Chris Johns
29ad92c524 trace-linker: Add options, names, enables, and triggers.
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.
2015-03-23 17:19:01 +11:00
Chris Johns
b7d48ef5a4 Install the rtems-test command.
This installs the Python RTEMS Toolkit.

The copmiler has been switched from forcing gcc to allowing waf
to detect the host's tool chain.
2015-02-08 17:12:04 +11:00
Chris Johns
7338811607 Remove warning on Linux. 2015-01-21 10:52:54 +11:00
Chris Johns
3badbb0622 Add support to cross-compile. Use --hosti=.
On FreeBSD use --host=mingw32 for Windows. If you use another
OS you might need to add the specific windows host to the
top level wscript file.
2015-01-18 18:12:18 +11:00
Chris Johns
8de6f6b412 rtems-tld: Install the libc heap configuration files. 2014-12-18 15:15:11 +11:00
Chris Johns
7fc1edba20 rtems-tld: Add configuration support for libc head tracing.
These files allow you to trace malloc, calloc, realloc and free.
With a simple script you can see what is allocated and never freed.
2014-12-18 15:07:59 +11:00
Joel Sherrill
b1e9ab9368 main-page.cpp: Fix spelling issue 2014-11-20 12:46:43 -06:00
Chris Johns
b9c0a0436d linkers: Disable .type statements in symbol code.
Some of the assemblers do not support this statement.
2014-11-06 12:05:38 +11:00
Chris Johns
53e387d9a4 linkers: Merge the standard libraries into the user library paths.
The change to rld::split clears the user's library paths. Fix
this.
2014-11-04 19:39:57 +11:00
Ben Gras
2015c854c5 fix for open() not taking a std::string 2014-11-01 09:56:05 +11:00
Chris Johns
fdb1fe685a linkers: Add base image symbol to ELF object file generation.
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.
2014-10-30 17:55:18 +11:00
Chris Johns
aac294948c linkers: Add kernel symbol support.
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.
2014-10-28 01:14:02 -07:00
Chris Johns
6ae559c96b rtems-tld: Make printk the default generator. 2014-09-22 08:23:39 +10:00
Chris Johns
5025439f9d rtems-tld: Add config options, fix void args, and SCore traces. 2014-09-21 14:24:37 +10:00
Chris Johns
149a8a6361 rtems-tld: Remove forced trace message. 2014-09-21 08:50:56 +10:00
Chris Johns
435d879bb6 rtk: Build fastlz into the rld library.
Do not build as an object per program.
2014-09-13 12:26:45 +10:00
Chris Johns
87e0e76be5 Refactor code into the RTEMS Toolkit. 2014-09-13 12:09:16 +10:00
Chris Johns
749ddf1ed5 waf: Include waf in the souce tree and updated README on building.
Add support to build all parts of The RTEMS Tools project.
2014-09-13 10:47:07 +10:00
Chris Johns
e0b8975853 Remove invalid file that was added. 2014-09-13 08:48:17 +10:00
Chris Johns
7168ab3da5 rtems-tld: Add a printk generator. 2014-09-10 13:10:45 +10:00
Chris Johns
5afb2b8d5b rtems-tld: Fix warnings in the generated code. 2014-09-10 13:10:20 +10:00
Chris Johns
2d5de2e120 Fix the error message. 2014-09-10 11:16:26 +10:00
Chris Johns
67369b148b Fix the tempfile output code to handle line breaks better. 2014-09-10 11:15:29 +10:00
Chris Johns
30a7f069e7 Make the verbose take the level and return the level if valid.
This makes the verbose a single and removes the need to have the
logic of the test in the code.
2014-09-10 11:14:06 +10:00
Chris Johns
b7ad4a2431 linkers: If no RTEMS path is provied see if the prefix can be used. 2014-09-09 08:40:13 +10:00
Chris Johns
6fb1409215 rtems-tld: Add entry and exit trace support. 2014-09-09 08:20:41 +10:00
Chris Johns
2126ea7ff0 rtems-tld: Generate arg and ret code in the wrapper. 2014-09-08 19:29:41 +10:00
Chris Johns
17c836402f Fix building on CentOS 6.5. 2014-09-08 16:37:32 +10:00
Chris Johns
6506aa14aa RTEMS trace linker builds trace applications.
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.
2014-09-08 16:06:48 +10:00
Chris Johns
b28e8b3115 Refactor the rld-rtems support to remove the globals. 2014-09-07 14:31:18 +10:00
Chris Johns
32cd4fcc17 rtems-tld: Add --wrapper option to aid testing.
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.
2014-09-07 10:47:00 +10:00
Chris Johns
3f5e31f86d Chanhe the base temp file name to 'rld--'. 2014-09-07 10:45:36 +10:00