meson: enable more warnings when building efi binary

This commit is contained in:
Yu Watanabe 2021-06-02 15:49:44 +09:00
parent ca474d5114
commit 6526736397
2 changed files with 29 additions and 22 deletions

View file

@ -325,7 +325,7 @@ basic_disabled_warnings = [
'-Wno-format-signedness',
]
possible_cc_flags = [
possible_common_cc_flags = [
'-Werror=undef',
'-Wlogical-op',
'-Wmissing-include-dirs',
@ -334,9 +334,7 @@ possible_cc_flags = [
'-Winit-self',
'-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',
@ -363,8 +361,6 @@ possible_cc_flags = [
'-fdiagnostics-show-option',
'-fno-strict-aliasing',
'-fvisibility=hidden',
'-fstack-protector',
'-fstack-protector-strong',
'--param=ssp-buffer-size=4',
]
@ -374,7 +370,7 @@ possible_cc_flags = [
# busywork. See https://github.com/systemd/systemd/pull/19226.
if cc.get_id() == 'gcc' and (not '02'.contains(get_option('optimization')) or
cc.version().version_compare('<10'))
possible_cc_flags += '-Wno-maybe-uninitialized'
possible_common_cc_flags += '-Wno-maybe-uninitialized'
endif
# --as-needed and --no-undefined are provided by meson by default,
@ -386,14 +382,14 @@ possible_link_flags = [
]
if cc.get_id() == 'clang'
possible_cc_flags += [
possible_common_cc_flags += [
'-Wno-typedef-redefinition',
'-Wno-gnu-variable-sized-type-not-at-end',
]
endif
if get_option('buildtype') != 'debug'
possible_cc_flags += [
possible_common_cc_flags += [
'-ffunction-sections',
'-fdata-sections',
]
@ -401,6 +397,13 @@ if get_option('buildtype') != 'debug'
possible_link_flags += '-Wl,--gc-sections'
endif
possible_cc_flags = possible_common_cc_flags + [
'-Werror=missing-declarations',
'-Werror=missing-prototypes',
'-fstack-protector',
'-fstack-protector-strong',
]
add_project_arguments(cc.get_supported_arguments(basic_disabled_warnings), language : 'c')
add_project_arguments(cc.get_supported_arguments(possible_cc_flags), language : 'c')
add_project_link_arguments(cc.get_supported_link_arguments(possible_link_flags), language : 'c')

View file

@ -175,23 +175,27 @@ if have_gnu_efi
endif
if have_gnu_efi
compile_args = ['-Wall',
'-Wextra',
'-std=gnu99',
'-nostdlib',
compile_args = cc.get_supported_arguments(
basic_disabled_warnings +
possible_common_cc_flags + [
'-ffreestanding',
'-fno-stack-protector',
'-fpic',
'-fshort-wchar',
'-ffreestanding',
'-fno-strict-aliasing',
'-fno-stack-protector',
'-Wall',
'-Wextra',
'-Wsign-compare',
'-Wno-missing-field-initializers',
'-isystem', efi_incdir,
'-isystem', join_paths(efi_incdir, gnu_efi_path_arch),
'-I', fundamental_path,
'-DSD_BOOT',
'-include', efi_config_h,
'-include', version_h]
]
) + [
'-nostdlib',
'-std=gnu99',
'-isystem', efi_incdir,
'-isystem', join_paths(efi_incdir, gnu_efi_path_arch),
'-I', fundamental_path,
'-DSD_BOOT',
'-include', efi_config_h,
'-include', version_h,
]
if efi_arch == 'x86_64'
compile_args += ['-mno-red-zone',
'-mno-sse',