Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-32031

Scons Install Fails with Errors

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 3.4.10
    • Component/s: None
    • None
    • Fully Compatible
    • ALL
    • Hide

      This is using a clean 17.10 x64 with GCC 7.2.

      Show
      This is using a clean 17.10 x64 with GCC 7.2.

      After building, the install process using scons fails with a number of errors:

      Compiling build/opt/mongo/platform/stack_locator_linux.o
      In file included from src/mongo/platform/stack_locator_pthread_getattr_np.cpp:36:0,
                       from src/mongo/platform/stack_locator_linux.cpp:29:
      src/mongo/util/scopeguard.h: In instantiation of 'mongo::ScopeGuardImpl1<F, P1> mongo::MakeGuard(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]':
      src/mongo/platform/stack_locator_pthread_getattr_np.cpp:45:51:   required from here
      src/mongo/util/scopeguard.h:154:7: error: mangled name for 'mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>::ScopeGuardImpl1(const mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>&)' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
       class ScopeGuardImpl1 : public ScopeGuardImplBase {
             ^~~~~~~~~~~~~~~
      src/mongo/util/scopeguard.h:154:7: error: mangled name for 'mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>::ScopeGuardImpl1(const mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>&)' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
      src/mongo/util/scopeguard.h:177:53: note: synthesized method 'mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>::ScopeGuardImpl1(const mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>&)' first required here
           return ScopeGuardImpl1<F, P1>::MakeGuard(fun, p1);
                                                           ^
      src/mongo/util/scopeguard.h: In instantiation of 'mongo::ScopeGuardImpl1<F, P1>::~ScopeGuardImpl1() [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]':
      src/mongo/platform/stack_locator_pthread_getattr_np.cpp:45:51:   required from here
      src/mongo/util/scopeguard.h:160:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::~ScopeGuardImpl1() [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
           ~ScopeGuardImpl1() throw() {
           ^
      src/mongo/util/scopeguard.h:160:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::~ScopeGuardImpl1() [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
      src/mongo/util/scopeguard.h: In instantiation of 'mongo::ScopeGuardImpl1<F, P1>::ScopeGuardImpl1(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]':
      src/mongo/util/scopeguard.h:157:16:   required from 'static mongo::ScopeGuardImpl1<F, P1> mongo::ScopeGuardImpl1<F, P1>::MakeGuard(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]'
      src/mongo/util/scopeguard.h:177:45:   required from 'mongo::ScopeGuardImpl1<F, P1> mongo::MakeGuard(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]'
      src/mongo/platform/stack_locator_pthread_getattr_np.cpp:45:51:   required from here
      src/mongo/util/scopeguard.h:169:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::ScopeGuardImpl1(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
           ScopeGuardImpl1(F fun, P1 p1) : fun_(fun), p1_(p1) {}
           ^~~~~~~~~~~~~~~
      src/mongo/util/scopeguard.h:169:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::ScopeGuardImpl1(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
      src/mongo/util/scopeguard.h:164:10: error: mangled name for 'void mongo::ScopeGuardImpl1<F, P1>::Execute() [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
           void Execute() {
                ^~~~~~~
      src/mongo/util/scopeguard.h:169:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::ScopeGuardImpl1(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
           ScopeGuardImpl1(F fun, P1 p1) : fun_(fun), p1_(p1) {}
           ^~~~~~~~~~~~~~~
      src/mongo/util/scopeguard.h:96:17: error: mangled name for 'static void mongo::ScopeGuardImplBase::SafeExecute(J&) [with J = mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
           static void SafeExecute(J& j) throw() {
                       ^~~~~~~~~~~
      src/mongo/util/scopeguard.h:156:35: error: mangled name for 'static mongo::ScopeGuardImpl1<F, P1> mongo::ScopeGuardImpl1<F, P1>::MakeGuard(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
           static ScopeGuardImpl1<F, P1> MakeGuard(F fun, P1 p1) {
                                         ^~~~~~~~~
      src/mongo/util/scopeguard.h:160:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::~ScopeGuardImpl1() [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
           ~ScopeGuardImpl1() throw() {
           ^
      src/mongo/util/scopeguard.h:176:31: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1> mongo::MakeGuard(F, P1) [with F = int (*)(pthread_attr_t*) throw (); P1 = pthread_attr_t*]' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
       inline ScopeGuardImpl1<F, P1> MakeGuard(F fun, P1 p1) {
                                     ^~~~~~~~~
      src/mongo/util/scopeguard.h:154:7: error: mangled name for 'mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>::ScopeGuardImpl1(const mongo::ScopeGuardImpl1<int (*)(pthread_attr_t*) throw (), pthread_attr_t*>&)' will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
       class ScopeGuardImpl1 : public ScopeGuardImplBase {
             ^~~~~~~~~~~~~~~
      cc1plus: all warnings being treated as errors
      scons: *** [build/opt/mongo/platform/stack_locator_linux.o] Error 1
      scons: building terminated because of errors.
      build/opt/mongo/platform/stack_locator_linux.o failed: Error 1
      
      ****  Installation failed. Aborting package creation.
      
      Restoring overwritten files from backup...OK
      
      Cleaning up...OK
      

      Bye.

            Assignee:
            mark.benvenuto@mongodb.com Mark Benvenuto
            Reporter:
            utkonos Robert Simmons
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: