From ab96536e8de44c941f413d9cae5658a4f59429ac Mon Sep 17 00:00:00 2001 From: Jonathan Rudenberg Date: Mon, 15 Jan 2018 18:27:37 -0500 Subject: [PATCH] fuzz: disable all deps when building with oss-fuzz The fuzz targets are intended to be fast and only target systemd code, so they don't need to call out to any dependencies. They also shouldn't depend on shared libraries outside of libc, so we disable every dependency when compiling against oss-fuzz. This also simplifies the upstream build environment significantly. --- meson.build | 58 ++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/meson.build b/meson.build index 748438fdb..df2380419 100644 --- a/meson.build +++ b/meson.build @@ -901,10 +901,11 @@ endif #if 0 /// UNNEEDED by elogind # libmount = dependency('mount', -# version : '>= 2.30') +# version : '>= 2.30', +# required : not ossfuzz) # # want_seccomp = get_option('seccomp') -# if want_seccomp != 'false' +# if want_seccomp != 'false' and not ossfuzz # libseccomp = dependency('libseccomp', # version : '>= 2.3.1', # required : want_seccomp == 'true') @@ -920,7 +921,7 @@ conf.set10('HAVE_SECCOMP', have) m4_defines += have ? ['-DHAVE_SECCOMP'] : [] want_selinux = get_option('selinux') -if want_selinux != 'false' +if want_selinux != 'false' and not ossfuzz libselinux = dependency('libselinux', version : '>= 2.1.9', required : want_selinux == 'true') @@ -934,7 +935,7 @@ m4_defines += have ? ['-DHAVE_SELINUX'] : [] #if 0 /// UNNEEDED by elogind # want_apparmor = get_option('apparmor') -# if want_apparmor != 'false' +# if want_apparmor != 'false' and not ossfuzz # libapparmor = dependency('libapparmor', # required : want_apparmor == 'true') # have = libapparmor.found() @@ -957,7 +958,7 @@ endif want_polkit = get_option('polkit') install_polkit = false install_polkit_pkla = false -if want_polkit != 'false' +if want_polkit != 'false' and not ossfuzz install_polkit = true libpolkit = dependency('polkit-gobject-1', @@ -970,7 +971,7 @@ endif conf.set10('ENABLE_POLKIT', install_polkit) want_acl = get_option('acl') -if want_acl != 'false' +if want_acl != 'false' and not ossfuzz libacl = cc.find_library('acl', required : want_acl == 'true') have = libacl.found() else @@ -981,7 +982,7 @@ conf.set10('HAVE_ACL', have) m4_defines += have ? ['-DHAVE_ACL'] : [] want_audit = get_option('audit') -if want_audit != 'false' +if want_audit != 'false' and not ossfuzz libaudit = dependency('audit', required : want_audit == 'true') have = libaudit.found() else @@ -992,7 +993,7 @@ conf.set10('HAVE_AUDIT', have) #if 0 /// UNNEEDED by elogind # want_blkid = get_option('blkid') -# if want_blkid != 'false' +# if want_blkid != 'false' and not ossfuzz # libblkid = dependency('blkid', required : want_blkid == 'true') # have = libblkid.found() # else @@ -1002,7 +1003,7 @@ conf.set10('HAVE_AUDIT', have) # conf.set10('HAVE_BLKID', have) # # want_kmod = get_option('kmod') -# if want_kmod != 'false' +# if want_kmod != 'false' and not ossfuzz # libkmod = dependency('libkmod', # version : '>= 15', # required : want_kmod == 'true') @@ -1018,7 +1019,7 @@ libkmod = [] #endif // 0 want_pam = get_option('pam') -if want_pam != 'false' +if want_pam != 'false' and not ossfuzz libpam = cc.find_library('pam', required : want_pam == 'true') libpam_misc = cc.find_library('pam_misc', required : want_pam == 'true') have = libpam.found() and libpam_misc.found() @@ -1032,7 +1033,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] #if 0 /// UNNEEDED by elogind # want_microhttpd = get_option('microhttpd') -# if want_microhttpd != 'false' +# if want_microhttpd != 'false' and not ossfuzz # libmicrohttpd = dependency('libmicrohttpd', # version : '>= 0.9.33', # required : want_microhttpd == 'true') @@ -1045,7 +1046,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # m4_defines += have ? ['-DHAVE_MICROHTTPD'] : [] # # want_libcryptsetup = get_option('libcryptsetup') -# if want_libcryptsetup != 'false' +# if want_libcryptsetup != 'false' and not ossfuzz # libcryptsetup = dependency('libcryptsetup', # version : '>= 1.6.0', # required : want_libcryptsetup == 'true') @@ -1057,7 +1058,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_LIBCRYPTSETUP', have) # # want_libcurl = get_option('libcurl') -# if want_libcurl != 'false' +# if want_libcurl != 'false' and not ossfuzz # libcurl = dependency('libcurl', # version : '>= 7.32.0', # required : want_libcurl == 'true') @@ -1075,7 +1076,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # error('libidn and libidn2 cannot be requested simultaneously') # endif # -# if want_libidn != 'false' and want_libidn2 != 'true' +# if want_libidn != 'false' and want_libidn2 != 'true' and not ossfuzz # libidn = dependency('libidn', # required : want_libidn == 'true') # have = libidn.found() @@ -1085,7 +1086,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # endif # conf.set10('HAVE_LIBIDN', have) # m4_defines += have ? ['-DHAVE_LIBIDN'] : [] -# if not have and want_libidn2 != 'false' +# if not have and want_libidn2 != 'false' and not ossfuzz # # libidn is used for both libidn and libidn2 objects # libidn = dependency('libidn2', # required : want_libidn2 == 'true') @@ -1097,7 +1098,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # m4_defines += have ? ['-DHAVE_LIBIDN2'] : [] # # want_libiptc = get_option('libiptc') -# if want_libiptc != 'false' +# if want_libiptc != 'false' and not ossfuzz # libiptc = dependency('libiptc', # required : want_libiptc == 'true') # have = libiptc.found() @@ -1109,7 +1110,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # m4_defines += have ? ['-DHAVE_LIBIPTC'] : [] # # want_qrencode = get_option('qrencode') -# if want_qrencode != 'false' +# if want_qrencode != 'false' and not ossfuzz # libqrencode = dependency('libqrencode', # required : want_qrencode == 'true') # have = libqrencode.found() @@ -1120,7 +1121,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_QRENCODE', have) # # want_gcrypt = get_option('gcrypt') -# if want_gcrypt != 'false' +# if want_gcrypt != 'false' and not ossfuzz # libgcrypt = cc.find_library('gcrypt', required : want_gcrypt == 'true') # libgpg_error = cc.find_library('gpg-error', required : want_gcrypt == 'true') # have = libgcrypt.found() and libgpg_error.found() @@ -1135,7 +1136,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_GCRYPT', have) # # want_gnutls = get_option('gnutls') -# if want_gnutls != 'false' +# if want_gnutls != 'false' and not ossfuzz # libgnutls = dependency('gnutls', # version : '>= 3.1.4', # required : want_gnutls == 'true') @@ -1147,7 +1148,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_GNUTLS', have) # # want_elfutils = get_option('elfutils') -# if want_elfutils != 'false' +# if want_elfutils != 'false' and not ossfuzz # libdw = dependency('libdw', # required : want_elfutils == 'true') # have = libdw.found() @@ -1158,7 +1159,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_ELFUTILS', have) # # want_zlib = get_option('zlib') -# if want_zlib != 'false' +# if want_zlib != 'false' and not ossfuzz # libz = dependency('zlib', # required : want_zlib == 'true') # have = libz.found() @@ -1169,7 +1170,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_ZLIB', have) # # want_bzip2 = get_option('bzip2') -# if want_bzip2 != 'false' +# if want_bzip2 != 'false' and not ossfuzz # libbzip2 = cc.find_library('bz2', # required : want_bzip2 == 'true') # have = libbzip2.found() @@ -1180,7 +1181,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_BZIP2', have) # # want_xz = get_option('xz') -# if want_xz != 'false' +# if want_xz != 'false' and not ossfuzz # libxz = dependency('liblzma', # required : want_xz == 'true') # have = libxz.found() @@ -1191,7 +1192,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_XZ', have) # # want_lz4 = get_option('lz4') -# if want_lz4 != 'false' +# if want_lz4 != 'false' and not ossfuzz # liblz4 = dependency('liblz4', # required : want_lz4 == 'true') # have = liblz4.found() @@ -1202,7 +1203,7 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # conf.set10('HAVE_LZ4', have) # # want_xkbcommon = get_option('xkbcommon') -# if want_xkbcommon != 'false' +# if want_xkbcommon != 'false' and not ossfuzz # libxkbcommon = dependency('xkbcommon', # version : '>= 0.3.0', # required : want_xkbcommon == 'true') @@ -1231,7 +1232,7 @@ libxkbcommon = [] conf.set10('HAVE_XKBCOMMON', have) want_glib = get_option('glib') -if want_glib != 'false' +if want_glib != 'false' and not ossfuzz libglib = dependency('glib-2.0', version : '>= 2.22.0', required : want_glib == 'true') @@ -1250,7 +1251,7 @@ endif conf.set10('HAVE_GLIB', have) want_dbus = get_option('dbus') -if want_dbus != 'false' +if want_dbus != 'false' and not ossfuzz libdbus = dependency('dbus-1', version : '>= 1.3.2', required : want_dbus == 'true') @@ -1263,6 +1264,9 @@ conf.set10('HAVE_DBUS', have) #if 0 /// UNNEEDED by elogind # default_dnssec = get_option('default-dnssec') +# if ossfuzz +# default_dnssec = 'no' +# endif # if default_dnssec != 'no' and conf.get('HAVE_GCRYPT') == 0 # message('default-dnssec cannot be set to yes or allow-downgrade when gcrypt is disabled. Setting default-dnssec to no.') # default_dnssec = 'no' -- 2.30.2