I was trying to get osquery to compile on Sequoia ...
# core
k
I was trying to get osquery to compile on Sequoia 15.5 and had quite a few boost errors.
error: integer value -1 is outside the valid range of values [0, 3] for the enumeration type 'int_float_mixture_enum' [-Wenum-constexpr-conversion]
Is this what you guys were talking about at the last office hours?
I certainly upgraded my xcode command line tools a little while ago
Looks like this was because of an older version of boost we are depending on.
libraries/cmake/source/boost/src/libs/mpl/include/boost/mpl/aux_/integral_wrapper.hpp
on line 73 I had to change:
Copy code
- typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
+ typedef AUX_WRAPPER_INST(BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value > 0 ? value - 1 : 0))) prior;
I can try to bring it up at the office hours this week.
Just for reference sake, I also had to modify zlib. In particular
libraries/cmake/source/zlib/src/zutil.h
line 146
Copy code
- #      ifndef fdopen
+ #      if defined(__APPLE__)
+ #      elif !defined(fdopen)
I was getting an
Copy code
/Users/ksykulev/projects/ksykulev-osquery/libraries/cmake/source/zlib/src/zutil.h:147:33: note: expanded from macro 'fdopen'
  147 | #        define fdopen(fd,mode) NULL /* No fdopen() */
      |                                 ^
/Library/Developer/CommandLineTools/usr/lib/clang/17/include/__stddef_null.h:26:22: note: expanded from macro 'NULL'
   26 | #define NULL ((void*)0)
      |
https://github.com/osquery/osquery/issues/8593 We talked about this at the last office hours.
s
AFAIK boost compiles fine
It’s zstd that was an issue, I will take a deeper look
k
Here is the full zlib error:
Copy code
/Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/include/_stdio.h:318:7: error: expected identifier or '('
  318 | FILE    *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen));
      |          ^
/Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/zutil.h:147:33: note: expanded from macro 'fdopen'
  147 | #        define fdopen(fd,mode) NULL /* No fdopen() */
      |                                 ^
/Library/Developer/CommandLineTools/usr/lib/clang/17/include/__stddef_null.h:26:16: note: expanded from macro 'NULL'
   26 | #define NULL ((void*)0)
      |                ^
In file included from /Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/zutil.c:10:
In file included from /Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/gzguts.h:20:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/include/stdio.h:61:
/Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/include/_stdio.h:318:7: error: expected ')'
/Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/zutil.h:147:33: note: expanded from macro 'fdopen'
  147 | #        define fdopen(fd,mode) NULL /* No fdopen() */
      |                                 ^
/Library/Developer/CommandLineTools/usr/lib/clang/17/include/__stddef_null.h:26:16: note: expanded from macro 'NULL'
   26 | #define NULL ((void*)0)
      |                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/include/_stdio.h:318:7: note: to match this '('
/Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/zutil.h:147:33: note: expanded from macro 'fdopen'
  147 | #        define fdopen(fd,mode) NULL /* No fdopen() */
      |                                 ^
/Library/Developer/CommandLineTools/usr/lib/clang/17/include/__stddef_null.h:26:15: note: expanded from macro 'NULL'
   26 | #define NULL ((void*)0)
      |               ^
In file included from /Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/zutil.c:10:
In file included from /Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/gzguts.h:20:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/include/stdio.h:61:
/Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/include/_stdio.h:318:7: error: expected ')'
  318 | FILE    *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen));
      |          ^
/Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/zutil.h:147:33: note: expanded from macro 'fdopen'
  147 | #        define fdopen(fd,mode) NULL /* No fdopen() */
      |                                 ^
/Library/Developer/CommandLineTools/usr/lib/clang/17/include/__stddef_null.h:26:22: note: expanded from macro 'NULL'
   26 | #define NULL ((void*)0)
      |                      ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/include/_stdio.h:318:7: note: to match this '('
/Users/ksykulev/projects/osquery/libraries/cmake/source/zlib/src/zutil.h:147:33: note: expanded from macro 'fdopen'
  147 | #        define fdopen(fd,mode) NULL /* No fdopen() */
      |                                 ^
/Library/Developer/CommandLineTools/usr/lib/clang/17/include/__stddef_null.h:26:14: note: expanded from macro 'NULL'
   26 | #define NULL ((void*)0)
      |              ^
3 errors generated.
If I am understanding the code right, it looks like this version of zlib is redefining the
fdopen
open macro to
NULL
today I learned.
ifndef
can only detect if macros, not functions are defined. mac os 15.5 looks like it defines fdopen here (i only have xcode command line tools installed):
/Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/include/_stdio.h