Running that command gives me the following:
linux-vdso.so.1 (0x00007ffd4ef17000)
libCom.so.3.22.1 => /home/hostname/Desktop/epics-base-7.0/lib/linux-x86_64/libCom.so.3.22.1 (0x00007fba4290a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fba42519000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fba422fa000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fba420f2000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fba41eee000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fba41b65000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fba417c7000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fba415af000)
/lib64/ld-linux-x86-64.so.2 (0x00007fba42da7000)
So it does seem that I’ll have to install an older version of libCom. I did also check to make sure that the configure/RELEASE file was pointing to the appropriate file locations.
From: Johnson, Andrew N. <anj at anl.gov>
Sent: Tuesday, July 18, 2023 10:07 AM
To: Srinivas, Dhruv <srinivas1 at llnl.gov>; tech-talk at aps.anl.gov
Cc: Wang, Andrew <wang126 at llnl.gov>
Subject: Re: IOC using Sequencer Module Attempting to use libCom.so.3.18.1
On 7/18/23 11:03 AM, Srinivas, Dhruv via Tech-talk wrote:
Additionally, looking at the error messages I’m getting, it seems that the IOC isn’t properly building the .st files into the .c files. When I run it, I receive a few error messages that are as follows:
/filepathTosnc/snc: error while loading shared libraries: libCom.so.3.18.1: cannot open shared object file: No such file or directory
make[3]: *** No rule to make target ‘someFile.o', needed by IOCName. Stop.
It looks like you have a problem when the build system tries to run the snc compiler, it needs a shared library which it can't find. Assuming "/filepathTosnc/snc" above isn't a literal quote from the error
output, what does running "ldd /filepathTosnc/snc" (editing the path as necessary) produce? It probably shows a similar problem with finding that library.
If you configure your EPICS Base builds with LINKER_USE_RPATH=NO you are responsible for ensuring that the correct shared libraries can be found by any programs that need those EPICS shared libraries, in this case by sequencer state notation compiler. This
kind of error that you're seeing is a direct result of a mis-match between the version needed by the snc executable and the version(s) available.
I believe I know why I’m receiving these errors. I have libCom.so.3.22.1 on my machine, so I think that the sequencer isn’t properly building the .st files.
The snc compiler that your build above is running above was built with a version of Base that provided libCom.so.3.18.1. You have to either rebuild that snc binary or install the older libCom.so alongside
the new one where it will find it.
- Andrew
--
Complexity is free, it's Simplicity that takes work.