ornladios / ADIOS

The old ADIOS 1.x code repository. Look for ADIOS2 for new repo
https://csmd.ornl.gov/adios
Other
54 stars 41 forks source link

Can not build on mira #193

Closed khou2020 closed 5 years ago

khou2020 commented 5 years ago

Hi:

I got the following error while building ADIOS (1.13.1) on Mira at ALCF. I am using the gcc wrapper. I did not add any options when running configure. The environment is set according to the user manual: export CC=mpicc export CXX=mpicxx export FC=mpif90 export CFLAGS="-fPIC"

Making install in bpdump make[2]: Entering directory /gpfs/mira-home/khou/adios-1.13.1/utils/bpdump' /bin/sh ../../libtool --tag=CC --mode=link mpicc -fPIC -o bpdump bpdump-bpdump.o ../../src/libadios_nompi.a -lpthread -lm libtool: link: mpicc -fPIC -o bpdump bpdump-bpdump.o ../../src/libadios_nompi.a -lpthread -lm ../../src/libadios_nompi.a(libadios_nompi_a-adios_internals.o): In functioncast_var_data_as_uint64': /gpfs/mira-home/khou/adios-1.13.1/src/core/adios_internals.c:3196: undefined reference to __f128tou64rz' collect2: ld returned 1 exit status make[2]: *** [bpdump] Error 1 make[2]: Leaving directory/gpfs/mira-home/khou/adios-1.13.1/utils/bpdump' make[1]: [install-recursive] Error 1 make[1]: Leaving directory `/gpfs/mira-home/khou/adios-1.13.1/utils' make: [install-recursive] Error 1

pnorbert commented 5 years ago

I have no trouble building it with the gcc environment:

make[3]: Entering directory /gpfs/mira-home/pnorbert/source/adios-1.13.1/build.mira.gcc/utils/bpdump' gcc -DHAVE_CONFIG_H -I. -I../../../utils/bpdump -I../.. -I../../src -I../../src/public -I../../../src -I../../../src/public -I../../../src/core -I../../../src/core/transforms -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -I../../../src/mxml/mxml-2.9 -DZFP -I../../../src/zfp/zfp-0.5.0/inc -D_NOMPI -fPIC -c -o bpdump-bpdump.o test -f 'bpdump.c' || echo '../../../utils/bpdump/'`bpdump.c /bin/sh ../../libtool --tag=CC --mode=link gcc -fPIC -o bpdump bpdump-bpdump.o ../../src/libadios_nompi.a -lm -lrt libtool: link: gcc -fPIC -o bpdump bpdump-bpdump.o ../../src/libadios_nompi.a -lm -lrt

The __f128tou64rz function is in the math library from GNU, if long double is enabled. It looks like your linker may use other compiler than what you compiled the source with and complains it does not have the same function.

[pnorbert@miralac2 build.mira.gcc]$ cat ~/.soft +mpiwrapper-gcc +cmake @default

I just edited the ./runconf file of adios-1.13.1, for the mira section:

elif [ hostname -f | cut -c 1-4 == "mira" -o hostname -f | cut -c 1-5 == "cetus" ]; then #####################

MIRA BlueGene

#####################
echo "Configure on Mira (BlueGene/Q)"
export MPICC=mpicc
export MPIFC=mpif90
export CFLAGS="-fPIC"
export FC=gfortran
export CC=gcc
export FCFLAGS="-funderscoring"

${SRCDIR}/configure --prefix=/home/pnorbert/sw/adios/gcc \
        --disable-maintainer-mode \
        --disable-timers \
        --enable-dependency-tracking \
        --without-datatap --without-infiniband --with-bgq

Maybe the CC/FC has to be set as well to make this work correctly on Mira?

On other note, I suggest to build with --with-bgq and use the MPI_BGQ method for writing files with ADIOS.

On Sun, Feb 24, 2019 at 1:35 AM Kaiyuan Hou notifications@github.com wrote:

Hi:

I got the following error while building ADIOS (1.13.1) on Mira at ALCF. I am using the gcc wrapper. I did not add any options when running configure. The environment is set according to the user manual: export CC=mpicc export CXX=mpicxx export FC=mpif90 export CFLAGS="-fPIC"

Making install in bpdump make[2]: Entering directory /gpfs/mira-home/khou/adios-1.13.1/utils/bpdump' /bin/sh ../../libtool --tag=CC --mode=link mpicc -fPIC -o bpdump bpdump-bpdump.o ../../src/libadios_nompi.a -lpthread -lm libtool: link: mpicc -fPIC -o bpdump bpdump-bpdump.o ../../src/libadios_nompi.a -lpthread -lm ../../src/libadios_nompi.a(libadios_nompi_a-adios_internals.o): In function cast_var_data_as_uint64': /gpfs/mira-home/khou/adios-1.13.1/src/core/adios_internals.c:3196: undefined reference to __f128tou64rz' collect2: ld returned 1 exit status make[2]: [bpdump] Error 1 make[2]: Leaving directory /gpfs/mira-home/khou/adios-1.13.1/utils/bpdump' make[1]: [install-recursive] Error 1 make[1]: Leaving directory `/gpfs/mira-home/khou/adios-1.13.1/utils' make: *** [install-recursive] Error 1

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS/issues/193, or mute the thread https://github.com/notifications/unsubscribe-auth/ADGMLc9Q3wZYRDgz-h5uyA3421uGIWKxks5vQjLNgaJpZM4bOXtu .