195 Commits

Author SHA1 Message Date
Sebastian Huber
9fcc207893 linkers: Update due to API changes 2020-09-18 20:34:59 +02:00
Chris Johns
463831374c linker/exeinfo: Optionally output full flags when listing object files
- Start adding support to dump configuration tables
2020-09-15 13:10:56 +10:00
Chris Johns
f86a0cec85 linkers/exeinfo: Output TLS data
Updates #4074
2020-09-11 17:07:26 +10:00
Sebastian Huber
b9d6d39cb2 linkers: Include proper header file 2020-02-25 09:19:22 +01:00
Sebastian Huber
ed15643221 linkers: Update due to API changes
Update #3835.
2020-02-25 09:19:22 +01:00
Sebastian Huber
7045cc39b4 linkers: Remove _Thread_Life_action_handler
This is a static function.

Update #3413.
2019-12-19 10:09:22 +01:00
Hesham Almatary
a1c0f92883 rtems-syms: Use .quad instead of .long for riscv64
.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.
2019-11-12 10:19:58 +00:00
Chris Johns
b4227d9196 waf: Minor format clean up. 2019-09-05 09:47:01 +10:00
Chris Johns
6e0f49a94a linkers/syms: Add symbol filtering.
- Filter symbols by regx.
- Return the name of a symbol via demangled() even it is not
  a mangled C++ function.
2019-02-11 16:42:53 +11:00
Chris Johns
3fab1f5110 linkers: Fix the -O option handling in rtems-execinfo 2019-01-10 12:40:52 +11:00
kaidoho
eb1d8f49c7 Fix wrong function signatures 2018-12-06 12:53:54 +11:00
Chris Johns
3d2db56f7d Fix warnings on Windows. 2018-11-29 05:45:21 +11:00
Chris Johns
2950fd40f0 linkers/exeinfo: Report who inlines which functions. Report not inline functions. 2018-08-07 09:11:29 +10:00
Chris Johns
f450227669 linkers/exeinfo: Add an inlines report and DWARF data dump. 2018-08-07 09:11:29 +10:00
Chris Johns
d8eef0a463 rtemstoolkit: Add DWARF function support.
Load the functions in each CU.
2018-06-18 12:26:16 +10:00
Chris Johns
1318c11e5d linkers: Add an address to line tool.
This tool provides a way to check the DWARF toolkit support for finding
lines from addresses.
2018-06-18 12:26:16 +10:00
Chris Johns
1e21ea76b7 linkers/exe-info: Add DWARF support to gather and check producer details.
- Provide support to list the compilers and assemblers used to build
  an executable.
- List the machine flags showing which flags are common and which are
  not.
2018-06-18 12:26:16 +10:00
Chris Johns
8dd3803af1 linkers/exe-info: Set the data endian for getting the init/fini sec data. 2018-06-15 15:54:25 +10:00
Vidushi Vashishth
14a1c0978d Updating trace buffer configuration 2018-06-02 13:53:31 +02:00
Chris Johns
82c8788b11 rtemstoolkit/rtl-file: Remove a file on close if requested
Close #3395
2018-04-14 14:15:07 +10:00
Sebastian Huber
b76fa74df1 linkers: Update due to API changes
Update #3160.
2017-10-12 12:52:59 +02:00
Chris Johns
78bbe4c1a3 linkers/exe-info Support ARM static constructors.
Note, ARM destructors are registered at runtime and currently not
easly found.

Update libiberty to get a newer demangler.

Closes #3102.
2017-08-16 18:18:35 +10:00
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