You are not logged in.

#1 2017-10-22 13:16:08

carmelom
Member
From: Italy
Registered: 2017-10-22
Posts: 3
Website

fftw-mpi installation - stuck on libtools

Hi everybody,
I've recently started working in scientific computation using the xmds suite. Got it from AUR, everything is working fine untill I needed parallelization and MPI and tried installing fftw with mpi support.

Installation gets stuck at the point where libtool is called. I'm posting the output of

yaourt -S fftw-mpi

below.

It detected the presence of conflicting fftw, but afaik removing it beforehand shouldn't affect the compilation. No error message is thrown, it's just that the ./configure stap gets stuck at that point, tracking the process with htop shows 0% CPU usage from then on.

The problem is it definitely not related to MPI: it emerged while installing it via yaourt, but I also tried both
- downloading the snapshot and manually building with makepkg;
- downloading fftw source via asp from the official Arch repos, editing the ./configure flags to add the relevant ones (--enable-mpi) (this is basically the relevant difference between the official and AUR's PKGBUILDs) and manually building;
- manually building the official package with no modifications to its PKGBUILD.
So the fftw package works fine on my system, but I can't recompile it.

My environment (i'm not sure this list is exaustive, thought):
- Kernel version 4.13.7-1
- gcc --version: 7.2.0
- gfortran --version: 7.2.0
(both come from the -multilib packages)
- libtool --version: 2.4.6.40-6ca5

Thank you in advance


==> Downloading fftw-mpi PKGBUILD from AUR...
x .SRCINFO
x PKGBUILD
x fftw.install
fftw-mpi 3.3.6-2  (2017-03-31 15:42)
( Unsupported package: Potentially dangerous ! )
==> Edit PKGBUILD ? [Y/n] ("A" to abort)
==> ------------------------------------
==> n

==> fftw-mpi dependencies:
 - glibc (already installed)
 - bash (already installed)
 - openmpi (already installed)
 - gcc-fortran (already installed) [makedepend]

==> fftw-mpi conflicts:
 - fftw-3.3.6-2

==> Edit fftw.install ? [Y/n] ("A" to abort)
==> ----------------------------------------
==> n

==> Continue building fftw-mpi ? [Y/n]
==> ----------------------------------
==> y

==> Building and installing package
==> Making package: fftw-mpi 3.3.6-2 (Sun Oct 22 14:52:28 CEST 2017)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Downloading fftw-3.3.6-pl2.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4087k  100 4087k    0     0  1362k      0  0:00:03  0:00:03 --:--:-- 1049k
==> Validating source files with sha1sums...
    fftw-3.3.6-pl2.tar.gz ... Passed
==> Extracting sources...
  -> Extracting fftw-3.3.6-pl2.tar.gz with bsdtar
==> Starting build()...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for C compiler vendor... gnu
checking for gcc option to accept ISO C99... none needed
checking for gcc option to accept ISO Standard C... (cached) none needed
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for ocamlbuild... no
checking for mpicc... mpicc
checking for MPI_Init... yes
checking for mpi.h... yes
checking for mpirun... mpirun
checking size of MPI_Fint... 4
checking whether C compiler accepts -msse2... yes
checking for ANSI C header files... (cached) yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking c_asm.h usability... no
checking c_asm.h presence... no
checking for c_asm.h... no
checking intrinsics.h usability... no
checking intrinsics.h presence... no
checking for intrinsics.h... no
checking for stdint.h... (cached) yes
checking mach/mach_time.h usability... no
checking mach/mach_time.h presence... no
checking for mach/mach_time.h... no
checking sys/sysctl.h usability... yes
checking sys/sysctl.h presence... yes
checking for sys/sysctl.h... yes
checking altivec.h usability... no
checking altivec.h presence... no
checking for altivec.h... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for long double... yes
checking for hrtime_t... no
checking size of int... 4
checking size of unsigned int... 4
checking size of long... 8
checking size of unsigned long... 8
checking size of long long... 8
checking size of unsigned long long... 8
checking size of size_t... 8
checking size of ptrdiff_t... 8
checking for uintptr_t... yes
checking size of float... 4
checking size of double... 8
checking size of fftw_r2r_kind... 4
checking for working alloca.h... yes
checking for alloca... yes
checking for working strtod... yes
checking for vprintf... yes
checking for _doprnt... no
checking for sin in -lm... yes
checking for BSDgettimeofday... no
checking for gettimeofday... yes
checking for gethrtime... no
checking for read_real_time... no
checking for time_base_to_time... no
checking for drand48... yes
checking for sqrt... yes
checking for memset... yes
checking for posix_memalign... yes
checking for memalign... yes
checking for _mm_malloc... no
checking for _mm_free... no
checking for clock_gettime... yes
checking for mach_absolute_time... no
checking for sysctl... yes
checking for abort... yes
checking for sinl... yes
checking for cosl... yes
checking for snprintf... yes
checking whether sinl is declared... yes
checking whether cosl is declared... yes
checking whether sinq is declared... no
checking whether cosq is declared... no
checking whether memalign is declared... yes
checking whether drand48 is declared... yes
checking whether srand48 is declared... yes
checking whether posix_memalign is declared... yes
checking for _rtc intrinsic... no
checking for isnan... yes
checking whether C compiler accepts -mpreferred-stack-boundary=4... yes
checking whether the stack is at least 8-byte aligned by gcc... checking whether C compiler accepts -malign-double... yes
yes
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether gfortran accepts -g... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gfortran option to produce PIC... -fPIC
checking if gfortran PIC flag -fPIC works... yes
checking if gfortran static flag -static works... no
checking if gfortran supports -c -o file.o... yes
checking if gfortran supports -c -o file.o... (cached) yes
checking whether the gfortran linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking how to get verbose linking output from gfortran... -v
checking for Fortran 77 libraries of gfortran...  -L/usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/../../.. -lgfortran -lm -lquadmath
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... lower case, underscore, no extra underscore
checking for OpenMP flag of C compiler... -fopenmp
checking for Win32 threads... no
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking whether a cycle counter is available... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating support/Makefile
config.status: creating genfft/Makefile
config.status: creating kernel/Makefile
config.status: creating simd-support/Makefile
config.status: creating dft/Makefile
config.status: creating dft/scalar/Makefile
config.status: creating dft/scalar/codelets/Makefile
config.status: creating dft/simd/Makefile
config.status: creating dft/simd/common/Makefile
config.status: creating dft/simd/sse2/Makefile
config.status: creating dft/simd/avx/Makefile
config.status: creating dft/simd/avx-128-fma/Makefile
config.status: creating dft/simd/avx2/Makefile
config.status: creating dft/simd/avx2-128/Makefile
config.status: creating dft/simd/avx512/Makefile
config.status: creating dft/simd/kcvi/Makefile
config.status: creating dft/simd/altivec/Makefile
config.status: creating dft/simd/vsx/Makefile
config.status: creating dft/simd/neon/Makefile
config.status: creating dft/simd/generic-simd128/Makefile
config.status: creating dft/simd/generic-simd256/Makefile
config.status: creating rdft/Makefile
config.status: creating rdft/scalar/Makefile
config.status: creating rdft/scalar/r2cf/Makefile
config.status: creating rdft/scalar/r2cb/Makefile
config.status: creating rdft/scalar/r2r/Makefile
config.status: creating rdft/simd/Makefile
config.status: creating rdft/simd/common/Makefile
config.status: creating rdft/simd/sse2/Makefile
config.status: creating rdft/simd/avx/Makefile
config.status: creating rdft/simd/avx-128-fma/Makefile
config.status: creating rdft/simd/avx2/Makefile
config.status: creating rdft/simd/avx2-128/Makefile
config.status: creating rdft/simd/avx512/Makefile
config.status: creating rdft/simd/kcvi/Makefile
config.status: creating rdft/simd/altivec/Makefile
config.status: creating rdft/simd/vsx/Makefile
config.status: creating rdft/simd/neon/Makefile
config.status: creating rdft/simd/generic-simd128/Makefile
config.status: creating rdft/simd/generic-simd256/Makefile
config.status: creating reodft/Makefile
config.status: creating threads/Makefile
config.status: creating api/Makefile
config.status: creating mpi/Makefile
config.status: creating libbench2/Makefile
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating doc/FAQ/Makefile
config.status: creating tools/Makefile
config.status: creating tools/fftw_wisdom.1
config.status: creating tools/fftw-wisdom-to-conf
config.status: creating m4/Makefile
config.status: creating fftw.pc
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
^C==> Cleaning up...
==> ERROR: Makepkg was unable to build fftw-mpi.
==> Restart building fftw-mpi ? [y/N]
==> ---------------------------------
==> n

carmelom

Offline

#2 2017-10-22 16:31:53

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,740

Re: fftw-mpi installation - stuck on libtools

I just built it on my system using git clone and makepkg.  No problems; plus I was able to warm my fingers in the exhaust of my cooling fans.

A few things.  Please don't use yaourt.  It is the cause of unlimited woe.  For one thing, it obfuscates what is happening.  For example

Installation gets stuck at the point where libtool is called. I'm posting the output of
yaourt -S fftw-mpi
below.
It detected the presence of conflicting fftw, but afaik removing it beforehand shouldn't affect the compilation. No error message is thrown, it's just that the ./configure stap gets stuck at that point, tracking the process with htop shows 0% CPU usage from then on.

The problem being, it is not installing it when configure is running.  It is (or it should be) making the package in a chroot jail; it could care less what is installed on your system at this point (except if it is a build dependency).

Please, in some place in your users home directory tree, run 

git clone https://aur.archlinux.org/fftw-mpi
cd fftw-mpi
makepkg

and lets see what happens.


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#3 2017-10-22 18:42:50

carmelom
Member
From: Italy
Registered: 2017-10-22
Posts: 3
Website

Re: fftw-mpi installation - stuck on libtools

ewaller wrote:

The problem being, it is not installing it when configure is running.  It is (or it should be) making the package in a chroot jail; it could care less what is installed on your system at this point (except if it is a build dependency).

I don't know if got it right, but is yaourt implicitly working in chroot? This I didn'd know, I assumed it would work the same as doing the manual makepkg / sudo makepkg -i except that the sources, being on /tmp, are just discarded at the end of the day... So thanks for the advice.

Anyway, cloning https://aur.archlinux.org/fftw-mpi it's just the same as clicking "Download snapshot" on the package's webpage on aur and unpacking the .tar.gz. This I had already tried in my home folder, but the configure step just goes the same and stops at that point. Comparing the output of this procedure and the one from yaourt with a diff gave no result - they output the same lines.

I just built it on my system using git clone and makepkg.  No problems; plus I was able to warm my fingers in the exhaust of my cooling fans.

Cool! I was guessing how stressful it could become for the hardware smile

Last edited by carmelom (2017-10-22 18:44:47)


carmelom

Offline

Board footer

Powered by FluxBB