Wireshark mailing list archives

Re: Building under OSX Yosemite using cmake


From: Guy Harris <guy () alum mit edu>
Date: Mon, 10 Nov 2014 19:59:48 -0800


On Nov 10, 2014, at 6:18 PM, David Ameiss <netshark () ameissnet com> wrote:

Not sure. However, on a Mavericks system with Xcode 6.1, it was NOT in the makefiles. Which likely means it’s 
something with dependencies (differing between 10.9 and 10.10), or some odd difference between the command line tools 
for 10.9 and 10.10.

No, it's a difference between Kernel.framework in 10.9 and 10.10, coupled with the way that we search for the math.h 
header (presumably because it might be in some strange place, rather than the standard include directory, on some 
platforms).

Kernel.framework is a framework that exists to supply headers, and some other information, for use when building 
*kernel-mode* loadable modules for OS X.  It may have some headers that are similar to standard headers for userland, 
but that are *not* usable when building userland code; the Kernel.framework string.h header is one of them.

For some unknown reason, Kernel.framework's headers, in Yosemite, include math.h.  There's no sign of math.h in the XNU 
source tree for Yosemite, and I really don't think Apple are encouraging kernel module developers to calculate 
trigonometric functions or Bessel functions or... in their kernel code, but maybe they are, these days.

This means that the search for math.h in FindM.cmake finds it in the Kernel.framework header directory, so CMake adds 
that to the list of directories in which to search for header files, adding a -I flag to the build process.  Hilarity 
ensues.

I've checked in a workaround, having FindM.cmake forcibly set CMAKE_FIND_FRAMEWORK to LAST before trying to find math.h 
and then restoring its previous value.

I'll file a bug with Apple to complain about math.h's presence; hopefully, if that's intentional, they'll at least tell 
me so, and perhaps tell me why as well.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe


Current thread: