[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

request for help: petsc 3.7 FTBFS on arm64 (openmpi shared library support?)



Dear arm64 porters, petsc 3.7 (in experimental) fails to build on arm64
(the previous version petsc 3.6 built fine).

The log is 
https://buildd.debian.org/status/fetch.php?pkg=petsc&arch=arm64&ver=3.7.2.dfsg1-1exp1&stamp=1467423533

with an error during the configuration when testing MPI (configureMPIEXEC):

Executing: mpicc -c -o /tmp/petsc-NEf0Qb/config.packages.MPI/conftest.o -I/tmp/petsc-NEf0Qb/config.setCompilers -I/tmp/petsc-NEf0Qb/config.utilities.closure -I/tmp/petsc-NEf0Qb/config.compilers -I/tmp/petsc-NEf0Qb/config.headers -I/tmp/petsc-NEf0Qb/config.utilities.cacheDetails -I/tmp/petsc-NEf0Qb/config.atomics -I/tmp/petsc-NEf0Qb/config.libraries -I/tmp/petsc-NEf0Qb/config.functions -I/tmp/petsc-NEf0Qb/config.utilities.featureTestMacros -I/tmp/petsc-NEf0Qb/config.utilities.missing -I/tmp/petsc-NEf0Qb/config.packages.MPI -I/tmp/petsc-NEf0Qb/config.types -g -O2 -fstack-protector-strong -Wformat -Werror=format-security   -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi/opal/mca/event/libevent2021/libevent -I/usr/lib/openmpi/include/openmpi/opal/mca/event/libevent2021/libevent/include -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi /tmp/petsc-NEf0Qb/config.packages.MPI/conftest.c 
Successful compile:
...
Executing: mpicxx  -o /tmp/petsc-NEf0Qb/config.packages.MPI/libconftest.so -Wl,-z,relro -shared /tmp/petsc-NEf0Qb/config.packages.MPI/conftest.o    -L/usr/lib/openmpi/lib -L/usr/lib/gcc/aarch64-linux-gnu/5 -L/usr/lib/aarch64-linux-gnu -L/lib/aarch64-linux-gnu -L/usr/lib/aarch64-linux-gnu -ldl -L/usr/lib/openmpi/lib -lmpi -lgcc_s -lpthread -ldl 
Possible ERROR while running linker: exit code 256
stderr:
/usr/bin/ld: /tmp/petsc-NEf0Qb/config.packages.MPI/conftest.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against external symbol `__stack_chk_guard@@GLIBC_2.17' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/petsc-NEf0Qb/config.packages.MPI/conftest.o(.text+0xc): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `__stack_chk_guard@@GLIBC_2.17'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
*******************************************************************************
         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for details):
-------------------------------------------------------------------------------
Shared libraries cannot be built using MPI provided.
Either rebuild with --with-shared-libraries=0 or rebuild MPI with shared library support
*******************************************************************************


The failing test command uses mpicxx with no -fPIC flag.  By contrast,
the amd64 build of petsc 3.7 at this point (linking conftest.o into
libconftest.so) uses mpicc not mpicxx, and does add -fPIC.

Could openmpi have been configured differently on arm64 compared to
amd64, that it might have lost shared library support?

Any other thoughts on what is wrong?

Drew



Reply to: