--- ./meson.build +++ ./meson.build @@ -270,10 +270,16 @@ config.set('TAISEI_BUILDCONF_HAVE_INT128', cc.sizeof('__int128') == 16) config.set('TAISEI_BUILDCONF_HAVE_LONG_DOUBLE', cc.sizeof('long double') > 8) config.set('TAISEI_BUILDCONF_HAVE_POSIX', have_posix) -config.set('TAISEI_BUILDCONF_HAVE_SINCOS', cc.has_function('sincos', dependencies : dep_m)) +# NOTE: macOS exports a sincos symbol from libsystem_m, but never declares it in +# (only __sincos is declared there). A link-only check therefore yields a +# false positive; probe for a declaration instead. +have_sincos = cc.has_function('sincos', + prefix : '#define _GNU_SOURCE\n#include ', + dependencies : dep_m) +config.set('TAISEI_BUILDCONF_HAVE_SINCOS', have_sincos) -use_gnu_funcs = false -gnu_funcs = ['sincos', 'strtok_r', 'memrchr', 'memmem'] +use_gnu_funcs = have_sincos +gnu_funcs = ['strtok_r', 'memrchr', 'memmem'] foreach f : gnu_funcs have = cc.has_function(f, dependencies : dep_m)