Problems installing crux-1.39...

89 views
Skip to first unread message

Nathan Edwards

unread,
Nov 26, 2012, 3:41:16 PM11/26/12
to crux-...@googlegroups.com
I pulled down the binary version (Linux) of crux and found it requires a more modern version of libc than I have installed.

I'm running CentOS 5.8 (up to date on the 5.x branch) and I get the following errors with either the i686 or x86_64 Linux binary version:

prompt% ./crux
./crux: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./crux)
./crux: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./crux)
./crux: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./crux)

From my search of the CentOS forums this has started to occur with other projects. It appears that this is best remedied by moving to CentOS 6, but a major version number upgrade is a big deal (reinstall) and I'm not (yet) ready to do this. Perhaps a statically linked version would avoid this issue for me and others?

Then I pulled down the source and attempted to compile - with the following results:

/home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/build/virtual-target.jam:1079: in register-actual-name from module virtual-target
error: Duplicate name of actual target: <p/home/********/downloads/crux-1.39.1-Source/src/external/lib>libpwiz_utility_chemistry.a
error: previous virtual target { common%common.copy-libpwiz_utility_chemistry.a.STATIC_LIB { gcc%gcc.archive-libpwiz_utility_chemistry.a.STATIC_LIB { gcc%gcc.compile.c++-Chemistry.o.OBJ { Chemistry.cpp.CPP } } { gcc%gcc.compile.c++-ChemistryData.o.OBJ { ChemistryData.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeCalculator.o.OBJ { IsotopeCalculator.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeEnvelopeEstimator.o.OBJ { IsotopeEnvelopeEstimator.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeTable.o.OBJ { IsotopeTable.cpp.CPP } } { gcc%gcc.compile.c++-MZTolerance.o.OBJ { MZTolerance.cpp.CPP } } } }
error: created from ./install-pwiz-lib-lib-static
error: another virtual target { common%common.copy-libpwiz_utility_chemistry.a.STATIC_LIB { gcc%gcc.archive-libpwiz_utility_chemistry.a.STATIC_LIB { gcc%gcc.compile.c++-Chemistry.o.OBJ { Chemistry.cpp.CPP } } { gcc%gcc.compile.c++-ChemistryData.o.OBJ { ChemistryData.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeCalculator.o.OBJ { IsotopeCalculator.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeEnvelopeEstimator.o.OBJ { IsotopeEnvelopeEstimator.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeTable.o.OBJ { IsotopeTable.cpp.CPP } } { gcc%gcc.compile.c++-MZTolerance.o.OBJ { MZTolerance.cpp.CPP } } } }
error: created from ./install-pwiz-lib-lib-static
error: added properties: <library>object(file-target)@2334 <library>object(file-target)@2349 <runtime-link>shared
error: removed properties: <library>object(file-target)@900 <library>object(file-target)@923 <runtime-link>static
/home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/build/virtual-target.jam:490: in actualize-no-scanner from module object(file-target)@5660
/home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/build/virtual-target.jam:135: in actualize from module object(file-target)@5660
/home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/build-system.jam:749: in load from module build-system
/home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/kernel/modules.jam:283: in import from module modules
/home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/kernel/bootstrap.jam:142: in boost-build from module
/home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/boost-build.jam:8: in module scope from module

At least one pwiz target failed to build.
make[2]: *** [src/external/build/src/ProteoWizard-stamp/ProteoWizard-build] Error 1
make[1]: *** [src/external/CMakeFiles/ProteoWizard.dir/all] Error 2
make: *** [all] Error 2

I'm stuck. Any ideas?

Thanks,

- n

Charles Grant

unread,
Nov 26, 2012, 4:45:38 PM11/26/12
to Nathan Edwards, crux-...@googlegroups.com
Hi Nathan,

On Nov 26, 2012, at 12:41 PM, Nathan Edwards <edwa...@gmail.com> wrote:

> I pulled down the binary version (Linux) of crux and found it requires a more modern version of libc than I have installed.
>
> I'm running CentOS 5.8 (up to date on the 5.x branch) and I get the following errors with either the i686 or x86_64 Linux binary version:
>
> prompt% ./crux
> ./crux: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./crux)
> ./crux: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./crux)
> ./crux: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./crux)
>
> From my search of the CentOS forums this has started to occur with other projects. It appears that this is best remedied by moving to CentOS 6, but a major version number upgrade is a big deal (reinstall) and I'm not (yet) ready to do this. Perhaps a statically linked version would avoid this issue for me and others?
>

We do try to statically link as much as we can, but it turns that getting a C++ program to include statically linked copies of stdc++ and glibc, is getting trickier and trickier. There are also intellectual property issues in statically linking glibc (see http://lwn.net/Articles/117972/).

We'll keep looking at this, but I'm not optimistic that we'll be able to provide a version of Crux that is statically linked to all the required libraries.


> Then I pulled down the source and attempted to compile - with the following results:
>
> /home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/build/virtual-target.jam:1079: in register-actual-name from module virtual-target
> error: Duplicate name of actual target: <p/home/********/downloads/crux-1.39.1-Source/src/external/lib>libpwiz_utility_chemistry.a
> error: previous virtual target { common%common.copy-libpwiz_utility_chemistry.a.STATIC_LIB { gcc%gcc.archive-libpwiz_utility_chemistry.a.STATIC_LIB { gcc%gcc.compile.c++-Chemistry.o.OBJ { Chemistry.cpp.CPP } } { gcc%gcc.compile.c++-ChemistryData.o.OBJ { ChemistryData.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeCalculator.o.OBJ { IsotopeCalculator.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeEnvelopeEstimator.o.OBJ { IsotopeEnvelopeEstimator.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeTable.o.OBJ { IsotopeTable.cpp.CPP } } { gcc%gcc.compile.c++-MZTolerance.o.OBJ { MZTolerance.cpp.CPP } } } }
> error: created from ./install-pwiz-lib-lib-static
> error: another virtual target { common%common.copy-libpwiz_utility_chemistry.a.STATIC_LIB { gcc%gcc.archive-libpwiz_utility_chemistry.a.STATIC_LIB { gcc%gcc.compile.c++-Chemistry.o.OBJ { Chemistry.cpp.CPP } } { gcc%gcc.compile.c++-ChemistryData.o.OBJ { ChemistryData.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeCalculator.o.OBJ { IsotopeCalculator.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeEnvelopeEstimator.o.OBJ { IsotopeEnvelopeEstimator.cpp.CPP } } { gcc%gcc.compile.c++-IsotopeTable.o.OBJ { IsotopeTable.cpp.CPP } } { gcc%gcc.compile.c++-MZTolerance.o.OBJ { MZTolerance.cpp.CPP } } } }
> error: created from ./install-pwiz-lib-lib-static
> error: added properties: <library>object(file-target)@2334 <library>object(file-target)@2349 <runtime-link>shared
> error: removed properties: <library>object(file-target)@900 <library>object(file-target)@923 <runtime-link>static
> /home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/build/virtual-target.jam:490: in actualize-no-scanner from module object(file-target)@5660
> /home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/build/virtual-target.jam:135: in actualize from module object(file-target)@5660
> /home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/build-system.jam:749: in load from module build-system
> /home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/kernel/modules.jam:283: in import from module modules
> /home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/kernel/bootstrap.jam:142: in boost-build from module
> /home/********/downloads/crux-1.39.1-Source/src/external/build/src/ProteoWizard/libraries/boost-build/boost-build.jam:8: in module scope from module
>
> At least one pwiz target failed to build.
> make[2]: *** [src/external/build/src/ProteoWizard-stamp/ProteoWizard-build] Error 1
> make[1]: *** [src/external/CMakeFiles/ProteoWizard.dir/all] Error 2
> make: *** [all] Error 2
>
> I'm stuck. Any ideas?
>

Crux now depends on the Proteowizard library, which in turn depends on the Boost 1.43 C++ libraries. It looks like your build is failing during the build of the Boost libraries. Unfortunately as Crux acquires more dependencies, the range of compiler versions that can successfully build Crux will narrow. During our testing we found that we could build Crux with GCC versions 4.2 to 4.7. The full list of compilers that have been tested with Boost 1.43 can be found here: http://www.boost.org/users/history/version_1_43_0.html. If you are running an older version of gcc/g++ there may be no way to avoid upgrading.


Charles

Nathan Edwards

unread,
Nov 26, 2012, 5:44:03 PM11/26/12
to crux-...@googlegroups.com, Nathan Edwards

Hi Charles,

I don't think your analysis of the ProteoWizard issue is correct. Same error with g++44, so not a compiler version issue. It may be some other OS issue, but the error appears to be generated by bjam's attempt to make a library from the compiled files.

- n

Nathan Edwards

unread,
Nov 26, 2012, 5:48:28 PM11/26/12
to crux-...@googlegroups.com, Nathan Edwards

Oh, and further to that point, I've built ProteoWizard on this machine in the last few months (without using g++44).

- n

Charles Grant

unread,
Nov 26, 2012, 8:46:21 PM11/26/12
to Nathan Edwards, crux-...@googlegroups.com
Hi Nathan,

On Nov 26, 2012, at 2:44 PM, Nathan Edwards <edwa...@gmail.com> wrote:

> I don't think your analysis of the ProteoWizard issue is correct. Same error with g++44, so not a compiler version issue. It may be some other OS issue, but the error appears to be generated by bjam's attempt to make a library from the compiled files.


So much for that theory. Do you know which version of Proteowizard you built?

The Crux build runs something like the following commands to build the Proteowizard libraries:

svn co -r 3950 --depth empty \
http://proteowizard.svn.sourceforge.net/svnroot/proteowizard/trunk/pwiz/ pwiz
cd pwiz
svn update --force -r 3950 libraries pwiz Jamroot.jam quickbuild.sh clean.sh
./quickbuild.sh \
--without-binary-msdata \
--layout=system \
--prefix=$HOME/crux/lib \
libraries \
pwiz/data/common//pwiz_data_common \
pwiz/data/identdata//pwiz_data_identdata \
pwiz/data/identdata//pwiz_data_identdata_version \
pwiz/data/msdata//pwiz_data_msdata \
pwiz/data/msdata//pwiz_data_msdata_version \
pwiz/data/proteome//pwiz_data_proteome \
pwiz/utility/chemistry//pwiz_utility_chemistry \
pwiz/utility/minimxml//pwiz_utility_minimxml \
pwiz/utility/misc//pwiz_utility_misc


If you have time could you try running those commands and let us know if that fails as well? (You might need to change the argument to '--prefix' to some suitable directory on your system). I'll also try setting up a VM with CentOS 5.8 and see if we can reproduce the problem at our end.

We appreciate your taking the time to let us know about this problem!


Charles
Reply all
Reply to author
Forward
0 new messages