Numerous problems when building PyRosetta from source – issues linking clang 5.1

Member Site Forums PyRosetta PyRosetta – Build/Install Numerous problems when building PyRosetta from source – issues linking clang 5.1

Viewing 2 reply threads
  • Author
    • #1877

        I’m running a Mac 10.9 64Bit system, and I’m trying to build it against a homebrewed install of Python 2.7.6. I’m using the 2014wk05 rosetta bundle.

        clang –version
        Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
        Target: x86_64-apple-darwin13.1.0
        Thread model: posix

        There have been several issues along the way, which have been addressed in a different thread ( but it seemed it would be more appropriate to move the discussion here.

        I found that when using clang to compile PyRosetta, there were multiple points at which the compiler was expecting clang version 5.0 when the current version is 5.1 – specifically, it’s looking for a bunch of lib files in build/src/pyrosetta/macos/10.9/64/x86/clang/5.0/default/ when the actual directory tree uses 5.1 instead of 5.0. To illustrate, here’s the error that it returns when it tries to link libmini.dylib:

        Linking mini lib…
        cd /Users/juliaudell/Downloads/rosetta_2014wk05_bundle/main/source && cd build/src/pyrosetta/macos/10.9/64/x86/clang/5.0/default/ && gcc -dynamiclib -Xlinker -headerpad_max_install_names
        … [long list of .os files]
        -lz -lstdc++ -o /Users/juliaudell/Downloads/rosetta_2014wk05_bundle/main/source/src/python/bindings/rosetta/libmini.dylib
        it gives the error
        /bin/sh: line 0: cd: build/src/pyrosetta/macos/10.9/64/x86/clang/5.0/default/: No such file or directory

        Furthermore it looks like the clang version is hard coded in, line 684:
        elif platform.release()[:2] == ’13’: lib_path = ‘build/src/’+mode+’/macos/10.9/64/x86/clang/’; version_add_on = ‘5.0/default/’
        lib_path = lib_path += version_add_on

        Using -I/ and -L/ doesn’t help things, and while I can include a flag for a different compiler, there doesn’t appear to be a way to flag for the version.

        Changing the version number in the version_add_on variable yields a whole slew of “symbols not found for architecture x86_64” errors, attached here.

        Where do I go from here?

      • #9993

          I’ll forward your question to Sergey, he should be able to help. But, in the meantime, why not use the precompiled binaries for lion/mountain lion (the snow leopard binaries will not work). I havn’t had any issues using them after the upgrade to mavericks. Are they not working for you?

        • #10023

            Regarding your build errors: it looks like you trying to use clang for rebuild. New clang came with new std lib which is not very compatible yet. Solution for this is to rebuild with GCC (you need GCC away to run gccxml). Please check what output you get when running ‘gcc -v’ because by default Xcode replace gcc with symlink to clang.

          • #9994

              Thank you for passing my question along.

              I have the precompiled binaries for lion, but I can’t get them to import. When I run “import rosetta” this is what I get:

              ImportError: dlopen(/Users/juliaudell/Documents/PythonProjects/PyRosetta.MacOSX.Lion.64Bit.release-r8/rosetta/utility/, 2): Library not loaded: rosetta/libmini.dylib
              Referenced from: /Users/juliaudell/Documents/PythonProjects/PyRosetta.MacOSX.Lion.64Bit.release-r8/rosetta/utility/
              Reason: image not found

              If I can circumvent this error then I’d be happy to start playing with the precompiled version.

            • #9996

                Have you ran

              • #10021

                  Did you copy libboost* to src/python/bindings/ dir? The error is basically saying that one of the dynamic lib is missing etc.

                • #10019

                    Apparently not. I found the issue – I was trying to run through Eclipse, which doesn’t work because it modifies the bash environment options. It now runs fine (as far as I can tell) when launched from the native python.

                  • #10022

                      Also, pre-compiled binaries will only work on Apple-Python. So if you replace your default python you need to ether restore it or just run the right executable. Try ‘which python’ to see what interpreter you using. If you want to use other python binaries (say from MacPorts or Homebrew then you absolutely need to rebuild PyRosetta and use that other Python interpreter and insure that it have dynamic lib.

                  Viewing 2 reply threads
                  • You must be logged in to reply to this topic.