libftdi Archives

Subject: Re: How to cross-compile libftdi1 for ARM Linux target?

From: Anton Smirnov <dev@xxxxxxxxxxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Wed, 21 Aug 2013 11:24:25 +0600
Libusb for ARM and native have the same syntax so i've decided not to fix library paths (leave using system) as final executable is build using autotools and i'm
able to configure cross-compilation for it.

So when executing "make" i'm getting error (make VERBOSE=1):

cd /Users/asmirnov/Documents/dev/src/libftdi-1.0/src && /usr/local/Cellar/cmake/2.8.11.1/bin/cmake -E cmake_link_script CMakeFiles/ftdi1.dir/link.txt --verbose=1
/softdev/arm-toolchain/bin/arm-linux-androideabi-gcc  -O2 -g -DNDEBUG -dynamiclib -Wl,-headerpad_max_install_names  -L/softdev/arm-libs/lib -compatibility_version 2.0.0 -current_version 2.0.0 -o libftdi1.2.0.0.dylib -install_name /Users/asmirnov/Documents/dev/src/libftdi-1.0/src/libftdi1.2.dylib CMakeFiles/ftdi1.dir/ftdi.c.o CMakeFiles/ftdi1.dir/ftdi_stream.c.o /usr/local/lib/libusb-1.0.dylib 
arm-linux-androideabi-gcc: error: 2.0.0: No such file or directory
arm-linux-androideabi-gcc: error: 2.0.0: No such file or directory
arm-linux-androideabi-gcc: error: /Users/asmirnov/Documents/dev/src/libftdi-1.0/src/libftdi1.2.dylib: No such file or directory
arm-linux-androideabi-gcc: error: unrecognized option '-compatibility_version'
arm-linux-androideabi-gcc: error: unrecognized option '-current_version'
make[2]: *** [src/libftdi1.2.0.0.dylib] Error 1
make[1]: *** [src/CMakeFiles/ftdi1.dir/all] Error 2
make: *** [all] Error 2

So it seems that cmake created command line for gcc incorrectly - gcc does not understand "-compatibility_version 2.0.0 -current_version 2.0.0".
What's wrong with this?


2013/8/21 Anton Smirnov <dev@xxxxxxxxxxxxxxxxx>
I've used autotools to cross-compile libftdi-0.1 for ARM Linux:

export CPPFLAGS="-I/softdev/arm-libs/include/libusb"
export LDFLAGS="-L/softdev/arm-libs/lib"
./configure --build=x86-unknown-linux-gnu --host=arm-linux-androideabi --target=arm-linux-androideabi --prefix=/softdev/arm-libs

Now i'm going to do the same for libftdi1 and i was surprised that libftdi is now build with cmake.
After getting familiar with cmake and googling for a few hours i constructed build command for it which seems to be good for my purpose:

cmake -DCMAKE_INSTALL_PREFIX="/softdev/arm-libs" -DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" -DCMAKE_CXX_FLAGS="${CPPFLAGS}" -DCMAKE_SYSTEM_NAME="Linux" -DLIBUSB_INCLUDE_DIR="/softdev/arm-libs/include/libusb" -DCMAKE_HOST_SYSTEM_NAME="Linux" -DCMAKE_FIND_ROOT_PATH="/softdev/arm-libs"  -G "Unix Makefiles" ..

So i'm getting error during "make":
arm-linux-androideabi-gcc: error: 2.0.0: No such file or directory
arm-linux-androideabi-gcc: error: 2.0.0: No such file or directory

cmake find compilers (c and c++) correctly, but does not use ARM libs for linker (still uses system paths).

What's wrong? Can it be cross-compiled in more simple way?
Libusb-1.0 is cross-compiled and is located in specified paths for sure.

Regards, Anton.
 



libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx


Current Thread