[erlang-questions] xilinx petalinux

Mikael Pettersson mikpelinux@REDACTED
Fri Sep 15 19:33:40 CEST 2017


József Bérces writes:
 > Hi,
 > 
 > Has anyone tried to compile Erlang/OTP for Xilinx Petalinux? Well, I did and failed, so my last hope is in this community ��
 > 
 > I created an xcomp config file based on the existing erl-xcomp-arm-linux.conf and replaced the compiler varables to point to XSDK. For example:
 > 
 > CC="/opt/Xilinx/SDK/2017.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc --sysroot=$ARM_SYSROOT"
 > 
 > I also added the following at the beginning of the config file:
 > 
 > ARM_SYSROOT=/opt/Xilinx/SDK/2017.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/libc
 > 
 > It went well until linking time when I got these errors:
 > 
 > /opt/Xilinx/SDK/2017.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/bin/ld: cannot find -ldlpi
 > /opt/Xilinx/SDK/2017.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/bin/ld: cannot find -linet
 > /opt/Xilinx/SDK/2017.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/bin/ld: cannot find -ltinfo
 > /opt/Xilinx/SDK/2017.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lkstat
 > 
 > Any ideas how to fix this?

There are two documented ways to cross-compile Erlang/OTP.  I've never used the pre-cooked "xcomp"
route myself, but a normal configure/make (following HOWTO/INSTALL-CROSS.md) has worked well for me
in the past.

Three of the missing libraries listed above seem unexpected to me for a GNU/Linux system.
./configure _should_ detect their absence so I can only assume that the "xcomp" route makes
too many hard-coded assumptions, or has mis-identified your target system.

The -ltinfo issue can be worked around by passing --without-termcap to ./configure, but you then
get an Erlang shell that's less featureful when it comes to command-line editing and such.
If you want these features, cross-build ncurses and install that in your sysroot first.



More information about the erlang-questions mailing list