summaryrefslogtreecommitdiffstats
path: root/sandbox/src/dep_test.cc
diff options
context:
space:
mode:
authormarkus@chromium.org <markus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-21 23:04:11 +0000
committermarkus@chromium.org <markus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-21 23:04:11 +0000
commit6b603d9092891f9b3e2e7b54a7000e3595252f84 (patch)
tree5e5bfc3831a959964e5585ec3a32816a5d64243d /sandbox/src/dep_test.cc
parentebc3c8bdb77ce5926e0bb6961851d9e3546f7274 (diff)
downloadchromium_src-6b603d9092891f9b3e2e7b54a7000e3595252f84.zip
chromium_src-6b603d9092891f9b3e2e7b54a7000e3595252f84.tar.gz
chromium_src-6b603d9092891f9b3e2e7b54a7000e3595252f84.tar.bz2
- found all symbols that we directly access from assembly and marked them as internal. This ensures
that the linker won't complain about IP relative addressing for symbols that could be overridden at run-time. - avoided using "g" register constraints, as there has been a report of some versions of GCC erroneously generating code that is no longer position independant when this constraint is used. - removed the old code that fork()'s a child to try to extend mappings of libraries at run-time. This code always was somewhat fragile and caused a measurable performance penalty when the sandbox was started. Replaced with code that remapped just the very first page. This can actually be done in a running process without disrupting the use of the libraries. - added a special case for the instrumentation code allowing it to deal with jumps between the VDSO and VSyscalls even if the instructions would normally not be eligible for interception as they are IP relative. After making this change, we can again find sufficiently large code snippets to rewrite them successfully. This is only a concern on x86_64. - fixed a bug that would erroneously look for IP relative addressing on x86_32. It doesn't exist for that architecture. TEST=none BUG=http://code.google.com/p/chromium/issues/detail?id=18337 Review URL: http://codereview.chromium.org/306036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29726 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sandbox/src/dep_test.cc')
0 files changed, 0 insertions, 0 deletions