Set CI buildtypes to highest opt level possible and set default buildtype to debugoptimized (#260)

* Set default meson buildtype to debugoptimized
* Add separate Codecov build and remove linux-meson-gcc-build build
* Set test buildtypes to highest optimization level possible
* Run Codecov build only on dev branch
This commit is contained in:
Khairul Azhar Kasmiran 2021-03-10 18:00:56 +08:00 committed by GitHub
parent b37d6fbe0e
commit 7a4f9b3201
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 125 additions and 90 deletions

View file

@ -52,10 +52,10 @@ jobs:
matrix:
name: [
linux-meson-clang-tests,
linux-meson-gcc-build,
linux-meson-gcc-tests,
macos-meson-clang-tests,
linux-gcc-tests-asan,
linux-gcc-tests-codecov,
capstone-v3,
capstone-next
]
@ -65,32 +65,24 @@ jobs:
build_system: meson
compiler: clang
run_tests: true
meson_options: -Dbuildtype=release
enabled: ${{ github.event_name != 'pull_request' && needs.changes.outputs.edited == 'true' }}
timeout: 45
- name: linux-meson-gcc-build
os: ubuntu-20.04
build_system: meson
compiler: gcc
enabled: ${{ github.event_name == 'pull_request' && needs.changes.outputs.edited == 'true' }}
timeout: 45
cflags: '-Wno-cpp'
meson_options: --werror
- name: linux-meson-gcc-tests
os: ubuntu-20.04
build_system: meson
compiler: gcc
run_tests: true
meson_options: -Db_coverage=true -Duse_webui=true --werror
coverage: true
meson_options: -Dbuildtype=release --werror
enabled: ${{ needs.changes.outputs.edited == 'true' }}
timeout: 60
timeout: 45
cflags: '-Wno-cpp'
- name: macos-meson-clang-tests
os: macos-latest
build_system: meson
compiler: clang
run_tests: true
meson_options: -Duse_webui=true
meson_options: -Dbuildtype=release -Duse_webui=true
enabled: ${{ needs.changes.outputs.edited == 'true' }}
timeout: 60
- name: linux-gcc-tests-asan
@ -98,17 +90,27 @@ jobs:
build_system: meson
compiler: gcc
cflags: '-DRZ_ASSERT_STDOUT=1 -Wno-cpp'
meson_options: -Db_sanitize=address,undefined -Duse_webui=true --werror
meson_options: -Dbuildtype=debugoptimized -Db_sanitize=address,undefined -Duse_webui=true --werror
asan: true
asan_options: 'detect_leaks=0,detect_odr_violation=0,allocator_may_return_null=1'
run_tests: true
enabled: ${{ (github.event_name != 'pull_request' || contains(github.head_ref, 'asan') || contains(github.head_ref, 'import')) && needs.changes.outputs.edited == 'true' }}
timeout: 100
- name: linux-gcc-tests-codecov
os: ubuntu-20.04
build_system: meson
compiler: gcc
run_tests: true
meson_options: -Dbuildtype=debug -Db_coverage=true -Duse_webui=true --werror
coverage: true
enabled: ${{ github.event_name != 'pull_request' && needs.changes.outputs.edited == 'true' }}
timeout: 60
cflags: '-Wno-cpp'
- name: capstone-v3
os: ubuntu-20.04
build_system: meson
compiler: gcc
meson_options: -Duse_capstone_version=v3 --werror
meson_options: -Dbuildtype=release -Duse_capstone_version=v3 --werror
run_tests: false
enabled: ${{ (github.event_name != 'pull_request' || contains(github.head_ref, 'capstone')) && needs.changes.outputs.edited == 'true' }}
timeout: 45
@ -117,7 +119,7 @@ jobs:
os: ubuntu-20.04
build_system: meson
compiler: gcc
meson_options: -Duse_capstone_version=next --werror
meson_options: -Dbuildtype=release -Duse_capstone_version=next --werror
run_tests: false
enabled: ${{ (github.event_name != 'pull_request' || contains(github.head_ref, 'capstone')) && needs.changes.outputs.edited == 'true' }}
timeout: 45

View file

@ -13,7 +13,13 @@
extern ut32 constant_extender;
int hexagon_disasm_instruction(ut32 hi_u32, HexInsn *hi, ut32 addr) {
#if ASAN
#define NO_OPT_IF_ASAN __attribute__((optimize(0)))
#else
#define NO_OPT_IF_ASAN
#endif
NO_OPT_IF_ASAN int hexagon_disasm_instruction(ut32 hi_u32, HexInsn *hi, ut32 addr) {
// DUPLEXES
if (((hi_u32 >> 14) & 0x3) == 0) {
switch ((((hi_u32 >> 29) & 0xF) << 1) | ((hi_u32 >> 13) & 1)) {

View file

@ -3,6 +3,7 @@ project('rizin', 'c',
license: 'LGPL3',
meson_version: '>=0.55.0',
default_options: [
'buildtype=debugoptimized',
'b_vscrt=from_buildtype',
]
)

View file

@ -47,24 +47,30 @@ cs_files = [
capstone_includes = [include_directories('include')]
libcapstone_c_args = [
'-DCAPSTONE_X86_ATT_DISABLE_NO',
'-DCAPSTONE_X86_REDUCE_NO',
'-DCAPSTONE_USE_SYS_DYN_MEM',
'-DCAPSTONE_DIET_NO',
'-DCAPSTONE_HAS_ARM',
'-DCAPSTONE_HAS_ARM64',
'-DCAPSTONE_HAS_M68K',
'-DCAPSTONE_HAS_M680X',
'-DCAPSTONE_HAS_MIPS',
'-DCAPSTONE_HAS_POWERPC',
'-DCAPSTONE_HAS_SPARC',
'-DCAPSTONE_HAS_SYSZ',
'-DCAPSTONE_HAS_X86',
'-DCAPSTONE_HAS_XCORE',
'-DCAPSTONE_HAS_TMS320C64X',
]
warn_trunc_flag = '-Wno-error=stringop-truncation'
if meson.get_compiler('c').has_argument(warn_trunc_flag)
libcapstone_c_args += warn_trunc_flag
endif
libcapstone = library('capstone', cs_files,
c_args: [
'-DCAPSTONE_X86_ATT_DISABLE_NO',
'-DCAPSTONE_X86_REDUCE_NO',
'-DCAPSTONE_USE_SYS_DYN_MEM',
'-DCAPSTONE_DIET_NO',
'-DCAPSTONE_HAS_ARM',
'-DCAPSTONE_HAS_ARM64',
'-DCAPSTONE_HAS_M68K',
'-DCAPSTONE_HAS_M680X',
'-DCAPSTONE_HAS_MIPS',
'-DCAPSTONE_HAS_POWERPC',
'-DCAPSTONE_HAS_SPARC',
'-DCAPSTONE_HAS_SYSZ',
'-DCAPSTONE_HAS_X86',
'-DCAPSTONE_HAS_XCORE',
'-DCAPSTONE_HAS_TMS320C64X',
],
c_args: libcapstone_c_args,
include_directories: capstone_includes,
implicit_include_directories: false
)
@ -72,4 +78,4 @@ libcapstone = library('capstone', cs_files,
capstone_dep = declare_dependency(
link_with: libcapstone,
include_directories: capstone_includes
)
)

View file

@ -57,24 +57,30 @@ cs_files = [
capstone_includes = [include_directories('include'), include_directories('include/capstone')]
libcapstone_c_args = [
'-DCAPSTONE_X86_ATT_DISABLE_NO',
'-DCAPSTONE_X86_REDUCE_NO',
'-DCAPSTONE_USE_SYS_DYN_MEM',
'-DCAPSTONE_DIET_NO',
'-DCAPSTONE_HAS_ARM',
'-DCAPSTONE_HAS_ARM64',
'-DCAPSTONE_HAS_M68K',
'-DCAPSTONE_HAS_M680X',
'-DCAPSTONE_HAS_MIPS',
'-DCAPSTONE_HAS_POWERPC',
'-DCAPSTONE_HAS_SPARC',
'-DCAPSTONE_HAS_SYSZ',
'-DCAPSTONE_HAS_X86',
'-DCAPSTONE_HAS_XCORE',
'-DCAPSTONE_HAS_TMS320C64X',
]
warn_trunc_flag = '-Wno-error=stringop-truncation'
if meson.get_compiler('c').has_argument(warn_trunc_flag)
libcapstone_c_args += warn_trunc_flag
endif
libcapstone = library('capstone', cs_files,
c_args: [
'-DCAPSTONE_X86_ATT_DISABLE_NO',
'-DCAPSTONE_X86_REDUCE_NO',
'-DCAPSTONE_USE_SYS_DYN_MEM',
'-DCAPSTONE_DIET_NO',
'-DCAPSTONE_HAS_ARM',
'-DCAPSTONE_HAS_ARM64',
'-DCAPSTONE_HAS_M68K',
'-DCAPSTONE_HAS_M680X',
'-DCAPSTONE_HAS_MIPS',
'-DCAPSTONE_HAS_POWERPC',
'-DCAPSTONE_HAS_SPARC',
'-DCAPSTONE_HAS_SYSZ',
'-DCAPSTONE_HAS_X86',
'-DCAPSTONE_HAS_XCORE',
'-DCAPSTONE_HAS_TMS320C64X',
],
c_args: libcapstone_c_args,
include_directories: capstone_includes,
implicit_include_directories: false
)
@ -82,4 +88,4 @@ libcapstone = library('capstone', cs_files,
capstone_dep = declare_dependency(
link_with: libcapstone,
include_directories: capstone_includes
)
)

View file

@ -57,24 +57,30 @@ cs_files = [
capstone_includes = [include_directories('include'), include_directories('include/capstone')]
libcapstone_c_args = [
'-DCAPSTONE_X86_ATT_DISABLE_NO',
'-DCAPSTONE_X86_REDUCE_NO',
'-DCAPSTONE_USE_SYS_DYN_MEM',
'-DCAPSTONE_DIET_NO',
'-DCAPSTONE_HAS_ARM',
'-DCAPSTONE_HAS_ARM64',
'-DCAPSTONE_HAS_M68K',
'-DCAPSTONE_HAS_M680X',
'-DCAPSTONE_HAS_MIPS',
'-DCAPSTONE_HAS_POWERPC',
'-DCAPSTONE_HAS_SPARC',
'-DCAPSTONE_HAS_SYSZ',
'-DCAPSTONE_HAS_X86',
'-DCAPSTONE_HAS_XCORE',
'-DCAPSTONE_HAS_TMS320C64X',
]
warn_trunc_flag = '-Wno-error=stringop-truncation'
if meson.get_compiler('c').has_argument(warn_trunc_flag)
libcapstone_c_args += warn_trunc_flag
endif
libcapstone = library('capstone', cs_files,
c_args: [
'-DCAPSTONE_X86_ATT_DISABLE_NO',
'-DCAPSTONE_X86_REDUCE_NO',
'-DCAPSTONE_USE_SYS_DYN_MEM',
'-DCAPSTONE_DIET_NO',
'-DCAPSTONE_HAS_ARM',
'-DCAPSTONE_HAS_ARM64',
'-DCAPSTONE_HAS_M68K',
'-DCAPSTONE_HAS_M680X',
'-DCAPSTONE_HAS_MIPS',
'-DCAPSTONE_HAS_POWERPC',
'-DCAPSTONE_HAS_SPARC',
'-DCAPSTONE_HAS_SYSZ',
'-DCAPSTONE_HAS_X86',
'-DCAPSTONE_HAS_XCORE',
'-DCAPSTONE_HAS_TMS320C64X',
],
c_args: libcapstone_c_args,
include_directories: capstone_includes,
implicit_include_directories: false
)
@ -82,4 +88,4 @@ libcapstone = library('capstone', cs_files,
capstone_dep = declare_dependency(
link_with: libcapstone,
include_directories: capstone_includes
)
)

View file

@ -58,24 +58,30 @@ cs_files = [
capstone_includes = [include_directories('include'), include_directories('include/capstone')]
libcapstone_c_args = [
'-DCAPSTONE_X86_ATT_DISABLE_NO',
'-DCAPSTONE_X86_REDUCE_NO',
'-DCAPSTONE_USE_SYS_DYN_MEM',
'-DCAPSTONE_DIET_NO',
'-DCAPSTONE_HAS_ARM',
'-DCAPSTONE_HAS_ARM64',
'-DCAPSTONE_HAS_M68K',
'-DCAPSTONE_HAS_M680X',
'-DCAPSTONE_HAS_MIPS',
'-DCAPSTONE_HAS_POWERPC',
'-DCAPSTONE_HAS_SPARC',
'-DCAPSTONE_HAS_SYSZ',
'-DCAPSTONE_HAS_X86',
'-DCAPSTONE_HAS_XCORE',
'-DCAPSTONE_HAS_TMS320C64X',
]
warn_trunc_flag = '-Wno-error=stringop-truncation'
if meson.get_compiler('c').has_argument(warn_trunc_flag)
libcapstone_c_args += warn_trunc_flag
endif
libcapstone = library('capstone', cs_files,
c_args: [
'-DCAPSTONE_X86_ATT_DISABLE_NO',
'-DCAPSTONE_X86_REDUCE_NO',
'-DCAPSTONE_USE_SYS_DYN_MEM',
'-DCAPSTONE_DIET_NO',
'-DCAPSTONE_HAS_ARM',
'-DCAPSTONE_HAS_ARM64',
'-DCAPSTONE_HAS_M68K',
'-DCAPSTONE_HAS_M680X',
'-DCAPSTONE_HAS_MIPS',
'-DCAPSTONE_HAS_POWERPC',
'-DCAPSTONE_HAS_SPARC',
'-DCAPSTONE_HAS_SYSZ',
'-DCAPSTONE_HAS_X86',
'-DCAPSTONE_HAS_XCORE',
'-DCAPSTONE_HAS_TMS320C64X',
],
c_args: libcapstone_c_args,
include_directories: capstone_includes,
implicit_include_directories: false
)
@ -83,4 +89,4 @@ libcapstone = library('capstone', cs_files,
capstone_dep = declare_dependency(
link_with: libcapstone,
include_directories: capstone_includes
)
)

View file

@ -5,8 +5,10 @@ files = [
'subprocess-interactive',
]
warn_unused_flag = '-Wno-unused-result'
foreach file : files
executable(file, '@0@.c'.format(file),
c_args: meson.get_compiler('c').has_argument(warn_unused_flag) ? [warn_unused_flag] : [],
install: false
)
endforeach
endforeach