MPI-Dortmund / cryolo

cryolo documentation
8 stars 0 forks source link

issue with compiling a recent glibc (>= 2.29) #8

Closed gitgyj closed 2 years ago

gitgyj commented 2 years ago

I installed cryolo (GPU11) with conda, everything is successful. And then running into the trouble of glibc. I followed the troubleshooting directions, but couldn't finish because of the error "make: *** No targets specified and no makefile found. Stop." after running $ make -j 8.

thorstenwagner commented 2 years ago

Seems that something in between went wrong. But its hard to tell without the complete output.

Can you repeat it and put a >> out.txt behind each command and send us the final out.txt ?

Maybe @wlugmayr knows directly what could have happened?

gitgyj commented 2 years ago

(base) [corbettlab@localhost build]$ ../configure --prefix=/opt/glibc-2.34 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for gcc... gcc 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 readelf... readelf checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking whether g++ can link programs... no checking for sysdeps preconfigure fragments... aarch64 alpha arc arm csky hppa i386 m68k microblaze checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E mips nios2 powerpc riscv s390 sh checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... (cached) /usr/bin/grep -E sparc x86_64 checking whether gcc compiles in -mx32 mode by default... no

checking for use of fpu sysdeps directories... yes checking for -fstack-protector... yes checking for -fstack-protector-strong... yes checking for -fstack-protector-all... yes checking for assembler and linker STT_GNU_IFUNC support... yes checking for gcc attribute ifunc support... yes checking whether the linker supports textrels along with ifunc... yes checking for GNU attribute retain support... no checking if compiler warns about alias for function with incompatible types... no checking sysdep dirs... sysdeps/unix/sysv/linux/x86_64/64 sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/x86 sysdeps/x86/nptl sysdeps/unix/sysv/linux/wordsize-64 sysdeps/x86_64/nptl sysdeps/unix/sysv/linux sysdeps/nptl sysdeps/pthread sysdeps/gnu sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/x86_64 sysdeps/unix sysdeps/posix sysdeps/x86_64/64 sysdeps/x86_64/fpu/multiarch sysdeps/x86_64/fpu sysdeps/x86/fpu sysdeps/x86_64/multiarch sysdeps/x86_64 sysdeps/x86 sysdeps/ieee754/float128 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/wordsize-64 sysdeps/ieee754 sysdeps/generic checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether as is GNU as... yes checking whether ld is GNU ld... yes checking for as... as checking version of as... 2.27, ok checking for ld... ld checking version of ld... 2.27, ok checking for gnumake... no checking for gmake... gmake checking version of gmake... 3.82, bad checking for gnumsgfmt... no checking for gmsgfmt... no checking for msgfmt... msgfmt checking version of msgfmt... 0.19.8.1, ok checking for makeinfo... no checking for sed... sed checking version of sed... 4.2.2, ok checking for gawk... gawk checking version of gawk... 4.0.2, ok checking for bison... bison checking version of bison... 3.0.4, ok checking if gcc is sufficient to build libc... no checking for nm... nm checking for python3... python3 checking version of python3... 3.8.8, ok configure: error: These critical programs are missing or too old: make compiler Check the INSTALL file for required versions. (base) [corbettlab@localhost build]$ make -j 8 make: *** No targets specified and no makefile found. Stop. (base) [corbettlab@localhost build]$

thorstenwagner commented 2 years ago

your gcc version seems to be too old to build build the latest glibc. Can you try to build glibc 2.29? Could you type gcc --version and tell us your current version?

gitgyj commented 2 years ago

Thanks for the quick update! gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) It does look like very old. How to build glibc 2.29? or would updating gcc versions mess up with other installed programs?

thorstenwagner commented 2 years ago

For 2.29: Just replace the path at the beginning with http://ftp.gnu.org/gnu/libc/glibc-2.29.tar.xz and change the following paths accordingly.

I don't know how much your setup is dependent on this old gcc version. But I wouldnt expect that this gonna be a problem. Is there a system administrator you can ask?

gitgyj commented 2 years ago

Thanks! current gcc is not compatible with 2.29 either. I would have to update the gcc version.

thorstenwagner commented 2 years ago

I think it should be possible to have multiple gcc version installed on one system. But I'm not a server administrator, so don't rely on that.

