From 0ffafcbcedd8886cee6f903264e2cac0f7639c1f Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 1 Mar 2019 12:06:26 +0000 Subject: [PATCH] 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. --- header_checks/meson.build | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/header_checks/meson.build b/header_checks/meson.build index 066d228..8355eda 100644 --- a/header_checks/meson.build +++ b/header_checks/meson.build @@ -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 -- 2.7.4