Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-7602

Fix MacOS CMake Compilation Issues

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.1, 4.4.7, 5.0.0-rc1, 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      MacOS Bugs:

      • The new Apple Clang 12.0.5 compiler has some additional on-by-default diagnostic errors that triggers on SWIG generated code.

       

      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:1633:15: error: 'SwigPyObject_disown' was marked unused but was used [-Werror,-Wused-but-marked-unused]
        {"disown",  SwigPyObject_disown,  METH_NOARGS,  "releases ownership of the pointer"},
                    ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:1634:15: error: 'SwigPyObject_acquire' was marked unused but was used [-Werror,-Wused-but-marked-unused]
        {"acquire", SwigPyObject_acquire, METH_NOARGS,  "acquires ownership of the pointer"},
                    ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:1635:15: error: 'SwigPyObject_own' was marked unused but was used [-Werror,-Wused-but-marked-unused]
        {"own",     SwigPyObject_own,     METH_VARARGS, "returns/sets ownership of the pointer"},
                    ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:1636:15: error: 'SwigPyObject_append' was marked unused but was used [-Werror,-Wused-but-marked-unused]
        {"append",  SwigPyObject_append,  METH_O,       "appends another 'this' object"},
                    ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:1637:15: error: 'SwigPyObject_next' was marked unused but was used [-Werror,-Wused-but-marked-unused]
        {"next",    SwigPyObject_next,    METH_NOARGS,  "returns the next 'this' object"},
                    ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:1638:15: error: 'SwigPyObject_repr2' was marked unused but was used [-Werror,-Wused-but-marked-unused]
        {"__repr__",SwigPyObject_repr2,   METH_NOARGS,  "returns object representation"},
                    ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:2788:5: error: no previous prototype for function 'diagnostic_build' [-Werror,-Wmissing-prototypes]
      int diagnostic_build() {
          ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:2788:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      int diagnostic_build() {
      ^
      static 
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:2788:21: error: this old-style function definition is not preceded by a prototype [-Werror,-Wstrict-prototypes]
      int diagnostic_build() {
                          ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3159:13: error: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]
                              *sizep = strlen(k);
                                     ~ ^~~~~~~~~
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3185:13: error: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]
                              *sizep = strlen(k);
                                     ~ ^~~~~~~~~
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3250:64: error: unused parameter 'self' [-Werror,-Wunused-parameter]
      SWIGINTERN int __wt_connection__freecb(struct __wt_connection *self){
                                                                     ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3377:96: error: unused parameter 'lock' [-Werror,-Wunused-parameter]
      SWIGINTERN int __wt_file_handle__fh_map(struct __wt_file_handle *self,WT_SESSION *session,bool lock,void *mapped_regionp,size_t *lengthp,void *mapped_cookiep){
                                                                                                     ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3436:48: error: variable 'v' may be uninitialized when used here [-Werror,-Wconditional-uninitialized]
          if (SWIG_IsOK(res) && val) *val = (size_t)(v);
                                                     ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3434:20: note: initialize the variable 'v' to silence this warning
          unsigned long v;
                         ^
                          = 0
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3487:5: error: no previous prototype for function '_wiredtiger_calc_modify' [-Werror,-Wmissing-prototypes]
      int _wiredtiger_calc_modify(WT_SESSION *session,
          ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3487:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      int _wiredtiger_calc_modify(WT_SESSION *session,
      ^
      static 
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3495:5: error: no previous prototype for function '_wiredtiger_calc_modify_string' [-Werror,-Wmissing-prototypes]
      int _wiredtiger_calc_modify_string(WT_SESSION *session,
          ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3495:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      int _wiredtiger_calc_modify_string(WT_SESSION *session,
      ^
      static 
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3592:39: error: unused parameter 'handler' [-Werror,-Wunused-parameter]
      pythonErrorCallback(WT_EVENT_HANDLER *handler, WT_SESSION *session, int err,
                                            ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3592:60: error: unused parameter 'session' [-Werror,-Wunused-parameter]
      pythonErrorCallback(WT_EVENT_HANDLER *handler, WT_SESSION *session, int err,
                                                                 ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3592:73: error: unused parameter 'err' [-Werror,-Wunused-parameter]
      pythonErrorCallback(WT_EVENT_HANDLER *handler, WT_SESSION *session, int err,
                                                                              ^
      lang/python/CMakeFiles/_wiredtiger.dir/wiredtigerPYTHON_wrap.c:3599:41: error: unused parameter 'handler' [-Werror,-Wunused-parameter]
      pythonMessageCallback(WT_EVENT_HANDLER *handler, WT_SESSION *session,

       

      • test_big_endian() is returning an empty result on older CMake MacOS versions. Add the following patch to avoid passing an empty default:
      diff --git a/build_cmake/configs/auto.cmake b/build_cmake/configs/auto.cmake
      index 4f9aa657d..1df2578ed 100644
      --- a/build_cmake/configs/auto.cmake
      +++ b/build_cmake/configs/auto.cmake
      @@ -284,6 +284,9 @@ config_compile(
       
       include(TestBigEndian)
       test_big_endian(is_big_endian)
      +if(NOT is_big_endian)
      +    set(is_big_endian FALSE)
      +endif()
       config_bool(
           WORDS_BIGENDIAN
           "If the target system is big endian"

       

            Assignee:
            alison.felizzi@mongodb.com Alison Felizzi (Inactive)
            Reporter:
            alison.felizzi@mongodb.com Alison Felizzi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: