Giter Site home page Giter Site logo

GLIBC Hell about ambermini HOT 23 CLOSED

choderalab avatar choderalab commented on July 21, 2024
GLIBC Hell

from ambermini.

Comments (23)

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

The exact commands for the build were:

git clone [email protected]:omnia-md/virtual-machines.git
cd virtual-machines/linux/
vagrant up
vagrant ssh

export PATH=$HOME/miniconda/bin:$PATH
sudo yum install gcc-gfortran

git clone https://github.com/omnia-md/conda-recipes.git
cd conda-recipes
conda build ambermini


from ambermini.

rmcgibbo avatar rmcgibbo commented on July 21, 2024

What version of gcc-gfortran did you install? On the VM, after building ambermini, try installing it and then running ldd on one of the shared object files. One of the lines listed should be libc.so.6, and then you can run readelf on that to see what version the symbols are:

e.g.

readelf -Ws /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC

from ambermini.

rmcgibbo avatar rmcgibbo commented on July 21, 2024

Upgrading your compiler toolchain is going to upgrade your libc/libstdc++, which is probably not what you want, given that the point of these VMs is to link against older versions of the symbols.

from ambermini.

rmcgibbo avatar rmcgibbo commented on July 21, 2024

The Version history table here http://en.wikipedia.org/wiki/GNU_C_Library is particularly useful, since it gives you the canonical glibc version for each rhel/debian release.

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

Yeah, I somehow thought I had already this VM set up to work properly...

[vagrant@localhost ~]$ gfortran  -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) 

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

OK, I think the issue is that my VM is now 6.6:

[vagrant@localhost ~]$ cat /etc/centos-release
CentOS release 6.6 (Final)

from ambermini.

rmcgibbo avatar rmcgibbo commented on July 21, 2024

Can you post the output of readelf on the libc.so?

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

https://gist.github.com/kyleabeauchamp/dcd6c82b8ab2b006dc3b

from ambermini.

rmcgibbo avatar rmcgibbo commented on July 21, 2024

Can you also post ldd --version?

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024
[vagrant@localhost ~]$ ldd --version
ldd (GNU libc) 2.12
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

from ambermini.

rmcgibbo avatar rmcgibbo commented on July 21, 2024

And yet the binaries you made on this machine were actually crapping out, saying 'GLIBC_2.14' not found? That doesn't seem right.

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

My bad

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

I think it may have been due to binstar's refusal to overwrite packages during upload. Not sure. Regardless, fixed.

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

No, there actually is something messed up in the current conda package for omnia/ambermini:

cd omniaambermini
# https://binstar.org/omnia/ambermini/14.0.1/download/linux-64/ambermini-14.0.1-0.tar.bz2
tar -jxvf linux-64_ambermini-14.0.1-0.tar.bz2
readelf -Ws  ./bin/parmchk2_pvt |grep GLIBC|grep 14

cd ../kyleambermini
# https://binstar.org/kyleabeauchamp/ambermini/14.0.1/download/linux-64/ambermini-14.0.1-0.tar.bz2
tar -jxvf linux-64_ambermini-14.0.1-0.tar.bz2
readelf -Ws  ./bin/parmchk2_pvt |grep GLIBC|grep 14
kyleb@kyleb-DX4870:~/src/Software/omniambermini$ readelf -Ws  ./bin/parmchk2_pvt |grep GLIBC|grep 14
    14: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND modf@GLIBC_2.2.5 (3)
    29: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND memcpy@GLIBC_2.14 (5)
   140: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND fopen64@@GLIBC_2.2.5
   142: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND memcpy@@GLIBC_2.14
   214: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND fwrite@@GLIBC_2.2.5


kyleb@kyleb-DX4870:~/src/Software/kyleambermini$ readelf -Ws  ./bin/parmchk2_pvt |grep GLIBC|grep 14
    14: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND system@GLIBC_2.2.5 (3)
   141: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND fputs@@GLIBC_2.2.5
   147: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND atoi@@GLIBC_2.2.5

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

If someone else can verify that my new conda package works, I can upload it to the omnia conda repo.

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

Here are some more command lines if people want to do tests on a fresh miniconda:

MINICONDA=Miniconda-latest-Linux-x86_64.sh
wget http://repo.continuum.io/miniconda/$MINICONDA
bash Miniconda-latest-Linux-x86_64.sh
./miniconda/bin/conda install -c https://conda.binstar.org/omnia ambermini


MINICONDA=Miniconda-latest-Linux-x86_64.sh
wget http://repo.continuum.io/miniconda/$MINICONDA
bash Miniconda-latest-Linux-x86_64.sh
./miniconda/bin/conda install -c https://conda.binstar.org/kyleabeauchamp ambermini 

from ambermini.

bas-rustenburg avatar bas-rustenburg commented on July 21, 2024

Tried it.

The Omnia one is broken when I try it on a fresh miniconda install. Kyle's one does work. (Centos 6.4, hal.cbio.mskcc.org)

from ambermini.

jchodera avatar jchodera commented on July 21, 2024

Is this something I can try to automate the building of now?

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

Sure, I have my exact command lines listed near the top of this thread. The gcc-gfortran install should no longer be needed because it's part of the vagrant script now.

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

Any progress on automating this? If not, I will just upload the package that I already built.

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

OK, I uploaded my new package to omnia, so I'm closing the issue now.

https://binstar.org/omnia/ambermini/files

from ambermini.

jchodera avatar jchodera commented on July 21, 2024

@kyleabeauchamp : Can you show me how you built this today? Hoping to automate this too.

from ambermini.

kyleabeauchamp avatar kyleabeauchamp commented on July 21, 2024

Sure. AFAIK, I believe this sequence of commands will finish the entire build chain:

git clone [email protected]:omnia-md/virtual-machines.git
cd virtual-machines/linux/
vagrant up
vagrant ssh

export PATH=$HOME/miniconda/bin:$PATH

git clone https://github.com/omnia-md/conda-recipes.git
cd conda-recipes
conda build ambermini

binstar upload -u omnia  PATH_TO_OUTPUT/ambermini-14.0.1-0.tar.bz2  --force
# You can get the path to the output from reading the output of the conda build.  

from ambermini.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.