mirror of
https://github.com/systemd/systemd.git
synced 2024-11-06 08:26:52 +03:00
Merge pull request #8947 from yuwata/meson-0.44
meson: bump minimum required version to 0.44
This commit is contained in:
commit
b330320278
2
README
2
README
@ -161,7 +161,7 @@ REQUIREMENTS:
|
||||
docbook-xsl (optional, required for documentation)
|
||||
xsltproc (optional, required for documentation)
|
||||
python-lxml (optional, required to build the indices)
|
||||
python, meson, ninja
|
||||
python >= 3.4, meson >= 0.44, ninja
|
||||
gcc, awk, sed, grep, m4, and similar tools
|
||||
|
||||
During runtime, you need the following additional
|
||||
|
207
meson.build
207
meson.build
@ -11,7 +11,7 @@ project('systemd', 'c',
|
||||
'sysconfdir=/etc',
|
||||
'localstatedir=/var',
|
||||
],
|
||||
meson_version : '>= 0.41',
|
||||
meson_version : '>= 0.44',
|
||||
)
|
||||
|
||||
libsystemd_version = '0.22.0'
|
||||
@ -291,55 +291,76 @@ if want_ossfuzz
|
||||
fuzzing_engine = meson.get_compiler('cpp').find_library('FuzzingEngine')
|
||||
endif
|
||||
|
||||
foreach arg : ['-Wextra',
|
||||
'-Werror=undef',
|
||||
'-Wlogical-op',
|
||||
'-Wmissing-include-dirs',
|
||||
'-Wold-style-definition',
|
||||
'-Wpointer-arith',
|
||||
'-Winit-self',
|
||||
'-Wdeclaration-after-statement',
|
||||
'-Wfloat-equal',
|
||||
'-Wsuggest-attribute=noreturn',
|
||||
'-Werror=missing-prototypes',
|
||||
'-Werror=implicit-function-declaration',
|
||||
'-Werror=missing-declarations',
|
||||
'-Werror=return-type',
|
||||
'-Werror=incompatible-pointer-types',
|
||||
'-Werror=format=2',
|
||||
'-Wstrict-prototypes',
|
||||
'-Wredundant-decls',
|
||||
'-Wmissing-noreturn',
|
||||
'-Wimplicit-fallthrough=5',
|
||||
'-Wshadow',
|
||||
'-Wendif-labels',
|
||||
'-Wstrict-aliasing=2',
|
||||
'-Wwrite-strings',
|
||||
'-Werror=overflow',
|
||||
'-Wdate-time',
|
||||
'-Wnested-externs',
|
||||
'-ffast-math',
|
||||
'-fno-common',
|
||||
'-fdiagnostics-show-option',
|
||||
'-fno-strict-aliasing',
|
||||
'-fvisibility=hidden',
|
||||
'-fstack-protector',
|
||||
'-fstack-protector-strong',
|
||||
'--param=ssp-buffer-size=4',
|
||||
]
|
||||
if cc.has_argument(arg)
|
||||
add_project_arguments(arg, language : 'c')
|
||||
endif
|
||||
endforeach
|
||||
possible_cc_flags = [
|
||||
'-Wextra',
|
||||
'-Werror=undef',
|
||||
'-Wlogical-op',
|
||||
'-Wmissing-include-dirs',
|
||||
'-Wold-style-definition',
|
||||
'-Wpointer-arith',
|
||||
'-Winit-self',
|
||||
'-Wdeclaration-after-statement',
|
||||
'-Wfloat-equal',
|
||||
'-Wsuggest-attribute=noreturn',
|
||||
'-Werror=missing-prototypes',
|
||||
'-Werror=implicit-function-declaration',
|
||||
'-Werror=missing-declarations',
|
||||
'-Werror=return-type',
|
||||
'-Werror=incompatible-pointer-types',
|
||||
'-Werror=format=2',
|
||||
'-Wstrict-prototypes',
|
||||
'-Wredundant-decls',
|
||||
'-Wmissing-noreturn',
|
||||
'-Wimplicit-fallthrough=5',
|
||||
'-Wshadow',
|
||||
'-Wendif-labels',
|
||||
'-Wstrict-aliasing=2',
|
||||
'-Wwrite-strings',
|
||||
'-Werror=overflow',
|
||||
'-Wdate-time',
|
||||
'-Wnested-externs',
|
||||
'-ffast-math',
|
||||
'-fno-common',
|
||||
'-fdiagnostics-show-option',
|
||||
'-fno-strict-aliasing',
|
||||
'-fvisibility=hidden',
|
||||
'-fstack-protector',
|
||||
'-fstack-protector-strong',
|
||||
'--param=ssp-buffer-size=4',
|
||||
]
|
||||
|
||||
# --as-needed and --no-undefined are provided by meson by default,
|
||||
# run mesonconf to see what is enabled
|
||||
possible_link_flags = [
|
||||
'-Wl,-z,relro',
|
||||
'-Wl,-z,now',
|
||||
]
|
||||
|
||||
# the oss-fuzz fuzzers are not built with -fPIE, so don't
|
||||
# enable it when we are linking against them
|
||||
if not fuzzer_build
|
||||
if cc.has_argument('-fPIE')
|
||||
add_project_arguments('-fPIE', language : 'c')
|
||||
endif
|
||||
possible_cc_flags += '-fPIE'
|
||||
possible_link_flags += '-pie'
|
||||
endif
|
||||
|
||||
if cc.get_id() == 'clang'
|
||||
possible_cc_flags += [
|
||||
'-Wno-typedef-redefinition',
|
||||
'-Wno-gnu-variable-sized-type-not-at-end',
|
||||
]
|
||||
endif
|
||||
|
||||
if get_option('buildtype') != 'debug'
|
||||
possible_cc_flags += [
|
||||
'-ffunction-sections',
|
||||
'-fdata-sections',
|
||||
]
|
||||
|
||||
possible_link_flags += '-Wl,--gc-sections'
|
||||
endif
|
||||
|
||||
add_project_arguments(cc.get_supported_arguments(possible_cc_flags), language : 'c')
|
||||
|
||||
# "negative" arguments: gcc on purpose does not return an error for "-Wno-"
|
||||
# arguments, just emits a warnings. So test for the "positive" version instead.
|
||||
foreach arg : ['unused-parameter',
|
||||
@ -366,53 +387,18 @@ if cc.compiles('''
|
||||
add_project_arguments('-Werror=shadow', language : 'c')
|
||||
endif
|
||||
|
||||
if cc.get_id() == 'clang'
|
||||
foreach arg : ['-Wno-typedef-redefinition',
|
||||
'-Wno-gnu-variable-sized-type-not-at-end',
|
||||
]
|
||||
if cc.has_argument(arg)
|
||||
add_project_arguments(arg, language : 'c')
|
||||
endif
|
||||
endforeach
|
||||
endif
|
||||
|
||||
link_test_c = files('tools/meson-link-test.c')
|
||||
|
||||
# --as-needed and --no-undefined are provided by meson by default,
|
||||
# run mesonconf to see what is enabled
|
||||
foreach arg : ['-Wl,-z,relro',
|
||||
'-Wl,-z,now',
|
||||
'-pie',
|
||||
]
|
||||
|
||||
foreach arg : possible_link_flags
|
||||
have = run_command(check_compilation_sh,
|
||||
cc.cmd_array(), '-x', 'c', arg,
|
||||
'-include', link_test_c).returncode() == 0
|
||||
message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no'))
|
||||
if have and (arg != '-pie' or not fuzzer_build)
|
||||
if have
|
||||
add_project_link_arguments(arg, language : 'c')
|
||||
endif
|
||||
endforeach
|
||||
|
||||
if get_option('buildtype') != 'debug'
|
||||
foreach arg : ['-ffunction-sections',
|
||||
'-fdata-sections']
|
||||
if cc.has_argument(arg)
|
||||
add_project_arguments(arg, language : 'c')
|
||||
endif
|
||||
endforeach
|
||||
|
||||
foreach arg : ['-Wl,--gc-sections']
|
||||
have = run_command(check_compilation_sh,
|
||||
cc.cmd_array(), '-x', 'c', arg,
|
||||
'-include', link_test_c).returncode() == 0
|
||||
message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no'))
|
||||
if have
|
||||
add_project_link_arguments(arg, language : 'c')
|
||||
endif
|
||||
endforeach
|
||||
endif
|
||||
|
||||
cpp = ' '.join(cc.cmd_array()) + ' -E'
|
||||
|
||||
#####################################################################
|
||||
@ -694,18 +680,18 @@ getent_result = run_command('getent', 'passwd', '65534')
|
||||
if getent_result.returncode() == 0
|
||||
name = getent_result.stdout().split(':')[0]
|
||||
if name != nobody_user
|
||||
message('WARNING:\n' +
|
||||
' The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) +
|
||||
' Your build will result in an user table setup that is incompatible with the local system.')
|
||||
warning('\n' +
|
||||
'The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) +
|
||||
'Your build will result in an user table setup that is incompatible with the local system.')
|
||||
endif
|
||||
endif
|
||||
id_result = run_command('id', '-u', nobody_user)
|
||||
if id_result.returncode() == 0
|
||||
id = id_result.stdout().to_int()
|
||||
if id != 65534
|
||||
message('WARNING:\n' +
|
||||
' The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) +
|
||||
' Your build will result in an user table setup that is incompatible with the local system.')
|
||||
warning('\n' +
|
||||
'The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) +
|
||||
'Your build will result in an user table setup that is incompatible with the local system.')
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -713,24 +699,24 @@ getent_result = run_command('getent', 'group', '65534')
|
||||
if getent_result.returncode() == 0
|
||||
name = getent_result.stdout().split(':')[0]
|
||||
if name != nobody_group
|
||||
message('WARNING:\n' +
|
||||
' The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) +
|
||||
' Your build will result in an group table setup that is incompatible with the local system.')
|
||||
warning('\n' +
|
||||
'The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) +
|
||||
'Your build will result in an group table setup that is incompatible with the local system.')
|
||||
endif
|
||||
endif
|
||||
id_result = run_command('id', '-g', nobody_group)
|
||||
if id_result.returncode() == 0
|
||||
id = id_result.stdout().to_int()
|
||||
if id != 65534
|
||||
message('WARNING:\n' +
|
||||
' The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) +
|
||||
' Your build will result in an group table setup that is incompatible with the local system.')
|
||||
warning('\n' +
|
||||
'The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) +
|
||||
'Your build will result in an group table setup that is incompatible with the local system.')
|
||||
endif
|
||||
endif
|
||||
if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup')
|
||||
message('WARNING:\n' +
|
||||
' The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) +
|
||||
' Please re-check that both "nobody-user" and "nobody-group" options are correctly set.')
|
||||
warning('\n' +
|
||||
'The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) +
|
||||
'Please re-check that both "nobody-user" and "nobody-group" options are correctly set.')
|
||||
endif
|
||||
|
||||
conf.set_quoted('NOBODY_USER_NAME', nobody_user)
|
||||
@ -774,20 +760,17 @@ conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
|
||||
substs.set('SUSHELL', get_option('debug-shell'))
|
||||
substs.set('DEBUGTTY', get_option('debug-tty'))
|
||||
|
||||
debug = get_option('debug')
|
||||
enable_debug_hashmap = false
|
||||
enable_debug_mmap_cache = false
|
||||
if debug != ''
|
||||
foreach name : debug.split(',')
|
||||
if name == 'hashmap'
|
||||
enable_debug_hashmap = true
|
||||
elif name == 'mmap-cache'
|
||||
enable_debug_mmap_cache = true
|
||||
else
|
||||
message('unknown debug option "@0@", ignoring'.format(name))
|
||||
endif
|
||||
endforeach
|
||||
endif
|
||||
foreach name : get_option('debug')
|
||||
if name == 'hashmap'
|
||||
enable_debug_hashmap = true
|
||||
elif name == 'mmap-cache'
|
||||
enable_debug_mmap_cache = true
|
||||
else
|
||||
message('unknown debug option "@0@", ignoring'.format(name))
|
||||
endif
|
||||
endforeach
|
||||
conf.set10('ENABLE_DEBUG_HASHMAP', enable_debug_hashmap)
|
||||
conf.set10('ENABLE_DEBUG_MMAP_CACHE', enable_debug_mmap_cache)
|
||||
|
||||
@ -2967,8 +2950,8 @@ status += [
|
||||
message('\n '.join(status))
|
||||
|
||||
if rootprefixdir != rootprefix_default
|
||||
message('WARNING:\n' +
|
||||
' Note that the installation prefix was changed to "@0@".\n'.format(rootprefixdir) +
|
||||
' systemd used fixed names for unit file directories and other paths, so anything\n' +
|
||||
' except the default ("@0@") is strongly discouraged.'.format(rootprefix_default))
|
||||
warning('\n' +
|
||||
'Note that the installation prefix was changed to "@0@".\n'.format(rootprefixdir) +
|
||||
'systemd used fixed names for unit file directories and other paths, so anything\n' +
|
||||
'except the default ("@0@") is strongly discouraged.'.format(rootprefix_default))
|
||||
endif
|
||||
|
@ -46,8 +46,8 @@ option('debug-shell', type : 'string', value : '/bin/sh',
|
||||
description : 'path to debug shell binary')
|
||||
option('debug-tty', type : 'string', value : '/dev/tty9',
|
||||
description : 'specify the tty device for debug shell')
|
||||
option('debug', type : 'string',
|
||||
description : 'enable extra debugging (hashmap,mmap-cache)')
|
||||
option('debug', type : 'array', choices : ['hashmap', 'mmap-cache'], value : [],
|
||||
description : 'enable extra debugging')
|
||||
option('memory-accounting-default', type : 'boolean',
|
||||
description : 'enable MemoryAccounting= by default')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user