Re: openmx3.7 installation on Cygwin? ( No.1 ) |
- Date: 2013/08/31 16:39
- Name: K. Kachrimanis
- Continueing the efforts to compile openmx3.7 on Cygwin (x86 32 bit version), the dependencies have been resolved by compiling libfftw3 and libesmtp from source. Compiling with the following settings:
CC = mpicc -Dnoomp -O3 -Dnosse -I/usr/include FC = mpif90 -Dnoomp -O3 -I/usr/include LIB = -L/lib -lfftw3 -llapack -lblas -static
the compiler proceeeds with the creation of the .o files, however there is a series of "undefined references" message, and the linker fails. Here is a copy of the errors:
openmx.o:openmx.c:(.text.startup+0x180): undefined reference to `omp_set_num_threads' truncation.o:truncation.c:(.text+0x29b): undefined reference to `omp_get_thread_num' truncation.o:truncation.c:(.text+0x2a2): undefined reference to `omp_get_num_threads' truncation.o:truncation.c:(.text+0x2b1): undefined reference to `omp_get_num_procs' truncation.o:truncation.c:(.text+0x6bb): undefined reference to `omp_get_thread_num' truncation.o:truncation.c:(.text+0x6c2): undefined reference to `omp_get_num_threads' truncation.o:truncation.c:(.text+0x6ce): undefined reference to `omp_get_num_procs' truncation.o:truncation.c:(.text+0x4cfc): undefined reference to `omp_get_thread_num' truncation.o:truncation.c:(.text+0x4d08): undefined reference to `omp_get_num_threads' truncation.o:truncation.c:(.text+0x4d14): undefined reference to `omp_get_num_procs' truncation.o:truncation.c:(.text+0x71eb): undefined reference to `omp_get_thread_num' truncation.o:truncation.c:(.text+0x71f2): undefined reference to `omp_get_num_threads' truncation.o:truncation.c:(.text+0x7205): undefined reference to `omp_get_num_procs' truncation.o:truncation.c:(.text+0xa475): undefined reference to `omp_get_thread_num' truncation.o:truncation.c:(.text+0xa483): undefined reference to `omp_get_num_threads' truncation.o:truncation.c:(.text+0xa48c): undefined reference to `omp_get_num_procs' truncation.o:truncation.c:(.text+0xa6e7): undefined reference to `omp_get_thread_num' truncation.o:truncation.c:(.text+0xa6ee): undefined reference to `omp_get_num_threads' truncation.o:truncation.c:(.text+0xa6fa): undefined reference to `omp_get_num_procs' /usr/lib/gcc/i686-pc-cygwin/4.7.3/../../../../i686-pc-cygwin/bin/ld: truncation.o: bad reloc address 0x20 in section `.eh_frame' collect2: error: ld returned 1 exit status makefile:205: recipe for target `openmx' failed make: *** [openmx] Error 1
Are there any suggestions?
|
Re: openmx3.7 installation on Cygwin? ( No.2 ) |
- Date: 2013/09/02 16:17
- Name: T.V.T. Duy <duytvt@jaist.ac.jp>
- Hi,
Please modify CC, FC, and LIB as below and try again.
CC = mpicc -fopenmp -O3 -Dnosse -I/usr/include FC = mpif90 -O3 -I/usr/include LIB = -L/lib -lfftw3 -llapack -lblas -static -lgfortran
Best regards, T.V.T. Duy
|
Re: openmx3.7 installation on Cygwin? ( No.3 ) |
- Date: 2013/09/02 16:58
- Name: K. Kachrimanis
- Dear Dr. Duy,
Thank you for your reply. Unfortunately, this doesn't work. I still receive a long list of undefined references (too long to post here), after the .o files are created. Here is the final error message:
/usr/lib/gcc/i686-pc-cygwin/4.7.3/../../../../i686-pc-cygwin/bin/ld: elpa1.o: bad reloc address 0x20 in section `.eh_frame' collect2: error: ld returned 1 exit status makefile:208: recipe for target `openmx' failed make: *** [openmx] Error 1
Kind Regards,
K.Kachrimanis
|
Re: openmx3.7 installation on Cygwin? ( No.4 ) |
- Date: 2013/09/02 17:13
- Name: T.V.T. Duy <duytvt@jaist.ac.jp>
- Hi,
Please post a few first error messages so that I can figure out the problem.
I used similar settings of CC, FC, and LIB and could compile successfully in cygwin on my computer.
Best regards, T.V.T. Duy
|
Re: openmx3.7 installation on Cygwin? ( No.5 ) |
- Date: 2013/09/02 17:27
- Name: K. Kachrimanis
- Here is the full list of the undefined references:
elpa1.o:elpa1.f90:(.text+0x5a5): undefined reference to `mpi_recv_' elpa1.o:elpa1.f90:(.text+0x695): undefined reference to `mpi_send_' elpa1.o:elpa1.f90:(.text+0x746): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x813): undefined reference to `mpi_sendrecv_replace_' elpa1.o:elpa1.f90:(.text+0x85c): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0xa04): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0xe26): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xe4b): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xe6d): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xe8f): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x1507): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x15b2): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x1763): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x1cf0): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0x1dcd): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x1deb): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x1e0d): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x1e28): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x2484): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x252f): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x26eb): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x2bcd): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0x3201): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x3226): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x324b): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x3270): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x434c): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x4482): undefined reference to `mpi_recv_' elpa1.o:elpa1.f90:(.text+0x454f): undefined reference to `mpi_send_' elpa1.o:elpa1.f90:(.text+0x5912): undefined reference to `mpi_sendrecv_replace_' elpa1.o:elpa1.f90:(.text+0x5e88): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x5f91): undefined reference to `mpi_send_' elpa1.o:elpa1.f90:(.text+0x5fe7): undefined reference to `mpi_recv_' elpa1.o:elpa1.f90:(.text+0x632a): undefined reference to `mpi_send_' elpa1.o:elpa1.f90:(.text+0x63c6): undefined reference to `mpi_send_' elpa1.o:elpa1.f90:(.text+0x6460): undefined reference to `mpi_recv_' elpa1.o:elpa1.f90:(.text+0x655d): undefined reference to `mpi_recv_' elpa1.o:elpa1.f90:(.text+0x6608): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0x67d6): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0x68b6): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x68cd): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x6cdb): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x6daf): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x7045): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x7685): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x76a4): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x76c9): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x76e7): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x7961): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0x839c): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x83c1): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x83e6): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x8404): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x8b0f): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x9054): undefined reference to `mpi_reduce_' elpa1.o:elpa1.f90:(.text+0x952c): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x9551): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x9576): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x959b): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x9bfa): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x9f4e): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0xa1d7): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0xa6a8): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xa6cd): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xa6f2): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xa710): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xadff): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0xb2e9): undefined reference to `mpi_reduce_' elpa1.o:elpa1.f90:(.text+0xb75f): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xb784): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xb7a7): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xb7c5): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xbe58): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0xc197): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0xc3f1): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0xc7a5): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xc7c7): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xc7e5): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xc803): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xca86): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0xce5f): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xce84): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xcea2): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xceb9): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xd62b): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0xd996): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0xdf6a): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0xe02a): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0xe10f): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xe134): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xe152): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xe169): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xe905): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0xecc5): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0xf2d8): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0xf395): undefined reference to `mpi_abort_' elpa1.o:elpa1.f90:(.text+0xf477): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xf495): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xf4b3): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xf4d1): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xf8d5): undefined reference to `mpi_reduce_' elpa1.o:elpa1.f90:(.text+0xfb65): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xfb83): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0xfba8): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0xfbc6): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x10325): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x1086e): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x10986): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x10e92): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x110fd): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x111ad): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x1125d): more undefined references to `mpi_allreduce_' follow elpa1.o:elpa1.f90:(.text+0x1185c): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x11881): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x1189f): undefined reference to `mpi_comm_rank_' elpa1.o:elpa1.f90:(.text+0x118bd): undefined reference to `mpi_comm_size_' elpa1.o:elpa1.f90:(.text+0x12031): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x1218d): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x1223d): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x122ed): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x12392): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x12604): undefined reference to `mpi_bcast_' elpa1.o:elpa1.f90:(.text+0x12bc5): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x12d35): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x134f1): undefined reference to `mpi_allreduce_' elpa1.o:elpa1.f90:(.text+0x13791): undefined reference to `mpi_bcast_' /usr/lib/gcc/i686-pc-cygwin/4.7.3/../../../../i686-pc-cygwin/bin/ld: elpa1.o: bad reloc address 0x20 in section `.eh_frame' collect2: error: ld returned 1 exit status makefile:208: recipe for target `openmx' failed make: *** [openmx] Error 1
|
Re: openmx3.7 installation on Cygwin? ( No.6 ) |
- Date: 2013/09/02 17:41
- Name: T.V.T. Duy <duytvt@jaist.ac.jp>
- These error messages indicate that you need to provide the MPI Fortran library.
If you are using mpich, you will need the library libfmpich in lib of the root folder of mpich. You can add -lfmpich and try again.
LIB = -L/lib -lfftw3 -llapack -lblas -static -lgfortran -lfmpich
|
Re: openmx3.7 installation on Cygwin? ( No.7 ) |
- Date: 2013/09/03 02:07
- Name: K. Kachrimanis
- Dear Dr. Duy,
Thank you very much for the useful instructions. After installing mpich2 (version 3.0.4), openmx compiled normally. I assume it is safe to ignore the following warnings?
liberi-091216/source/eri.c: In function ‘ERI_Overlap’: liberi-091216/source/eri.c:133:5: warning: passing argument 5 of ‘ERI_LL_Overlap_d’ from incompatible pointer type [enabled by default] In file included from liberi-091216/source/eri.c:14:0: liberi-091216/source/eri.h:527:6: note: expected ‘const double **’ but argument is of type ‘double **’ liberi-091216/source/eri.c:133:5: warning: passing argument 7 of ‘ERI_LL_Overlap_d’ from incompatible pointer type [enabled by default] In file included from liberi-091216/source/eri.c:14:0: liberi-091216/source/eri.h:527:6: note: expected ‘const double **’ but argument is of type ‘double **’ liberi-091216/source/eri.c: In function ‘ERI_Integral’: liberi-091216/source/eri.c:229:23: warning: passing argument 3 of ‘ERI_Integral_GL_d’ from incompatible pointer type [enabled by default] In file included from liberi-091216/source/eri.c:14:0: liberi-091216/source/eri.h:571:6: note: expected ‘double (*)[3][2]’ but argument is of type ‘double *’ liberi-091216/source/eri.c:229:23: warning: passing argument 6 of ‘ERI_Integral_GL_d’ from incompatible pointer type [enabled by default] In file included from liberi-091216/source/eri.c:14:0: liberi-091216/source/eri.h:571:6: note: expected ‘const double **’ but argument is of type ‘double **’ liberi-091216/source/eri.c:229:23: warning: passing argument 7 of ‘ERI_Integral_GL_d’ from incompatible pointer type [enabled by default] In file included from liberi-091216/source/eri.c:14:0: liberi-091216/source/eri.h:571:6: note: expected ‘const double **’ but argument is of type ‘double **’
With Kind Regards,
Kyriakos Kachrimanis.
|
Re: openmx3.7 installation on Cygwin? ( No.8 ) |
- Date: 2013/09/03 07:37
- Name: K. Kachrimanis
- I would like to add that I had to recompile mpich2 after configuring with the CPPFLAGS=-DNDEBUG option, in order to make the openmx executable work properly with the examples.
Again, many thanks for your help.
|
Re: openmx3.7 installation on Cygwin? ( No.9 ) |
- Date: 2013/09/03 11:47
- Name: T.V.T. Duy <duytvt@jaist.ac.jp>
- Dear Dr. Kachrimanis,
I am glad to hear that you have successfully compiled and executed OpenMX. I guess you can safely ignore the warnings with liberi.
Best regards, T.V.T. Duy
|