Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / native_client / src / trusted / validator / x86 / ncval_seg_sfi / README
1 This directory contains the code for the native client verifier (ncv)
2 which checks whether binaries adhere to certain control flow
3 and instruction set restrictions. It assumes that segment registers
4 are used to control memory accesses.
5
6 Note: Although the current builds generate 64-bit versions, they do not
7 make any sense, since segment registers have little effect in x86-64.
8
9 Debugging
10 ---------
11
12 Many of the source files contain #define DEBUGGING flags. When
13 DEBUGGING is set to 1, additional debugging print messages are
14 compiled into the code. Unfortunately, by default, these message
15 frequently call routines that are not compiled into corresponding
16 executables (such as ncval and ncdis). To add the additional routines,
17 edit file
18
19    native_client/site_scons/site_tools/library_deps.py
20
21 For x86-32, edit lines
22
23             # When turning on the DEBUGGING flag in the x86-32 validator
24             # or decoder, add the following:
25             #'nc_opcode_modeling_verbose_x86_32',
26
27 to
28
29             # When turning on the DEBUGGING flag in the x86-32 validator
30             # or decoder, add the following:
31             'nc_opcode_modeling_verbose_x86_32',
32
33 For x86-64, edit lines
34
35             # When turning on the DEBUGGING flag in the x86-64 validator
36             # or decoder, add the following:
37             # 'nc_opcode_modeling_verbose_x86_64',
38
39 to
40
41             # When turning on the DEBUGGING flag in the x86-64 validator
42             # or decoder, add the following:
43             'nc_opcode_modeling_verbose_x86_64',
44
45 These changes will make sure that the corresponding print routines are
46 added to the executables during link time.