Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: mojo/nacl/nonsfi/README.md

Issue 1398213003: Refactored Non-SFI and SFI NaCl into separate directories. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/nacl/nonsfi/BUILD.gn ('k') | mojo/nacl/nonsfi/irt_mojo_nonsfi.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 About
2 =====
3
4 This directory contains the necessary components to run Non-SFI NaCl
5 nexes (native executables) from within Mojo.
6
7 Using
8 =====
9
10 The Non-SFI NaCl and accompanying tests should be built by default for Linux.
11 The boolean indicating if they are built is "mojo_use_nacl_nonsfi", defined
12 inside the BUILD files.
13
14 Build Mojo (all following commands assume you are in the root of the mojo
15 repository):
16
17 ```
18 $ ./mojo/tools/mojob.py gn
19 $ ./mojo/tools/mojob.py build
20 ```
21
22 Doing this build step will automatically create a pexe of unit tests, at
23 `./out/Debug/newlib_pnacl/monacl_test.pexe`. To translate a pexe into a
24 non-SFI nexe:
25
26 ```
27 $ ./native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-translate \
28 ./out/Debug/newlib_pnacl/FOOBAR.pexe -o FOOBAR.nexe -arch x86-32-nonsfi
29 ```
30
31 Now, you should have the fully translated nexe (called
32 "FOOBAR.nexe"). You can run the nexe through the monacl shell
33 (a minimal, "nexe-only" shell, which loads the nexe ELF file -- see
34 monacl_shell_nonsfi.cc):
35
36 ```
37 $ ./out/Debug/clang_x86/monacl_shell_nonsfi FOOBAR.nexe
38 ```
39
40 This monacl_shell_nonsfi is the easiest way to run nexes in Mojo -- however, it
41 is not the only way. Usually, applications are launched through the
42 "mojo_shell", but some additional information is required to know how to handle
43 this content (i.e., how does the mojo_shell know it is dealing with a nonsfi
44 nexe?).
45
46 The BUILD.gn files in Mojo automatically make this pexe, translate it to a
47 nexe, and prepend a line ("#!mojo mojo:nacl_content_handler_nonsfi") to the
48 front of the file, at which point it is also runnable through the mojo_shell.
49 These files, which start with this "#!" line, are ".mojo" files. The nexes can
50 be run like this:
51
52 ```
53 $ ./out/Debug/mojo_shell --enable-multiprocess out/Debug/FOOBAR.mojo
54 ```
55
56 TODO
57 ====
58
59 * Enable content handling of Non-SFI pexes, which should be translated and run
60 as nexes.
61 * Use subzero (a NaCl project to improve translation speed) for pexe
62 translation.
63 * Enable caching of translated pexes.
OLDNEW
« no previous file with comments | « mojo/nacl/nonsfi/BUILD.gn ('k') | mojo/nacl/nonsfi/irt_mojo_nonsfi.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698