Rosetta 3.5 Compiling Error – fedora 20

Member Site Forums Rosetta 3 Rosetta 3 – Build/Install Rosetta 3.5 Compiling Error – fedora 20

Viewing 6 reply threads
  • Author
    • #1823

        Hi All,

        I have been trying to install rosetta on fedora 20 and keep running into a compiling error with EndPoint that terminates the build. Any suggestions would be much appreciated.

        localhost 102% uname -a
        Linux localhost.localdomain 3.11.10-301.fc20.x86_64

        The error I got after command “scons bin mode=release” and successfully building for 30min or so:

        scons: Reading SConscript files … reports this is a non-version-control release version of Rosetta
        scons: done reading SConscript files.
        scons: Building targets …
        g++ -o build/src/release/linux/3.11/64/x86/gcc/4.8/default/protocols/wum2/EndPoint.os -c -std=c++98 -isystem external/boost_1_46_1/ -pipe -ffor-scope -Wall -Wextra -Wno-long-long -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.8 -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/wum2/
        src/protocols/wum2/ error: a function call cannot appear in a constant-expression
        EndPoint::EndPoint( function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}
        src/protocols/wum2/ error: template argument 1 is invalid
        EndPoint::EndPoint( function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}
        src/protocols/wum2/ error: prototype for ‘protocols::wum2::EndPoint::EndPoint(int)’ does not match any in class ‘protocols::wum2::EndPoint’
        EndPoint::EndPoint( function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}
        In file included from src/protocols/wum2/
        src/protocols/wum2/EndPoint.hh:33:7: error: candidates are: protocols::wum2::EndPoint::EndPoint(const protocols::wum2::EndPoint&)
        class EndPoint {
        src/protocols/wum2/EndPoint.hh:36:2: error: protocols::wum2::EndPoint::EndPoint(boost::function)
        EndPoint( function < uint64_t () > role_available_mem );
        scons: *** [build/src/release/linux/3.11/64/x86/gcc/4.8/default/protocols/wum2/EndPoint.os] Error 1
        scons: building terminated because of errors.


      • #9766

          I would recommend trying a clean compile. Delete everything under the build/ directory and redo the scons compile.

          If that doesn’t work, try editing src/protocols/wum2/ to add “boost::” before “function”:

          EndPoint::EndPoint( boost::function < uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}

          If that doesn’t work, what compiler are you using? (Do a ‘g++ –version’ at the command prompt.) And do you have you made any compiler-related settings changes to your system?

        • #9778

            rmoretti, Thank you very much for your reply!

            I tried a clean compile with and without editing src/protocols/wum2/ according your suggestion, but same error appeared. I downloaded the newest package – rosetta_2014wk05_bundle and tried, same problem.
            The compiler I am using:

            localhost 109% g++ –version
            g++ (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7)

            I didn’t make any compiler-related settings changes.
            Do I need to rebuild the boost_1_46_1 and make some change in site.settings?
            Any suggestions?

          • #9943

              I too am having the same problem. I an unable to build rosetta under fedora 20. I have tried using the ICC compiler with the same issue. I can’t get past the src/protocols/wum2/ compiler error issue.

            • #9944

                It may be your platform doesn’t define uint64_t, or there’s something wrong with that definition.

                You can try adding the following line to the top of the file:

                #include <boost/cstdint.hpp>

                And then change the line to

                EndPoint::EndPoint( boost::function < boost::uint64_t () > role_available_mem ) : role_available_mem_( role_available_mem) {}

                This may just move the error to other lines in other files, in which case you may have to do the same treatment to the other files (add the cstdint include line to the top of the file near the other includes, and change the instances of uint64_t to boost::uint64_t)

              • #9948

                  This method works. The problem has been solved. Thanks, rmoretti

                • #9975

                    This method worked for me too. In the end, I edited both src/protocols/wum2/ and src/protocols/wum2/EndPoint.hh files. Thanks for the solution rmoretti . I wonder how we submit this bug to developers?

                  • #9980

                      The Rosetta bug tracker can be found at

                      The general public is welcome to make an account and submit bugs. Or, as I’m also a developer, you can report the problem here and (if I remember to) I’ll submit a bug or let the relevant party know. (I have already submitted a bug for this one:

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