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:
- Downloaded and ran the National instruments GNU C & C++ Compile Tools x64 (Version: 2023 Q4)
- In my epics-base configure directory, I added the following files:
- CONFIG_SITE.local
- CROSS_COMILER_TARGET_ARCHS += linux-x86_64-cRIO
- os/CONFIG_SITE.Common.linux-x86_64.linux-x86_64-cRIO
- STATIC_BUILD=YES
- SHARED_LIBRARIES=NO
- os/CONFIG.Common.linux-x86_64-cRIO
- 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.