steve-o / openpgm

Automatically exported from code.google.com/p/openpgm
57 stars 44 forks source link

Cannot cross-compile OpenPGM for ARM #46

Open KgothatsoM opened 7 years ago

KgothatsoM commented 7 years ago

Hi

I have been trying, to no avail, to cross-compile OpenPGM for Petalinux using the 2016 Xilinx toolchain. I initially got an error that said: "cannot check for file existence while cross compiling". I looked this up and found a suggestion about setting some of the flags that, I guess, fool the configure script into thinking the tests passed, but it brought another error that it cannot run tests while cross compiling. I also tried a hack; I commented out the if statement that threw this error in the configure script, but I still came across a whole lot of issues and errors in the config.log file. Please assist. Is it possible to cross compile OpenPGM for ARM?

Thanks Kgothatso

steve-o commented 7 years ago

The Autoconf build configuration is really system with only one check for AIX, please provide your command line and output:

https://github.com/steve-o/openpgm/blob/master/openpgm/pgm/Makefile.am

KgothatsoM commented 7 years ago

I start with autoreconf -i. Next, I run the configure script, but point it to the Xilinx compiler: ./configure --host=arm-xilinx-linux-gnueabi CC=arm-xilinx-linux-gnueabi-gcc CXX=arm-xilinx-linux-gnueabi-g++ --prefix=/home//arm/libpgm

I then get the error that it cannot check for file existence when cross compiling. I tried to sort it out by adding the following flags to the configure command: --build=i386 ac_cv_fileproc_cpuinfo=yes ac_cv_file__dev_rtc=no ac_cv_filedev_hpet=no ac_fn_c_try_run=no ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes pgm_unaligned_pointers=yes

After adding these flags it tells me that it cannot run test program while cross compiling.

Thanks Kgothatso

ctortawalsh commented 7 years ago

This looks like a bug in the configure script as there is no way to override this when you are cross compiling.

There is a check to determine is the script is cross_compiling, if it is, the configuration fails. If not, the test code will be 'executed'. Best to wrap the whole check with a flag and set that flag as an input to configure.