thorstenwagner commented 2 years ago

Any progress regarding this problem?

wlugmayr commented 2 years ago

hi,

here at desy the used cluster is still on centos7 (gcc 4.8.5). when we had newer hardware openmpi had a problem with the libucx and this hardware so. also newer cryoem software does not compile with gcc4 anymore.

i do not have root access (there are repositories which install different gcc versions in /opt). so i recompiled gcc and its dependencies and installed it in a different path, just to be compatible with the centos8/archlinux/whatever? will be the upgrade os.

we use environment modules and all my software loads this when loading the specific software (like relion, ...) $ module show deps/gcc8-openmpi4-cuda10


/beegfs/cssb/software/modulefiles/emtools/deps/gcc8-openmpi4-cuda10:

module-whatis CSSB development software module load cuda/10.2 prepend-path PATH /beegfs/cssb/software/devel/gcc/8.4.0/bin prepend-path PATH /beegfs/cssb/software/devel/openmpi/4.0.3/bin prepend-path LD_LIBRARY_PATH /beegfs/cssb/software/devel/openmpi/4.0.3/lib prepend-path LD_LIBRARY_PATH /beegfs/cssb/software/devel/ucx/1.8.0/lib prepend-path LD_LIBRARY_PATH /beegfs/cssb/software/devel/hwloc/2.1.0/lib prepend-path LD_LIBRARY_PATH /beegfs/cssb/software/devel/mpfr/3.1.4/lib prepend-path LD_LIBRARY_PATH /beegfs/cssb/software/devel/mpc/1.0.3/lib prepend-path LD_LIBRARY_PATH /beegfs/cssb/software/devel/gcc/8.4.0/lib64


here are my build notes (gcc only). i think this gcc version comes with a sufficient libc for cryolo 1.8.

GCC 8.4 =======

gmp 6.0.0 part of redhat

cd gmp-6.1.0

./configure --prefix=/beegfs/cssb/software/devel/gmp/6.1.0

cd mpfr-3.1.4 ./configure --prefix=/beegfs/cssb/software/devel/mpfr/3.1.4 cd mpc-1.0.3 ./configure --prefix=/beegfs/cssb/software/devel/mpc/1.0.3 --with-mpfr=/beegfs/cssb/software/devel/mpfr/3.1.4

cd gcc-8.4.0 ./configure --disable-multilib --prefix=/beegfs/cssb/software/devel/gcc/8.4.0 --with-mpfr=/beegfs/cssb/software/devel/mpfr/3.1.4 --with-mpc=/beegfs/cssb/software/devel/mpc/1.0.3

hope this helps.

cheers, wolfgang

From: "Thorsten Wagner" @.> To: "MPI-Dortmund/cryolo" @.> Cc: "Wolfgang Lugmayr" @.>, "Mention" @.> Sent: Tuesday, 4 January, 2022 12:31:32 Subject: Re: [MPI-Dortmund/cryolo] issue with compiling a recent glibc (>= 2.29) (Issue #8)

Any progress regarding this problem?

— Reply to this email directly, [ https://github.com/MPI-Dortmund/cryolo/issues/8#issuecomment-1004732246 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AWXQRU6JHRZ3U2HEEBL2DG3UULLBJANCNFSM5KQ3VDNA | unsubscribe ] . Triage notifications on the go with GitHub Mobile for [ https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 | iOS ] or [ https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub | Android ] . You are receiving this because you were mentioned. Message ID: @.***>

truatpasteurdotfr commented 2 years ago

Would there be any interest in providing a singularity container for cryolo-cuda10 and cryolo-cuda11? At the moment the containers are built by not yet tested... And under what license would be acceptable to put the artefacts/recipes?

thorstenwagner commented 2 years ago

@truatpasteurdotfr Yes, in principle I would be interested. Its just a question of time :-) Who did build the containers? I think https://cosmic-cryoem.org/ also have build some contains, but I don't know if they are freely available.

License wise it would be the same as crYOLO (free for academic use, see https://cryolo.readthedocs.io/en/stable/other/license.html )

I'm in vacation so my reaction might be slow. Moreover, can you open a new issue for the singularity container? I think this glibc issue is solved.