meson - fix some more fbsd building and make notes on broken checks

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.
This commit is contained in:
Carsten Haitzler 2019-03-01 12:06:26 +00:00
parent 63c32295a0
commit 5b9285ee7f
1 changed files with 14 additions and 1 deletions

View 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