Reputation: 161
On Linux 64, after creating an environment, I installed gfortran with conda install conda-forge::gfortran
. I see that it installed gfortran 14 and gcc 14. Then I installed openmpi with conda install openmpi
, and it installed mpi-1.0.
Commands like which mpirun
and which mpicc
give the locations /bin/mpirun and /bin/mpicc. Looks normal to me.
But when trying to configure FFTW, it fails to compile executable. And I used the following example c code:
#include <stdio.h>
int main() {
int number;
printf("Enter an integer: ");
// reads and stores input
scanf("%d", &number);
// displays output
printf("You entered: %d", number);
return 0;
}
and tried to compile something myself with mpicc printInteger.c
, it gives the following output:
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: warning: libstdc++.so.6, needed by /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73, not found (try using -rpath or -rpath-link)
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::condition_variable()@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__throw_system_error(int)@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::~condition_variable()@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::notify_all()@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__class_type_info@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__once_call@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__once_callable@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__once_proxy@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__gxx_personality_v0@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__dynamic_cast@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
collect2: error: ld returned 1 exit status
The config.log of fftw has similar message when trying to compile a test c code:
configure:4496: mpicc conftest.c >&5
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: warning: libstdc++.so.6, needed by /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73, not found (try using -rpath or -rpath-link)
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::condition_variable()@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__throw_system_error(int)@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::~condition_variable()@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::notify_all()@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__class_type_info@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__once_call@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__once_callable@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__once_proxy@GLIBCXX_3.4.11'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__gxx_personality_v0@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__dynamic_cast@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info@CXXABI_1.3'
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
Reading a few posts here, I tried installing a different set of compilers with conda install conda-forge::compilers
and it installed version 13 of gfortran and gcc, and I can verify that version 13 is currently active, but mpicc compilation still fails.
Anything else I can try? Did I install the wrong version of gfortran/gcc to work with openmpi?
Upvotes: 0
Views: 62
Reputation: 161
The issue is gfortran and gcc version 14 is not compatible or something with FFTW 3.3.10. Downgrading both to version 12.1.0 worked fine.
Upvotes: 1