Skip to content

Pfft does not link itself to fftw3-mpi.so  #40

@LecrisUT

Description

@LecrisUT

For example, the library built from easybuild produces:

$ readelf -d $EBROOTPFFT/lib/libpfft.so

Dynamic section at offset 0x2ed38 contains 30 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libmpi.so.40]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000e (SONAME)             Library soname: [libpfft.so.0]
 0x000000000000001d (RUNPATH)            Library runpath: [/opt/EasyBuild/2022a/software/OpenMPI/4.1.4-GCC-11.3.0/lib:/opt/EasyBuild/2022a/software/hwloc/2.7.1-GCCcore-11.3.0/lib:/opt/EasyBuild/2022a/software/libevent/2.1.12-GCCcore-11.3.0/lib]
 0x000000000000000c (INIT)               0x8000
 0x000000000000000d (FINI)               0x26abc
 0x0000000000000019 (INIT_ARRAY)         0x2fd28
 0x000000000000001b (INIT_ARRAYSZ)       8 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x2fd30
 0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
 0x0000000000000004 (HASH)               0x200
 0x000000006ffffef5 (GNU_HASH)           0xcb0
 0x0000000000000005 (STRTAB)             0x3e40
 0x0000000000000006 (SYMTAB)             0x1710
 0x000000000000000a (STRSZ)              9421 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000003 (PLTGOT)             0x30000
 0x0000000000000002 (PLTRELSZ)           5832 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x68f8
 0x0000000000000007 (RELA)               0x66b8
 0x0000000000000008 (RELASZ)             576 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffe (VERNEED)            0x6658
 0x000000006fffffff (VERNEEDNUM)         2
 0x000000006ffffff0 (VERSYM)             0x630e
 0x000000006ffffff9 (RELACOUNT)          3
 0x0000000000000000 (NULL)               0x0

But pfft itself is calling functions specific to fftw3-mpi.so:

/opt/EasyBuild/2022a/software/binutils/2.38-GCCcore-11.3.0/bin/ld: /opt_buildbot/linux-debian11/sandybridge/EasyBuild/2022a/software/PFFT/1.0.8-alpha-foss-2022a/lib64/libpfft.so: undefined reference to `fftw_mpi_init'
/opt/EasyBuild/2022a/software/binutils/2.38-GCCcore-11.3.0/bin/ld: /opt_buildbot/linux-debian11/sandybridge/EasyBuild/2022a/software/PFFT/1.0.8-alpha-foss-2022a/lib64/libpfft.so: undefined reference to `fftw_mpi_execute_r2r'
/opt/EasyBuild/2022a/software/binutils/2.38-GCCcore-11.3.0/bin/ld: /opt_buildbot/linux-debian11/sandybridge/EasyBuild/2022a/software/PFFT/1.0.8-alpha-foss-2022a/lib64/libpfft.so: undefined reference to `fftw_mpi_plan_many_transpose'
/opt/EasyBuild/2022a/software/binutils/2.38-GCCcore-11.3.0/bin/ld: /opt_buildbot/linux-debian11/sandybridge/EasyBuild/2022a/software/PFFT/1.0.8-alpha-foss-2022a/lib64/libpfft.so: undefined reference to `fftw_mpi_local_size_many_transposed'
/opt/EasyBuild/2022a/software/binutils/2.38-GCCcore-11.3.0/bin/ld: /opt_buildbot/linux-debian11/sandybridge/EasyBuild/2022a/software/PFFT/1.0.8-alpha-foss-2022a/lib64/libpfft.so: undefined reference to `fftw_mpi_cleanup'

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