meson - fix some more fbsd building and make notes on broken checks
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 1 Mar 2019 12:06:26 +0000 (12:06 +0000)
committerWonki Kim <wonki_.kim@samsung.com>
Fri, 8 Mar 2019 11:49:37 +0000 (20:49 +0900)
i found the header checks are logically broken. i was about to replace
with a cc.compiles() check but that requires that every check also
have full working code not just a symbol to check the existence form
so for now just fix the HAVE_NOTIFY_KEVENT define that makes eio build
properly again on bsd and note the broken state for a future rethink
on how these checks are done.

header_checks/meson.build

index 066d228..8355eda 100644 (file)
@@ -57,6 +57,19 @@ header_checks = [
   'crt_externs.h'
 ]
 
+#### The below is logically broken
+#### the declaration of symbol + headers when you look the symbols up
+#### in man pages you'll find that, for example, kevent needs you to
+#### include ALL of the headers listed below. same for setxattr,
+#### listxattr, pthread_getcpuclockid ... i stopped looking at this
+#### point because it seems this is the pattern, but the foreach below
+#### does not do this. it includes one header at a time from the list
+#### then checks to see if the symbol exists. this leads to failures
+#### in the checks (specifically i noticed kevent on bsd). so the whole
+#### construct for this is wrong. it needs a rethink. i'm putting this
+#### comment here as a note that this is the case for now as i'm just
+#### trying to fix the meson build on freebsd for now
+
 function_checks = [
 # function name | headers that are needed | libraries to include | Defines that are needed
   ['alloca', ['alloca.h']],
@@ -191,7 +204,7 @@ if jpeg.found() == false
   jpeg = cc.find_library('jpeg')
 endif
 
-if config_h.has('HAVE_KEVENT')
+if sys_bsd == true
   config_h.set('HAVE_NOTIFY_KEVENT', '1')
 endif