Cross compiling fails: missing file

Issue #193 invalid
Joseph Schuchart created an issue

I am trying to cross compile on the XC40 (sandybridge frontend, haswell backend) so I am configuring the first stage as suggested in contrib/platforms/config.bg:

$ cmake ../ -DCOREBLAS_PKG_DIR=$HOME/opt-cray/plasma-2.8.0-intel/lib/pkgconfig/ -DBUILD_SHARED_LIBS=OFF -DHWLOC_LIBRARY=$HOME/opt-cray/hwloc-1.11.9/lib/libhwloc.a -DBUILD_TESTING=OFF -DBUILD_TOOLS=ON -DBUILD_PARSEC=ON -DBUILD_DPLASMA=OFF -DCMAKE_BUILD_TYPE=Release

Interestingly, BUILD_DPLASMA is flagged by CMake as unused.

More importantly, linking fails:

cd /zhome/academic/HLRS/hlrs/hpcjschu/src/parsec/icldistcomp-parsec-0fd3570cc0c8/build_cray_mpich_cross/parsec && /usr/bin/cmake -E cmake_link_script CMakeFiles/parsec-base.dir/link.txt --verbose=1
"" qc libparsec-base.a  CMakeFiles/parsec-base-obj.dir/class/parsec_dequeue.c.o CMakeFiles/parsec-base-obj.dir/class/parsec_fifo.c.o CMakeFiles/parsec-base-obj.dir/class/parsec_lifo.c.o CMakeFiles/parsec-base-obj.dir/class/parsec_list.c.o CMakeFiles/parsec-base-obj.dir/class/parsec_object.c.o CMakeFiles/parsec-base-obj.dir/class/parsec_value_array.c.o CMakeFiles/parsec-base-obj.dir/class/parsec_hash_table.c.o CMakeFiles/parsec-base-obj.dir/class/parsec_rwlock.c.o CMakeFiles/parsec-base-obj.dir/utils/argv.c.o CMakeFiles/parsec-base-obj.dir/utils/cmd_line.c.o CMakeFiles/parsec-base-obj.dir/utils/colors.c.o CMakeFiles/parsec-base-obj.dir/utils/parsec_environ.c.o CMakeFiles/parsec-base-obj.dir/utils/installdirs.c.o CMakeFiles/parsec-base-obj.dir/utils/keyval_parse.c.o CMakeFiles/parsec-base-obj.dir/utils/mca_param.c.o CMakeFiles/parsec-base-obj.dir/utils/mca_param_cmd_line.c.o CMakeFiles/parsec-base-obj.dir/utils/mca_parse_paramfile.c.o CMakeFiles/parsec-base-obj.dir/utils/os_path.c.o CMakeFiles/parsec-base-obj.dir/utils/output.c.o CMakeFiles/parsec-base-obj.dir/utils/show_help.c.o CMakeFiles/parsec-base-obj.dir/utils/zone_malloc.c.o CMakeFiles/parsec-base-obj.dir/utils/atomic_external.c.o CMakeFiles/parsec-base-obj.dir/utils/debug.c.o CMakeFiles/parsec-base-obj.dir/show_help_lex.l.c.o CMakeFiles/parsec-base-obj.dir/keyval_lex.l.c.o
Error running link command: No such file or directory

Comments (9)

  1. George Bosilca

    DPLASMA should not be built on the first stage, we only need to build the internal libraries needed for the precompiler that will allow us to generate the code.

  2. Thomas Herault

    What CMake version are you using?

    With cmake 3.12.1, I don't get the BUILD_DPLASMA warning

    And more importantly, the linker is properly selected on my machine...

    grep CMAKE_LINKER CMakeCache.txt returns what?

  3. Joseph Schuchart reporter

    I'm using cmake version 3.5.2

    $ grep CMAKE_LINKER CMakeCache.txt
    CMAKE_LINKER:FILEPATH=
    //ADVANCED property for variable: CMAKE_LINKER
    CMAKE_LINKER-ADVANCED:INTERNAL=1
    

    If building regularly (all for the frontend):

    $ grep CMAKE_LINKER CMakeCache.txt
    CMAKE_LINKER:FILEPATH=/usr/bin/ld
    //ADVANCED property for variable: CMAKE_LINKER
    CMAKE_LINKER-ADVANCED:INTERNAL=1
    
  4. Joseph Schuchart reporter

    I tried again with the latest snapshot and could not reproduce the linker error, not sure where it came from. Adapting the build script provided for BlueGene and convincing CMake that this is a cross-compilation build does the trick. Sorry for the noise.

  5. Log in to comment