Chromium Code Reviews| Index: src/trusted/service_runtime/sel_main_chrome.c |
| diff --git a/src/trusted/service_runtime/sel_main_chrome.c b/src/trusted/service_runtime/sel_main_chrome.c |
| index 35dfa02a120fd8a4400c750dbf7c775d798a5766..e7dbfe1c49b9c7c993d59948c2f9e2e7ea14d73e 100644 |
| --- a/src/trusted/service_runtime/sel_main_chrome.c |
| +++ b/src/trusted/service_runtime/sel_main_chrome.c |
| @@ -280,8 +280,22 @@ void NaClChromeMainStart(struct NaClChromeMainArgs *args) { |
| goto done; |
| } |
| - /* Load the integrated runtime (IRT) library. */ |
| - NaClLoadIrt(nap, args->irt_fd); |
| + /* |
| + * Load the integrated runtime (IRT) library. |
| + * We check if there is a segment gap before trying to load the IRT. This |
| + * is to support IRT-less / segment-gap-free PNaCl translator nexes. |
| + * TODO(mseaborn): Plumb through a flag from Chrome in such cases, |
| + * instead of looking for the absence of a segment gap, to provide better |
| + * diagnostics when the linker did not create a segment gap! |
|
Mark Seaborn
2012/06/28 22:50:55
ditto: "when the nexe does not follow NaCl's stabl
jvoung - send to chromium...
2012/06/28 23:02:50
Done.
|
| + */ |
| + if (NULL != nap->text_shm) { |
| + NaClLoadIrt(nap, args->irt_fd); |
| + } else { |
| + NaClLog( |
| + LOG_WARNING, |
| + "Main executable has no segment gap; skipping loading IRT library.\n" |
|
Mark Seaborn
2012/06/28 22:50:55
ditto about multi-line
jvoung - send to chromium...
2012/06/28 23:02:50
Done.
|
| + "This is expected for PNaCl's translator nexes.\n"); |
| + } |
| NaClEnvCleanserCtor(&env_cleanser, 1); |
| if (!NaClEnvCleanserInit(&env_cleanser, envp, NULL)) { |