KeyError: “Unknown version number 4.7 for compiler ‘gcc’” on Fedora 17

Member Site Forums Rosetta 3 Rosetta 3 – Build/Install KeyError: “Unknown version number 4.7 for compiler ‘gcc'” on Fedora 17

Viewing 4 reply threads
  • Author
    • #1385


        I am trying to compile Rosetta 3.4 on Fedora 17 but I get the following error:

        $ python bin mode=release
        scons: Reading SConscript files …
        Traceback (most recent call last):
        File “/home/thomas/Programs/Rosetta3.4/rosetta_source/SConstruct”, line 141, in main
        build = SConscript(“tools/build/”)
        File “/home/thomas/Programs/Rosetta3.4/rosetta_source/external/scons-local/scons-local-2.0.1/SCons/Script/”, line 614, in __call__
        return method(*args, **kw)
        File “/home/thomas/Programs/Rosetta3.4/rosetta_source/external/scons-local/scons-local-2.0.1/SCons/Script/”, line 551, in SConscript
        return _SConscript(self.fs, *files, **subst_kw)
        File “/home/thomas/Programs/Rosetta3.4/rosetta_source/external/scons-local/scons-local-2.0.1/SCons/Script/”, line 260, in _SConscript
        exec _file_ in call_stack[-1].globals
        File “/home/thomas/Programs/Rosetta3.4/rosetta_source/tools/build/”, line 414, in
        build = setup()
        File “/home/thomas/Programs/Rosetta3.4/rosetta_source/tools/build/”, line 405, in setup
        build.options_requested, build.options = setup_build_options()
        File “/home/thomas/Programs/Rosetta3.4/rosetta_source/tools/build/”, line 108, in setup_build_options
        supported, actual.cxx, requested.cxx_ver
        File “/home/thomas/Programs/Rosetta3.4/rosetta_source/tools/build/”, line 83, in select_compiler_version
        (actual, compiler)
        KeyError: “Unknown version number 4.7 for compiler ‘gcc'”
        scons: done reading SConscript files.
        scons: Building targets …
        scons: `bin’ is up to date.
        scons: done building targets.

        Any ideas what goes wrong?

      • #7684

          Yes – we don’t support 4.7, so it’s not in the build system.

          If you want to compile in 4.7, add 4.7 to the list of gcc compilers in rosetta_source/tools/build/options.settings. Chances are very good it will work; if it doesn’t I will try to offer compilation fixes but with no copy of 4.7 to test against they may be shots in the dark.

        • #7689

            Thanks – I compiled in 4.7 but got:

            scons: *** [build/src/release/linux/3.5/64/x86/gcc/4.7/mpi/protocols/jd2/SingleFileBuffer.os] Error 1

            both in serial and in mpi mode. I also tried to compile a singe protocol (relax) but still got the same.

            Any idea how I can fix it?

            Alternatively, is there eny flag that tells to which compiler version to use? Which files will I need from the following?


          • #7691

              I am sorry. Here’s the output:

              $ scons bin mode=release
              scons: Reading SConscript files …
              Running versioning script … svn: E155007: ‘/home/thomas/Programs/Rosetta3.4/rosetta_source’ is not a working copy
              Done. (0.0 seconds)
              scons: done reading SConscript files.
              scons: Building targets …
              g++ -o build/src/release/linux/3.5/64/x86/gcc/4.7/protocols/jd2/SingleFileBuffer.os -c -isystem external/boost_1_46_1/boost/ -isystem external/boost_1_46_1/boost/ -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -fPIC -DNDEBUG -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/4.7 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/protocols/jd2/
              src/protocols/jd2/ In constructor ‘protocols::jd2::WriteFileSFB::WriteFileSFB(const string&, core::Size, bool, core::Size&)’:
              src/protocols/jd2/ error: ‘sleep’ was not declared in this scope
              scons: *** [build/src/release/linux/3.5/64/x86/gcc/4.7/protocols/jd2/SingleFileBuffer.os] Error 1
              scons: building terminated because of errors.

              In the meantime I ‘ll try to compile an older gcc version.

            • #7693

                Yes, it worked with #include unistd.h. Thank you!

              • #7690

                  scons: *** [build/src/release/linux/3.5/64/x86/gcc/4.7/mpi/protocols/jd2/SingleFileBuffer.os] Error 1

                  This isn’t enough error to diagnose – there should be more error text up above that somewhere. If you aren’t comfortable figuring out which lines I need, just attach the whole thing as .txt. Please compile at -j1 to simplify the log (it should fail quickly).

                  You can offer scons cxx_ver=4.6 to get gcc 4.6, or 4.5, or whatever. scons bin mode=release cxx_ver=4.6. I don’t know anything about installing other versions of gcc on Fedora (I use Ubuntu and would use synaptic to do it) – ask on the Fedora boards?

                • #7692

                    Offhand, it needs the header. If you’ll look in the top of src/protocols/jd2/ you’ll see:

                    #ifdef WIN32
                    #include windows.h // for sleep()
                    #include ctime // for clock()

                    Copy the line
                    #include ctime // for clock()

                    outside of the #ifdef block and see if that works. Failing that, individually try the lines

                    #include cstdlib
                    #include stdlib.h
                    #include unistd.h

                    up at the top with the rest of the includes and see if one of those works. I’m pretty confident one of them will.

                    NOTE: I had to remove all the angle brackets from my include lines so the HTML won’t eat them – you know how the syntax works? It should be clear from the top of that file.

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