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

Unified Diff: tests/pnacl_dynamic_loading/libc_entry.c

Issue 1743893002: PNaCl dynamic linking: Build an initial dynamically-linked newlib-based libc (Closed) Base URL: https://chromium.googlesource.com/native_client/src/native_client.git@master
Patch Set: Review: rename library Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/untrusted/pll_loader/pll_loader_main.cc ('k') | tests/pnacl_dynamic_loading/nacl.scons » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/pnacl_dynamic_loading/libc_entry.c
diff --git a/tests/pnacl_dynamic_loading/libc_entry.c b/tests/pnacl_dynamic_loading/libc_entry.c
new file mode 100644
index 0000000000000000000000000000000000000000..57339161f652b4572a13f9c932dec45df79708ba
--- /dev/null
+++ b/tests/pnacl_dynamic_loading/libc_entry.c
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2016 The Native Client Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "native_client/src/include/elf32.h"
+#include "native_client/src/untrusted/nacl/nacl_irt.h"
+#include "native_client/src/untrusted/nacl/start.h"
+#include "native_client/src/untrusted/nacl/tls.h"
+
+
+/*
+ * Provide dummy definitions of _init() and _fini() because they are
+ * referenced by libc.a's __libc_init_array(), which we do not use in this
+ * context.
+ */
+
+void _init(void) {
+ abort();
+}
+
+void _fini(void) {
+ abort();
+}
+
+/*
+ * Provide dummy definitions of the TLS layout functions because they are
+ * referenced by libnacl.a's tls.c, which we do not use in this context.
+ */
+
+ptrdiff_t __nacl_tp_tls_offset(size_t tls_size) {
+ abort();
+}
+
+ptrdiff_t __nacl_tp_tdb_offset(size_t tdb_size) {
+ abort();
+}
+
+void __libc_start(int argc, char **argv, char **envp, Elf32_auxv_t *auxv) {
+ environ = envp;
+
+ __libnacl_irt_init(auxv);
+
+ /*
+ * We don't support TLS or pthreads yet, so we skip
+ * __pthread_initialize() for now.
+ */
+ __newlib_thread_init();
+
+ exit(main(argc, argv, envp));
+
+ __builtin_trap();
+}
« no previous file with comments | « src/untrusted/pll_loader/pll_loader_main.cc ('k') | tests/pnacl_dynamic_loading/nacl.scons » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698