Hi Chaker,
Your error is:
/mnt/hgfs/DDhote/linux_linaro/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: cannot
find -ltirpc
It is searching for libtirpc as a SYS_LIBS because of this in asyn/asyn/Makefile
ifeq ($(TIRPC),YES)
USR_INCLUDES_Linux += -I/usr/include/tirpc
asyn_SYS_LIBS_Linux += tirpc
endif
You said the following:
Ø
I install libtirpc-devel.x86_64
But that is not what you need. That installed the x86_64 version of libtirpc.so, not the ARM version. You need to install the ARM version of tirpc.
You may need to explicitly add tirpc_DIR = path_to_that_directory to a new file you create, CONFIG_SITE.local. linux-x86_64.linux-arm.
Mark
-----Original Message-----
From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of chaker.maazouzi--- via Tech-talk
Sent: Wednesday, February 16, 2022 11:15 AM
To: tech-talk at aps.anl.gov
Subject: error building asyn4-38 : cross_compiler_target_archs=linux-arm
Hi
Sorry, but maybe my question will be a duplicate. but I can't find a solution to my compilation error. My project is to integrate a redpitaya module into my setup, I am trying to compile asyn4-38; I using base3.16.2 :
I set in $(EPICS_BASE)/configure/CONFIG_SITE file
CROSS_COMPILER_TARGET_ARCHS=linux-arm
CROSS_COMPILER_HOST_ARCHS=linux-x86_64
In file $(EPICS_BASE) configure/os/CONFIG_SITE.linux-x86.linux-arm (called in configure/os/CONFIG_SITE.linux-x86_64.linux-arm) I set GNU_TARGET = arm-linux-gnueabihf GNU_DIR=/mnt/hgfs/DDhote/linux_linaro/gcc-linaro-6.3.1-2017.02-x86_64_arm-li
nux-gnueabihf
I add also after consulting the tech-talk website :
SHARED_LIBRARIES=YES
STATIC_BUILD=NO
compilation and building of the base is done without problem.
then i try to install asyn4-38 :
first I set in $(SUPPORT)/asyn4-38/configure/CONFIG_SITE file
CROSS_COMPILER_TARGET_ARCHS=linux-arm
After some errors(vxi11core_drv, rpcgen) I install libtirpc-devel.x86_64 and rpcgen.x86_64 on my host And uncomment TIRPC=YES in the same CONFIG_STE file
despite these actions I still get the error : ....
cannot find -ltirpc
[root@localhost support]# make
make -C ./configure install
make[1] : on entre dans le répertoire « /home/epicsmgr/support/configure » make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[2] : on entre dans le répertoire «
/home/epicsmgr/support/configure/O.linux-x86_64 » perl -CSD /home/epicsmgr/base-3.16.2/bin/linux-x86_64/convertRelease.pl
checkRelease
make[2] : on quitte le répertoire «
/home/epicsmgr/support/configure/O.linux-x86_64 » make -C O.linux-arm -f ../Makefile TOP=../.. \
T_A=linux-arm install
make[2] : on entre dans le répertoire «
/home/epicsmgr/support/configure/O.linux-arm » perl -CSD /home/epicsmgr/base-3.16.2/bin/linux-x86_64/convertRelease.pl
checkRelease
make[2] : on quitte le répertoire «
/home/epicsmgr/support/configure/O.linux-arm » make[1] : on quitte le répertoire « /home/epicsmgr/support/configure » make -C ./asyn install make[1] : on entre dans le répertoire « /home/epicsmgr/support/asyn4-38 » make -C ./configure
install make[2] : on entre dans le répertoire « /home/epicsmgr/support/asyn4-38/configure » make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[3] : on entre dans le répertoire «
/home/epicsmgr/support/asyn4-38/configure/O.linux-x86_64 » perl -CSD /home/epicsmgr/base-3.16.2/bin/linux-x86_64/convertRelease.pl
checkRelease
make[3] : on quitte le répertoire «
/home/epicsmgr/support/asyn4-38/configure/O.linux-x86_64 » make -C O.linux-arm -f ../Makefile TOP=../.. \
T_A=linux-arm install
make[3] : on entre dans le répertoire «
/home/epicsmgr/support/asyn4-38/configure/O.linux-arm » perl -CSD /home/epicsmgr/base-3.16.2/bin/linux-x86_64/convertRelease.pl
checkRelease
make[3] : on quitte le répertoire «
/home/epicsmgr/support/asyn4-38/configure/O.linux-arm » make[2] : on quitte le répertoire « /home/epicsmgr/support/asyn4-38/configure » make -C ./makeSupport install make[2] : on entre dans le répertoire « /home/epicsmgr/support/asyn4-38/makeSupport
» make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[3] : on entre dans le répertoire «
/home/epicsmgr/support/asyn4-38/makeSupport/O.linux-x86_64 »
make[3]: rien à faire pour « install ».
make[3] : on quitte le répertoire «
/home/epicsmgr/support/asyn4-38/makeSupport/O.linux-x86_64 » make -C O.linux-arm -f ../Makefile TOP=../.. \
T_A=linux-arm install
make[3] : on entre dans le répertoire «
/home/epicsmgr/support/asyn4-38/makeSupport/O.linux-arm »
make[3]: rien à faire pour « install ».
make[3] : on quitte le répertoire «
/home/epicsmgr/support/asyn4-38/makeSupport/O.linux-arm » make[2] : on quitte le répertoire « /home/epicsmgr/support/asyn4-38/makeSupport » make -C ./asyn install make[2] : on entre dans le répertoire « /home/epicsmgr/support/asyn4-38/asyn
»
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[3] : on entre dans le répertoire «
/home/epicsmgr/support/asyn4-38/asyn/O.linux-x86_64 »
make[3]: rien à faire pour « install ».
make[3] : on quitte le répertoire «
/home/epicsmgr/support/asyn4-38/asyn/O.linux-x86_64 » make -C O.linux-arm -f ../Makefile TOP=../.. \
T_A=linux-arm install
make[3] : on entre dans le répertoire «
/home/epicsmgr/support/asyn4-38/asyn/O.linux-arm » /mnt/hgfs/DDhote/linux_linaro/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnue
abihf/bin/arm-linux-gnueabihf-g++ -o libasyn.so -shared -fPIC -L/home/epicsmgr/support/asyn4-38/lib/linux-arm
-L/home/epicsmgr/base-3.16.2/lib/linux-arm
-Wl,-rpath,/home/epicsmgr/support/asyn4-38/lib/linux-arm
-Wl,-rpath,/home/epicsmgr/base-3.16.2/lib/linux-arm -rdynamic
-L/mnt/hgfs/DDhote/linux_linaro/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gn
ueabihf/arm-linux-gnueabihf/lib asynManager.o
epicsInterruptibleSyscall.o asynGpib.o drvAsynSerialPort.o drvAsynIPPort.o drvAsynIPServerPort.o asynInt32Base.o asynInt32SyncIO.o asynInt64Base.o asynInt64SyncIO.o asynInt8ArrayBase.o asynInt8ArraySyncIO.o asynInt16ArrayBase.o asynInt16ArraySyncIO.o
asynInt32ArrayBase.o asynInt32ArraySyncIO.o asynInt64ArrayBase.o asynInt64ArraySyncIO.o asynUInt32DigitalBase.o asynUInt32DigitalSyncIO.o asynFloat64Base.o asynFloat64SyncIO.o asynFloat32ArrayBase.o asynFloat32ArraySyncIO.o asynFloat64ArrayBase.o asynFloat64ArraySyncIO.o
asynOctetBase.o asynOctetSyncIO.o asynGenericPointerBase.o asynGenericPointerSyncIO.o asynEnumBase.o asynEnumSyncIO.o asynCommonSyncIO.o asynOptionSyncIO.o asynStandardInterfacesBase.o asynShellCommands.o asynInterposeCom.o asynInterposeEos.o asynInterposeFlush.o
asynInterposeDelay.o asynInterposeEcho.o ParamListInvalidIndex.o ParamListParamNotFound.o ParamValNotDefined.o ParamValStringSizeRequestTooBig.o ParamValWrongType.o ParamValValueNotChanged.o paramVal.o asynPortDriver.o asynPortClient.o devAsynOctet.o asynEpicsUtils.o
devAsynInt32.o devAsynInt8Array.o devAsynInt16Array.o devAsynInt32Array.o devAsynInt32TimeSeries.o devAsynUInt32Digital.o devAsynFloat64.o devAsynFloat32Array.o devAsynFloat64Array.o devAsynFloat64TimeSeries.o devAsynInt64Array.o devAsynInt64TimeSeries.o devAsynInt64.o
asynRecord.o drvAsyn.o vxi11core_xdr.o drvVxi11.o E5810Reboot.o E2050Reboot.o TDS3000Reboot.o
devCommonGpib.o devSupportGpib.o boSRQonOff.o -ldbRecStd -ldbCore -lca
-lCom -ltirpc -lpthread -lm -lrt -ldl -lgcc
/mnt/hgfs/DDhote/linux_linaro/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnue
abihf/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabi
hf/bin/ld: cannot find -ltirpc
collect2: error: ld returned 1 exit status
make[3]: *** [/home/epicsmgr/base-3.16.2/configure/RULES_BUILD:292:
libasyn.so] Error 1
make[3] : on quitte le répertoire «
/home/epicsmgr/support/asyn4-38/asyn/O.linux-arm »
make[2]: *** [/home/epicsmgr/base-3.16.2/configure/RULES_ARCHS:58:
install.linux-arm] Error 2
make[2] : on quitte le répertoire « /home/epicsmgr/support/asyn4-38/asyn »
make[1]: *** [/home/epicsmgr/base-3.16.2/configure/RULES_DIRS:84:
asyn.install] Error 2
make[1] : on quitte le répertoire « /home/epicsmgr/support/asyn4-38 »
make: *** [/home/epicsmgr/base-3.16.2/configure/RULES_DIRS:84: asyn.install] Error 2
Thank you very much for your attention to my problem.
Regards
Chaker Maazouzi