Hi
I’m trying to understand what is the correct way to perform release or debug builds please? I have looked through the Component and Rcc Development Guides but I cannot find exactly what I am after.
In the ocpidev-build documentation (either through ocpidev build --help or ocpidev-build) it references an --optimize flag, which appears to be used tools/include/rcc/rcc-worker.mk to set RccOptimized and then RccCompileOptions when building the rcc worker.
However, when I run ocpidev build --optimized from my worker directory, I get the following error message:
$ocpidev build --optimize
usage: ocpidev [–help] [–version] [–log-level <log_level>] [-v] [-d ] [-f] [–no-doc] [–doc-only]
{build,clean,create,delete,refresh,register,run,set,show,unregister,unset,utilization} …
ocpidev: error: unrecognized arguments: --optimize
I’m not sure if this is a bug or if I am using the command incorrectly?
Thanks
Hey,
I’ve not used the optimized stuff before, but after a quick search there’s some info in here:
Ctrl-F for optimized
. I think you need to build the framework with --optimized
first:
./scripts/install-opencpi.sh <platform> --optimized # I think
The most recent RCC platform to be tested for optimized builds is xilinx24_1_aarchXX
.
You first need to implement the following workaround as described here: Optimized builds cause errors with GCC 12+ (#3755) · Issues · OpenCPI / OpenCPI · GitLab
The --optimize
flag is used for the installer script as @waltersdom described or can be used with ocpiadmin
command line utility.
I use ocpiadmin
, so after applying the changes build the platform using ocpiadmin
.
ocpiadmin install platform xilixn24_1_aarch32-o
The -o
informs OpenCPI to build the optimized version of the RCC platform.
Once the platform build is complete workers can be built with the optimized version by adding the -o
to the end of the RCC platform, for example in the case of xilixn24_1_aarch32
it would be xilinx24_1_aarch32-o
. Below is an example of optimize build for a worker.
ocpidev build --rcc-platform xilinx24_1_aarch32-o
This is currently described on the bottom of page 24 of the OpenCPI AXI Transport Performance Tuning guide: https://opencpi.gitlab.io/releases/develop/docs/OpenCPI_AXI_Transport_Performance_Tuning_Guide.pdf