Setting Up RCSW
Developer Setup
RCSW uses libra:main so go to libra:usage-req and install any needed packages.
Clone RCSW and init LIBRA:
git clone git@github.com:jharwell/rcsw.git cd rcsw git submodule update --init --remote --recursive
Build RCSW. From the root of the repo:
mkdir build && cd build cmake <ARGS> .. make
<ARGS>
is a list of cmake arguments.Important
RCSW and LIBRA output VERY thorough summaries of their build configuration, so check them to make sure you are building what you think you are.
You can pass any option as part of
<ARGS>
that LIBRA supports (see libra:usage-capabilities) or that RCSW supports (see RCSW cmake Configuration).
RCSW cmake
Configuration
Note
All cmake configuration options which have a direct analogue in the
code are prefixed with RCSW_CONFIG_
; those that don’t (e.g.,
RCSW_SUMMARY
) are prefixed with RCSW_
.
Variable |
Description |
Default |
---|---|---|
|
Is dynamic heap memory allocation disallowed ? If TRUE, implies: where applicable for all modules. |
|
|
Should all allocated memory (dynamically or by the application) be zeroed
before use by RCSW ? See |
|
|
Internal ntoa() conversion buffer size in RCSW’s printf() implementation. Must be big enough to hold one converted numeric number including padding. |
32 |
|
Compile in support for the decimal notation floating point conversion specifiers:
|
|
|
Compile in support for the exponential notation floating point conversion specifiers:
|
|
|
Compile in support for the length write-back specifier (%n). |
|
|
Set default precision for the floating point conversion specifiers (the C standard sets this at 6). |
6 |
|
According to the C standard, printf() must be able to print any integral number in floating-point notation, regardless of length, when using %f, which can overflow buffers. To be safe, values taking more than this many digits to print are switched to exponential notation. |
9 |
|
Support for the long long integral types (with the ll, z and t length modifiers) for specifiers:
‘L’ (long double) is not supported. |
|
|
The number of terms in a Taylor series expansion of log_10(x) to use for approximation - including the power-zero term (i.e. the value at the point of expansion). Can be [1,2,3,4]. |
4 |
|
Be extra-safe, and don’t assume format specifiers are completed correctly before the format string end. Requires runtime checking. |
|
|
The name of the putchar()-like function that RCSW’s printf() implementation should link with to write characters to stdout. Must have same signature as putchar(). |
|
|
The name of the getchar()-like function that RCSW’s printf() implementation should link with to read characters from stdin. Must have same signature as getchar(). |
|
|
Compile out: This variable enables you to leave in timing collection in application code, and only collect it when you need to. |
|
|
The default event reporting plugin to use. See Event Reporting (ER) for details. |
|
|
The path to the |
Empty |
|
Override the pointer alignment used to store references to all application data which RCSW manages. Some architectures can handle trying to use a Must be [1,2,4]. |
|
|
Show a summary of all RCSW-specific variables when running |
|
|
What type of library to build RCSW as (SHARED or STATIC). |
|
|
Meta-option defining what “platform” RCSW should build against/for. Valid values:
|
|
|
Meta-option to remove the STDIO module from compilation. Useful if you don’t need it to reduce compilation times. |
|