Skip to content

Compiling using Cray compilers #11

@LadaF

Description

@LadaF

I have problems compiling the library using the Cray compiler. It is first detected to be a gcc compiler and then the configure has troubles finding the correct flags and options.

I was able to fix the unknown flag for extending the line width in Fortran by supplying -N 255 in FCFLAGS.

However, the configure than tries to link a C program with a Fortran object with -lgfortran, which fails.

The actual way how to link them with Cray is just

  ftn sub.f90 -c -o sub.o
  cc sub.o main.c

The configure fails in this step:

 configure: error: linking to Fortran libraries from C fails
 See `config.log' for more details.

and config.log contains several variations to

    configure:6540: checking for dummy main to link with Fortran libraries
    configure:6574: cc -o conftest -g   conftest.c   -L/opt/cray/cce/8.3.7/CC/x86-64/lib/x86-64 -L/opt/gcc/4.8.1/snos/lib64 /opt/cray/cce/8.3.7/craylibs/x86-64/libmodules.a /opt/cray/cce/8.3.7/craylibs/x86-64/libomp.a
    /opt/cray/cce/8.3.7/craylibs/x86-64/libopenacc.a -L/opt/cray/fftw/3.3.4.1/sandybridge/lib -L/opt/cray/dmapp/default/lib64 -L/opt/cray/mpt/7.1.1/gni/mpich2-cray/83/lib -L/opt/cray/libsci/13.0.1/CRAY/83/sandybridge
    /lib -L/opt/cray/rca/1.0.0-2.0501.48090.7.46.ari/lib64 -L/opt/cray/alps/5.1.1-2.0501.8507.1.1.ari/lib64 -L/opt/cray/xpmem/0.1-2.0501.48424.3.3.ari/lib64 -L/opt/cray/dmapp/7.0.1-1.0501.8315.8.4.ari/lib64 -L/opt/cra
    y/pmi/5.0.6-1.0000.10439.140.2.ari/lib64 -L/opt/cray/ugni/5.0-1.0501.8253.10.22.ari/lib64 -L/opt/cray/udreg/2.3.2-1.0501.7914.1.13.ari/lib64 -L/opt/cray/atp/1.7.5/lib -L/opt/cray/cce/8.3.7/craylibs/x86-64 -L/opt/c
    ray/wlm_detect/1.0-1.0501.47908.2.2.ari/lib64 -lfftw3f_mpi -lfftw3f_threads -lfftw3f -lfftw3_mpi -lfftw3_threads -lfftw3 -lAtpSigHandler -lAtpSigHCommData -lsci_cray_mpi_mp -lsci_cray_mp -lmpichf90_cray -lmpich_cr
    ay -lpgas-dmapp -lcray-c++-rts -lcraystdc++ -lxpmem -ldmapp -lpmi -ludreg -lalpslli -lalpsutil -lrca -lwlm_detect -lugni -lomp -lcraymp -lmodules -lfi -lf -lpthread -lcraymath -lm -lgfortran -lquadmath -lu -lrt -l
    csup -ltcmalloc_minimal -lstdc++ -L/opt/gcc/4.8.1/snos/lib/gcc/x86_64-suse-linux/4.8.1 -L/opt/cray/cce/8.3.7/cray-binutils/x86_64-unknown-linux-gnu/lib -L//usr/lib64 >&5
    CC-1254 craycc: WARNING 
      The environment variable "CPATH" is not supported.


    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o):(.bss+0x13): multiple definition of `FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead::FLAGS_tcmalloc_abort_on_large_alloc'
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o):(.bss+0x13): first defined here
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o): In function `TCMallocImplementation::GetAllocatedSize(void*)':
    tcmalloc.cc:(.text+0x1f0): multiple definition of `TCMallocImplementation::GetAllocatedSize(void*)'
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o):tcmalloc.cc:(.text+0x1f0): first defined here
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o): In function `TCMallocImplementation::MarkThreadBusy()':
    tcmalloc.cc:(.text+0xe40): multiple definition of `TCMallocImplementation::MarkThreadBusy()'
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o):tcmalloc.cc:(.text+0xe40): first defined here
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o):(.bss+0x11): multiple definition of `FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead::FLAGS_tcmalloc_pad_cacheline'
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o):(.bss+0x11): first defined here
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o): In function `tc_version':
    tcmalloc.cc:(.text+0x4e40): multiple definition of `tc_version'
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o):tcmalloc.cc:(.text+0x4e40): first defined here
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o): In function `tc_set_new_mode':
    tcmalloc.cc:(.text+0x4e70): multiple definition of `tc_set_new_mode'
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o):tcmalloc.cc:(.text+0x4e70): first defined here
    /opt/cray/cce/8.3.7/craylibs/x86-64/libtcmalloc_minimal.a(tcmalloc.o): In function `tc_malloc':

How to fix the configure to accept the Cray compilers?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions