1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: error building asyn4-38 : cross_compiler_target_archs=linux-arm |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | "chaker.maazouzi at iphc.cnrs.fr" <chaker.maazouzi at iphc.cnrs.fr> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 16 Feb 2022 18:22:18 +0000 |
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----- 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 |