Page 1 of 1

Compile SDDS and ELEGANT on CentOS7

Posted: 23 Oct 2018, 04:38
by Qin
Hi,
I am trying to compile sdds and elegant from source on our CentOS 7 based cluster. While I had problem after I type make in SDDS directory. Here is the error message:

Code: Select all

make -C SDDSaps/pseudoInverse install
make[1]: Entering directory `/home/weilun/software/ELEGANT/epics/extensions/src/SDDS/SDDSaps/pseudoInverse'
make -C O.linux-x86_64 -f ../Makefile TOP=../../../../.. \
    T_A=linux-x86_64 install
make[2]: Entering directory `/home/weilun/software/ELEGANT/epics/extensions/src/SDDS/SDDSaps/pseudoInverse/O.linux-x86_64'
/usr/bin/g++ -o sddspseudoinverse  -L/home/weilun/software/ELEGANT/epics/extensions/lib/linux-x86_64 -Wl,-rpath,/home/weilun/software/ELEGANT/epics/extensions/lib/linux-x86_64           -rdynamic -m64            sddspseudoinverse.o    -lmdbcommon -lSDDS1 -lmdblib -lmeschach -llzma  -llapack -lblas -lz -lpthread   -lreadline -lm -lrt -ldl -lgcc
/sw/easybuild/software/Compiler/GCC/4.9.3-binutils-2.25/binutils/2.25/bin/ld: /home/weilun/software/ELEGANT/epics/extensions/lib/linux-x86_64/liblapack.a(xerbla.o):[b] undefined reference to symbol '_gfortran_stop_string@@GFORTRAN_1.0'[/b]
/sw/easybuild/software/Core/GCC/4.9.3-binutils-2.25/lib64/libgfortran.so.3: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [sddspseudoinverse] Error 1
make[2]: Leaving directory `/home/weilun/software/ELEGANT/epics/extensions/src/SDDS/SDDSaps/pseudoInverse/O.linux-x86_64'
make[1]: *** [install.linux-x86_64] Error 2
make[1]: Leaving directory `/home/weilun/software/ELEGANT/epics/extensions/src/SDDS/SDDSaps/pseudoInverse'
make: *** [SDDSaps/pseudoInverse.install] Error 2
make: Leaving directory `/home/weilun/software/ELEGANT/epics/extensions/src/SDDS'
Could you please help me on this? Thanks

Qin

Re: Compile SDDS and ELEGANT on CentOS7

Posted: 23 Oct 2018, 09:21
by soliday
I don't know where your /home/weilun/software/ELEGANT/epics/extensions/lib/linux-x86_64/liblapack.a came from. It is not included in our software. If the LAPACK=1 is set, then that is supposed to mean that the default system version of lapack is installed at /usr/lib64/liblapack.so which comes from
lapack-devel-3.4.2-8.el7.x86_64

The version of lapack that you have appears to be linked to the gfortran library. Try this:

cd /home/weilun/software/ELEGANT/epics/extensions/src/SDDS/SDDSaps/pseudoInverse/O.linux-x86_64

/usr/bin/g++ -o sddspseudoinverse -L/home/weilun/software/ELEGANT/epics/extensions/lib/linux-x86_64 -Wl,-rpath,/home/weilun/software/ELEGANT/epics/extensions/lib/linux-x86_64 -rdynamic -m64 sddspseudoinverse.o -lmdbcommon -lSDDS1 -lmdblib -lmeschach -llzma -llapack -lblas -lgfortran -lz -lpthread -lreadline -lm -lrt -ldl -lgcc

If this works, then it means you needed to add the -lgfortran flag after the -llapack -lblas flags when linking with your version of lapack. If you were using the lapack from /usr/lib64/liblapack.so, then this shouldn't be needed.

Re: Compile SDDS and ELEGANT on CentOS7

Posted: 12 Nov 2021, 11:45
by blanco-garcia
Dear all,
I am compiling SDDS and Elegant from sources to create rpms. I found the following errors at the end of the compilation when lauching "./Build-AOP-RPMs.txt" as a normal user in my home dir. Is there any known way to solve these errors ?

At the end, I'm interested in creating modules, is there any example script to follow ?

Code: Select all

$ ./Build-AOP-RPMs.txt
...
make[1]: Leaving directory `/home/o/progs/module/elegant/oagsoftware/oag/apps/src/tcltklib/O.linux-x86_64'
Building SDDS RPM package. This may take a minute.
Building target platforms: x86_64
Building for target x86_64
install: cannot stat 'mpl_motif': No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.3x0Bie (%install)
    Bad exit status from /var/tmp/rpm-tmp.3x0Bie (%install)
New RPM file in ~/rpmbuild/RPMS/x86_64
Cleaning up
Building SDDS DEV RPM package. This may take a minute.
Building target platforms: x86_64
Building for target x86_64
install: cannot stat 'base.h': No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.KNK1Nc (%install)
    Bad exit status from /var/tmp/rpm-tmp.KNK1Nc (%install)
New RPM file in ~/rpmbuild/RPMS/x86_64
Cleaning up
Building Elegant RPM package. This may take a minute.
Building target platforms: x86_64
Building for target x86_64
install: cannot stat 'abrat': No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.5BhgPA (%install)
    Bad exit status from /var/tmp/rpm-tmp.5BhgPA (%install)
New RPM file in ~/rpmbuild/RPMS/x86_64
Cleaning up
Building OAG Tcl/Tk RPM package. This may take a minute.
Building target platforms: x86_64
Building for target x86_64
New RPM file in ~/rpmbuild/RPMS/x86_64
Cleaning up
Done
Best regards,
o

Re: Compile SDDS and ELEGANT on CentOS7

Posted: 12 Nov 2021, 12:56
by soliday
What version of linux are you using?

Re: Compile SDDS and ELEGANT on CentOS7

Posted: 12 Nov 2021, 13:02
by soliday
When running it as a normal user, you will not be able to install any required system development packages. This error is probably from some of the required packages being missing.

The list of packages it looks for are: tcl wget subversion gzip tar make rpmdevtools rpm-build gcc gcc-c++ gcc-gfortran zlib-devel gd-devel libpng-devel libtiff-devel lapack-devel blas-devel gsl-devel openmotif-devel motif-devel libXaw-devel ncurses-devel readline-devel libXt-devel libXp-devel tcl-devel tk-devel tcsh python-devel tktable hdf5-devel

Re: Compile SDDS and ELEGANT on CentOS7

Posted: 15 Nov 2021, 10:37
by blanco-garcia
Dear Soliday,

thank you very much. There were indeed some missing libraries. I am working on CentOS 7, trying to get Elegant and Pelegant to be modules.

Best regards,
o