From 86e0e47bc9706567c44f9ee48badd4f299bb7eed Mon Sep 17 00:00:00 2001 From: Lauri Aarnio Date: Tue, 31 Mar 2009 18:02:12 +0300 Subject: Added "nomap" mapping mode: SB2 can now be used to do native builds, too! - "nomap" mode passes all paths, execs, etc. thru the logic in our preload library, but does not map anything. This is mostly useful for debugging SB2 itself, but can be used for benchmarking etc. also. - Had to add a new option to sb2-init, otherwise "nomap" mode could not be properly initialized on 64-bit intel hosts. --- lua_scripts/pathmaps/nomap/00_default.lua | 68 +++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 lua_scripts/pathmaps/nomap/00_default.lua (limited to 'lua_scripts') diff --git a/lua_scripts/pathmaps/nomap/00_default.lua b/lua_scripts/pathmaps/nomap/00_default.lua new file mode 100644 index 0000000..7f955bb --- /dev/null +++ b/lua_scripts/pathmaps/nomap/00_default.lua @@ -0,0 +1,68 @@ +-- Copyright (C) 2007 Lauri Leukkunen +-- Copyright (C) 2007 Nokia Corporation. +-- Licensed under MIT license. + +-- "nomap" mapping mode: Does not map any paths anywhere, but still pushes +-- all paths thru SB2's path mapping logic, handles execs, etc. +-- +-- This is useful for benchmarking, debugging (SB2's logs are available, if +-- needed), and of course this makes SB2 fully symmetric because now SB2 +-- can be used both for cross-compiling and for native builds! :-) ;-) +-- +-- Note that the target architecture should be set to host architecture +-- while using this mode; usually a special "nomap" target should be created. +-- Example: +-- for 64-bit intel/amd architectures ("uname -m" displays "x86_64"): +-- sb2-init -A amd64 -M x86_64 -n -m nomap nomap +-- Next, use "sb2 -t nomap" to enter this mode (i.e. things usually go wrong +-- if you try to use the the "-m" option to enter this mode, but the target +-- is still something else than the host. The destination architecture is not +-- selected by the mapping mode...) + +-- Rule file interface version, mandatory. +-- +rule_file_interface_version = "21" +---------------------------------- + +-- disable the gcc toolchain tricks. +enable_cross_gcc_toolchain = false + +nomap_chain = { + next_chain = nil, + binary = nil, + rules = { + -- Don't map. + {prefix = "/", use_orig_path = true}, + } +} + +export_chains = { + nomap_chain +} + +-- Exec policy rules. + +default_exec_policy = { + name = "Default" +} + +-- Note that the real path (mapped path) is used when looking up rules! +all_exec_policies_chain = { + next_chain = nil, + binary = nil, + rules = { + -- DEFAULT RULE (must exist): + {prefix = "/", exec_policy = default_exec_policy} + } +} + +exec_policy_chains = { + all_exec_policies_chain +} + +-- This table lists all exec policies - this is used when the current +-- process wants to locate the currently active policy +all_exec_policies = { + default_exec_policy, +} + -- cgit v1.2.3