EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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 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
<== Date ==> <== Thread ==>

Subject: Issue with Cross-Compiling EPICS base-7.0.8 for linux-arm
From: chengsn via Tech-talk <tech-talk at aps.anl.gov>
To: tech-talk at aps.anl.gov
Date: Thu, 27 Jun 2024 18:42:04 +0800 (GMT+08:00)

Hello all,

I am trying to cross-compile EPICS base-7.0.8 for a target architecture of linux-arm (Zynq-7000 board), with my host being linux-x86_64. 

I have modified the configure/CONFIG_SITE file to set CROSS_COMPILER_TARGET_ARCHS=linux-arm, 

and I have set the GNU cross-compiler target name and the GNU tools install path in the file configure/os/CONFIG_SITE.linux-x86.linux-arm as follows:


GNU_TARGET = arm-linux-gnueabihf


GNU_DIR = /opt/petalinux/2018.3/tools/linux-i386/gcc-arm-linux-gnueabi


I have verified that the GNU tools path is correct:

$ ll /opt/petalinux/2018.3/tools/linux-i386/gcc-arm-linux-gnueabi/bin

total 51M

-rwxr-xr-x 1 timing timing  947K Dec  1  2018 arm-linux-gnueabihf-addr2line

-rwxr-xr-x 1 timing timing  980K Dec  1  2018 arm-linux-gnueabihf-ar

-rwxr-xr-x 1 timing timing  1.7M Dec  1  2018 arm-linux-gnueabihf-as

-rwxr-xr-x 1 timing timing  1.7M Dec  1  2018 arm-linux-gnueabihf-c++

-rwxr-xr-x 1 timing timing  944K Dec  1  2018 arm-linux-gnueabihf-c++filt

-rwxr-xr-x 1 timing timing  1.7M Dec  1  2018 arm-linux-gnueabihf-cpp

-rwxr-xr-x 1 timing timing   35K Dec  1  2018 arm-linux-gnueabihf-elfedit

-rwxr-xr-x 1 timing timing  1.7M Dec  1  2018 arm-linux-gnueabihf-g++

-rwxr-xr-x 1 timing timing  1.7M Dec  1  2018 arm-linux-gnueabihf-gcc

-rwxr-xr-x 1 timing timing  1.7M Dec  1  2018 arm-linux-gnueabihf-gcc-7.3.1

-rwxr-xr-x 1 timing timing   34K Dec  1  2018 arm-linux-gnueabihf-gcc-ar

-rwxr-xr-x 1 timing timing   34K Dec  1  2018 arm-linux-gnueabihf-gcc-nm

-rwxr-xr-x 1 timing timing   34K Dec  1  2018 arm-linux-gnueabihf-gcc-ranlib

-rwxr-xr-x 1 timing timing  8.0M Dec  1  2018 arm-linux-gnueabihf-gcov

-rwxr-xr-x 1 timing timing  1.2M Dec  1  2018 arm-linux-gnueabihf-gcov-dump

-rwxr-xr-x 1 timing timing  1.2M Dec  1  2018 arm-linux-gnueabihf-gcov-tool

-rwxr-xr-x 1 timing timing   15M Dec  1  2018 arm-linux-gnueabihf-gdb

-rwxr-xr-x 1 timing timing 1019K Dec  1  2018 arm-linux-gnueabihf-gprof

-rwxr-xr-x 1 timing timing  1.5M Dec  1  2018 arm-linux-gnueabihf-ld

-rwxr-xr-x 1 timing timing  1.5M Dec  1  2018 arm-linux-gnueabihf-ld.bfd

-rwxr-xr-x 1 timing timing  961K Dec  1  2018 arm-linux-gnueabihf-nm

-rwxr-xr-x 1 timing timing  1.2M Dec  1  2018 arm-linux-gnueabihf-objcopy

-rwxr-xr-x 1 timing timing  1.5M Dec  1  2018 arm-linux-gnueabihf-objdump

-rwxr-xr-x 1 timing timing  980K Dec  1  2018 arm-linux-gnueabihf-ranlib

-rwxr-xr-x 1 timing timing  577K Dec  1  2018 arm-linux-gnueabihf-readelf

