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

GPerfTools does not build on PPC64 (Power8) platform

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.2.5, 3.3.2
    • Affects Version/s: 3.0.0
    • Component/s: Build
    • Fully Compatible
    • ALL
    • Hide

      get a linux ppc64/power8 system, then untar a clean 3.0.0 mongodb build, and run 'scons --js-engine=none'

      Show
      get a linux ppc64/power8 system, then untar a clean 3.0.0 mongodb build, and run 'scons --js-engine=none'

      It seems that mongodb in version 3.0 always includes the gperf header (coming from the cpu_profile_command), even through the command is only available when mongodb is explicitly built with the profiler.

      scons: Building targets ...
      Generating build/linux2/normal/buildinfo.cpp
      g++ -o build/linux2/normal/third_party/gperftools-2.2/src/base/spinlock_internal.o -c -Wnon-virtual-dtor -Woverloaded-virtual -std=c++11 -fPIC -fno-strict-aliasing -ggdb -pthread -Wno-unknown-pragmas -Winvalid-pch -pipe -O3 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-but-set-variable -Wno-missing-braces -fno-builtin-memcmp -DBOOST_ALL_NO_LIB -D_SCONS -DMONGO_EXPOSE_MACROS -DSUPPORT_UTF8 -DMONGO_OPTIMIZED_BUILD -DMONGO_BYTE_ORDER=1234 -D_FILE_OFFSET_BITS=64 -DMONGO_HAVE___THREAD -DMONGO_HAVE_CXX11_ATOMICS -DMONGO_HAVE_HEADER_UNISTD_H -DMONGO_HAVE_POSIX_MONOTONIC_CLOCK -DMONGO_HAVE_EXECINFO_BACKTRACE -DMALLOC_HOOK_MAYBE_VOLATILE=volatile -DNO_TCMALLOC_SAMPLES -DNO_HEAP_CHECK -DNDEBUG -Ibuild/linux2/normal/third_party/gperftools-2.2/src -Isrc/third_party/gperftools-2.2/src -Isrc/third_party/gperftools-2.2 -Ibuild/linux2/normal -Isrc src/third_party/gperftools-2.2/src/base/spinlock_internal.cc
      In file included from src/third_party/gperftools-2.2/src/base/spinlock_internal.cc:52:0:
      src/third_party/gperftools-2.2/src/base/spinlock_linux-inl.h: In constructor '{anonymous}::InitModule::InitModule()':
      src/third_party/gperftools-2.2/src/base/spinlock_linux-inl.h:59:49: error: 'sys_futex' was not declared in this scope
                         sys_futex(&x, FUTEX_WAKE, 1, 0) >= 0);
                                                       ^
      src/third_party/gperftools-2.2/src/base/spinlock_linux-inl.h: In function 'void base::internal::SpinLockDelay(volatile Atomic32*, int32, int)':
      src/third_party/gperftools-2.2/src/base/spinlock_linux-inl.h:88:71: error: 'sys_futex' was not declared in this scope
                       value, reinterpret_cast<struct kernel_timespec *>(&tm));
                                                                             ^
      src/third_party/gperftools-2.2/src/base/spinlock_linux-inl.h: In function 'void base::internal::SpinLockWake(volatile Atomic32*, bool)':
      src/third_party/gperftools-2.2/src/base/spinlock_linux-inl.h:99:67: error: 'sys_futex' was not declared in this scope
                     FUTEX_WAKE | futex_private_flag, all? INT_MAX : 1, 0);
                                                                         ^
      scons: *** [build/linux2/normal/third_party/gperftools-2.2/src/base/spinlock_internal.o] Error 1
      scons: building terminated because of errors.
      

            Assignee:
            mark.benvenuto@mongodb.com Mark Benvenuto
            Reporter:
            jorik.blaas@synerscope.com Jorik Blaas
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: