radare2/libr/anal/meson.build
Riccardo Schirone b703dfbf17 anal/xrefs: single, global xrefs API
* several bugfixes
* Fix xrefs/refs confusion with asm.cmt.refs
* Also check if xref source is valid offset
* Fix ax* to show type of ref
* anal/xrefs: pass the right hashtable to mylistrefs
* r_anal_refs_get should use anal->refs, not anal->xrefs
* anal/fcn: add xref also when there's a CALL to a noreturn function
* projects: use radare2 output of ax command to save/restore xrefs
* core/cmd_anal: when analyzing calls, we should use REF_TYPE_CALL
* core/canal: use xrefs API, because the list is a just a copy
* core/canal: rename "loc." entries to "fcn." when a CALL is found
* sort xrefs to make results consistent
* core/canal: avoid recomputing function every time during `aan`
* anal: move fcn_refs/xrefs functions to the xrefs.c file
* core/canal.c: avoid iterating fcn xrefs list
* anal/xrefs: compute fcn xrefs by analyzing fcn addresses
* remove other unused functions
* anal/xrefs: remove fcn_xrefs_add and fcn_xrefs_deln
* anal/xrefs: remove old fcn->refs/xrefs
* anal/xrefs: directly store RAnalRef objects in the hash table
* libr: prevent memory leaks when using refs/xrefs
* anal/xrefs: merge anal/ref and anal/xref and clean API

Big xrefs/refs refactoring that provides a more uniform and simple API.
It avoids changes to refs/xrefs except through the API and it keeps all
xrefs/refs info in one single place, to improve consistency.

Thanks to:
Riccardo Schirone <sirmy15@gmail.com>
pancake <pancake@nopcode.org>
rene <rlaemmert@gmail.com>
2018-05-04 21:40:47 +02:00

129 lines
2.5 KiB
Meson

files = [
'anal.c',
'anal_ex.c',
#'arch/gb/meta_gb_cmt.c',
'bb.c',
'cc.c',
'cond.c',
'cycles.c',
'data.c',
'diff.c',
'esil.c',
'esil2reil.c',
'esil_stats.c',
'esil_trace.c',
'fcn.c',
'flirt.c',
'hint.c',
'labels.c',
'meta.c',
'op.c',
'p/anal_6502.c',
'p/anal_8051.c',
'p/anal_arc.c',
'p/anal_arm_cs.c',
'p/anal_arm_gnu.c',
'p/anal_avr.c',
'p/anal_bf.c',
'p/anal_cr16.c',
'p/anal_cris.c',
'p/anal_dalvik.c',
'p/anal_ebc.c',
'p/anal_gb.c',
'p/anal_h8300.c',
'p/anal_hexagon.c',
'p/anal_i4004.c',
'p/anal_i8080.c',
'p/anal_java.c',
'p/anal_m68k_cs.c',
'p/anal_malbolge.c',
'p/anal_mips_cs.c',
'p/anal_mips_gnu.c',
'p/anal_msp430.c',
'p/anal_nios2.c',
'p/anal_null.c',
'p/anal_pic.c',
'p/anal_ppc_cs.c',
'p/anal_ppc_gnu.c',
'p/anal_propeller.c',
'p/anal_riscv.c',
#'p/anal_rsp.c',
'p/anal_sh.c',
'p/anal_snes.c',
'p/anal_sparc_cs.c',
'p/anal_sparc_gnu.c',
'p/anal_sysz.c',
'p/anal_tms320.c',
'p/anal_tms320_c55x_plus.c',
'p/anal_tms320c64x.c',
'p/anal_v810.c',
'p/anal_v850.c',
'p/anal_vax.c',
'p/anal_ws.c',
'p/anal_x86_cs.c',
'p/anal_xap.c',
'p/anal_xcore_cs.c',
'p/anal_xtensa.c',
'p/anal_z80.c',
'pin.c',
'reflines.c',
'rtti.c',
'rtti_msvc.c',
'rtti_itanium.c',
'session.c',
'sign.c',
'state.c',
'switch.c',
# 'test.c',
'types.c',
'value.c',
'var.c',
'vtable.c',
'xrefs.c',
'arch/hexagon/hexagon_anal.c',
'../asm/arch/hexagon/hexagon.c',
'../asm/arch/hexagon/hexagon_disas.c',
]
r_anal = library('r_anal', files,
include_directories: [
platform_inc,
include_directories([
'arch/gb',
'../asm/arch/8051',
'../asm/arch/cr16',
'../asm/arch/ebc',
'../asm/arch/h8300',
'../asm/arch/hexagon',
'../anal/arch/hexagon',
'../asm/arch/msp430',
'../asm/arch/propeller',
'../asm/arch/tms320',
'../asm/arch/v810',
'../asm/arch/v850',
'../asm/arch/include/',
'../../shlr/capstone/include',
'../../shlr'
])
],
c_args: ['-DCORELIB=1'],
link_with: [
r_util, r_reg, r_asm, r_syscall, r_search, r_cons, r_flag, libr_shlr
],
install: true,
implicit_include_directories: false,
soversion: r2_libversion
)
pkgconfig_mod.generate(
libraries: [r_anal],
subdirs: 'libr',
version: r2_version,
name: 'r_anal',
filebase: 'r_anal',
requires: [
'r_util', 'r_reg', 'r_asm', 'r_syscall', 'r_search', 'r_cons', 'r_flag'
],
description: 'radare foundation libraries'
)