-rwxr-xr-x 1 timing timing  948K Dec  1  2018 arm-linux-gnueabihf-size

-rwxr-xr-x 1 timing timing  947K Dec  1  2018 arm-linux-gnueabihf-strings

-rwxr-xr-x 1 timing timing  1.2M Dec  1  2018 arm-linux-gnueabihf-strip

-rwxr-xr-x 1 timing timing  1.3M Dec  1  2018 gdbserver

-rwxr-xr-x 1 timing timing  3.9K Dec  1  2018 runtest

However, when I run make for base-7.0.8, I encounter the following errors:

$ make -j10     

make -C ./configure install

make[1]: Entering directory '/epics/base-7.0.8/configure'

perl -CSD ../src/tools/makeMakefile.pl O.linux-x86_64 ../..

perl -CSD ../src/tools/makeMakefile.pl O.linux-arm ../..

mkdir -p O.Common

make -C O.linux-x86_64 -f ../Makefile TOP=../.. \

    T_A=linux-x86_64 install

make[2]: Entering directory '/epics/base-7.0.8/configure/O.linux-x86_64'

/usr/bin/gcc -x c -E  -D_GNU_SOURCE -D_DEFAULT_SOURCE           -D_X86_64_  -DUNIX  -Dlinux    -I. -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc -I../../include/os/Linux -I../../include      

   ../toolchain.c > TOOLCHAIN.linux-x86_64.linux-x86_64

Installing CFG file ../../cfg/TOOLCHAIN.linux-x86_64.linux-x86_64

mkdir ../../cfg

Installing CFG file ../../cfg/CONFIG_LIBCOM_MODULE

Installing CFG file ../../cfg/CONFIG_LIBCOM_VERSION

Installing CFG file ../../cfg/CONFIG_CA_MODULE

Installing CFG file ../../cfg/CONFIG_CA_VERSION

Installing CFG file ../../cfg/CONFIG_DATABASE_MODULE

Installing CFG file ../../cfg/CONFIG_DATABASE_VERSION


make[2]: Leaving directory '/epics/base-7.0.8/configure/O.linux-x86_64'

make -C O.linux-arm -f ../Makefile TOP=../.. \

    T_A=linux-arm install

make[2]: Entering directory '/epics/base-7.0.8/configure/O.linux-arm'

/usr/bin/arm-linux-gnueabihf-gcc -x c -E  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -DUNIX  -Dlinux    -I. -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc -I../../include/os/Linux -I../../include      

    ../toolchain.c > TOOLCHAIN.linux-x86_64.linux-arm

/bin/sh: 1: /usr/bin/arm-linux-gnueabihf-gcc: not found

make[2]: *** No rule to make target 'TOOLCHAIN.linux-x86_64.linux-arm', needed by '../../cfg/TOOLCHAIN.linux-x86_64.linux-arm'.  Stop.

make[2]: Leaving directory '/epics/base-7.0.8/configure/O.linux-arm'

../configure/RULES_ARCHS:58: recipe for target 'install.linux-arm' failed

make[1]: *** [install.linux-arm] Error 2

make[1]: Leaving directory '/epics/base-7.0.8/configure'

configure/RULES_DIRS:85: recipe for target 'configure.install' failed

make: *** [configure.install] Error 2

It seems that "make" is trying to use /usr/bin/arm-linux-gnueabihf-gcc instead of the specified path. I have verified that the cross-compiler is correctly installed and available in the specified directory.

I have also tested the same cross-compilation setup with base-7.0.6.1 and base-7.0.7, and both versions compile successfully.


Do you have any suggestions?


Thank you!



chengsn

IHEP


Navigate by Date:
Prev: Job opportunity at xLight: Control Systems Architect Ken Lauer via Tech-talk
Next: Errors during building of asyn package Yury Malevich - STFC UKRI via Tech-talk
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
Navigate by Thread:
Prev: Job opportunity at xLight: Control Systems Architect Ken Lauer via Tech-talk
Next: Errors during building of asyn package Yury Malevich - STFC UKRI via Tech-talk
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
ANJ, 27 Jun 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·