Hello EPICS community,
I am currently working on a project where I need to cross-compile my EPICS environment for my linux-x86_64-cRIO target. I was able to compile EPICS base with the target architecture included as a STATIC_BUILD. To
do this I followed the steps show below:
1.
Downloaded and ran the National instruments GNU C & C++ Compile Tools x64 (Version: 2023 Q4)
2.
In my epics-base configure directory, I added the following files:
·
CONFIG_SITE.local
o
CROSS_COMILER_TARGET_ARCHS += linux-x86_64-cRIO
·
os/CONFIG_SITE.Common.linux-x86_64.linux-x86_64-cRIO
o
STATIC_BUILD=YES
o
SHARED_LIBRARIES=NO
·
os/CONFIG.Common.linux-x86_64-cRIO
3.
After these are included, I am able to run make under epics-base successfully.
However, I am encountering an issue during the compilation process of Asyn, specifically with the following error message:
“/ni/oecore-x86_64/sysroots/x86_64-nilrtsdk-linux/usr/libexec/x86_64-nilrt-linux/gcc/x86_64-nilrt-linux/11.3.0/ld: cannot find -ltirpc: No such file or directory
Collect2: error: ld returned 1 exit status”
The ‘ni/oecore-x86_64’ is the directory I have downloaded my GNU C & C++ Compiler Toolchain. Additionally, I have confirmed that libtirpc should also be included with the compile toolchain for my cRIO target, along
with numerous other libraries.
I understand the ltripc is the library for the RPC (Remote Procedure Call) interface; I have set the TIRPC=YES flag in my ‘asyn/configure/CONFIG_SITE’ file since I am running RHEL 8.10.
Could anyone provide guidance or share their experiences with cross-compiling the Asyn module for a cRIO target using libtirpc.
Best,
Jacob R.