summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authorsbc <sbc@chromium.org>2016-02-02 12:45:20 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-02 20:46:12 +0000
commitc993138c3d8ad664955d8a328011984746bffff0 (patch)
tree88ab5bb720ca445dda8bfde93e7059bd89fecf12 /native_client_sdk
parent670f3ee9fe0f8564c3cb657e64f44c31fb4cfa5d (diff)
downloadchromium_src-c993138c3d8ad664955d8a328011984746bffff0.zip
chromium_src-c993138c3d8ad664955d8a328011984746bffff0.tar.gz
chromium_src-c993138c3d8ad664955d8a328011984746bffff0.tar.bz2
[NaCl SDK] Cleanup references to old newlib toolchain
- remove references from the docs - don't build newlib SDK componenes - remove newlib as a valid toolchain in the build system - remove use_sysroot=1 setting (this is now the default) - remove old/unused dsc2gyp.py script - regenerate docs CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:linux_nacl_sdk;tryserver.chromium.mac:mac_nacl_sdk Review URL: https://codereview.chromium.org/1655873003 Cr-Commit-Position: refs/heads/master@{#373024}
Diffstat (limited to 'native_client_sdk')
-rw-r--r--native_client_sdk/doc_generated/c-api-beta.html4
-rw-r--r--native_client_sdk/doc_generated/c-api-dev.html4
-rw-r--r--native_client_sdk/doc_generated/c-api.html4
-rw-r--r--native_client_sdk/doc_generated/cpp-api-beta.html4
-rw-r--r--native_client_sdk/doc_generated/cpp-api-dev.html4
-rw-r--r--native_client_sdk/doc_generated/cpp-api.html4
-rw-r--r--native_client_sdk/doc_generated/devguide/devcycle/building.html49
-rw-r--r--native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html27
-rw-r--r--native_client_sdk/doc_generated/devguide/tutorial/tutorial-part2.html9
-rw-r--r--native_client_sdk/doc_generated/pepper_beta/index.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_dev/index.html4
-rw-r--r--native_client_sdk/doc_generated/pepper_stable/index.html4
-rw-r--r--native_client_sdk/doc_generated/sdk/examples.html66
-rw-r--r--native_client_sdk/doc_generated/sdk/release-notes.html9
-rw-r--r--native_client_sdk/doc_generated/sitemap.html1
-rw-r--r--native_client_sdk/src/BUILDING.rst18
-rw-r--r--native_client_sdk/src/README.Makefiles5
-rwxr-xr-xnative_client_sdk/src/build_tools/build_projects.py7
-rwxr-xr-xnative_client_sdk/src/build_tools/build_sdk.py59
-rwxr-xr-xnative_client_sdk/src/build_tools/dsc2gyp.py378
-rw-r--r--native_client_sdk/src/build_tools/nacl.gypi27
-rwxr-xr-xnative_client_sdk/src/build_tools/parse_dsc.py1
-rw-r--r--native_client_sdk/src/build_tools/sdk_files.list1
-rw-r--r--native_client_sdk/src/doc/Makefile2
-rw-r--r--native_client_sdk/src/doc/c-api-beta.rst4
-rw-r--r--native_client_sdk/src/doc/c-api-dev.rst4
-rw-r--r--native_client_sdk/src/doc/c-api.rst4
-rw-r--r--native_client_sdk/src/doc/cpp-api-beta.rst4
-rw-r--r--native_client_sdk/src/doc/cpp-api-dev.rst4
-rw-r--r--native_client_sdk/src/doc/cpp-api.rst4
-rw-r--r--native_client_sdk/src/doc/devguide/devcycle/building.rst51
-rw-r--r--native_client_sdk/src/doc/devguide/devcycle/dynamic-loading.rst14
-rw-r--r--native_client_sdk/src/doc/devguide/tutorial/tutorial-part2.rst9
-rwxr-xr-xnative_client_sdk/src/doc/doxygen/generate_docs.py5
-rw-r--r--native_client_sdk/src/doc/pepper_beta/index.rst4
-rw-r--r--native_client_sdk/src/doc/pepper_dev/index.rst4
-rw-r--r--native_client_sdk/src/doc/pepper_stable/index.rst4
-rw-r--r--native_client_sdk/src/doc/sdk/examples.rst66
-rw-r--r--native_client_sdk/src/doc/sdk/release-notes.rst9
-rw-r--r--native_client_sdk/src/getting_started/part2/README5
-rw-r--r--native_client_sdk/src/getting_started/part2/index.html6
-rw-r--r--native_client_sdk/src/gonacl_appengine/src/cube/Makefile2
-rw-r--r--native_client_sdk/src/gonacl_appengine/src/earth/Makefile2
-rw-r--r--native_client_sdk/src/gonacl_appengine/src/life/Makefile2
-rw-r--r--native_client_sdk/src/gonacl_appengine/src/voronoi/Makefile2
-rwxr-xr-xnative_client_sdk/src/tools/compiler-wrapper.py35
46 files changed, 244 insertions, 695 deletions
diff --git a/native_client_sdk/doc_generated/c-api-beta.html b/native_client_sdk/doc_generated/c-api-beta.html
index 1bb2e15..be85048 100644
--- a/native_client_sdk/doc_generated/c-api-beta.html
+++ b/native_client_sdk/doc_generated/c-api-beta.html
@@ -2,8 +2,8 @@
<span class="target" id="c-api-beta"><span id="pepper-beta-c-index"></span></span><section id="pepper-c-api-reference-beta">
<h1 id="pepper-c-api-reference-beta">Pepper C API Reference (Beta)</h1>
-<p>This page lists the C API for Pepper 48. Apps that use this API can
-run in Chrome 48 or higher.</p>
+<p>This page lists the C API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.</p>
<h2 id="interfaces"><a class="reference external" href="pepper_beta/c/group___interfaces.html">Interfaces</a></h2>
<blockquote>
<div><ul class="small-gap">
diff --git a/native_client_sdk/doc_generated/c-api-dev.html b/native_client_sdk/doc_generated/c-api-dev.html
index 7eba9f2..603e0e4 100644
--- a/native_client_sdk/doc_generated/c-api-dev.html
+++ b/native_client_sdk/doc_generated/c-api-dev.html
@@ -2,8 +2,8 @@
<span class="target" id="c-api-dev"><span id="pepper-dev-c-index"></span></span><section id="pepper-c-api-reference-dev">
<h1 id="pepper-c-api-reference-dev">Pepper C API Reference (Dev)</h1>
-<p>This page lists the C API for Pepper 49. Apps that use this API can
-run in Chrome 49 or higher.</p>
+<p>This page lists the C API for Pepper 50. Apps that use this API can
+run in Chrome 50 or higher.</p>
<h2 id="interfaces"><a class="reference external" href="pepper_dev/c/group___interfaces.html">Interfaces</a></h2>
<blockquote>
<div><ul class="small-gap">
diff --git a/native_client_sdk/doc_generated/c-api.html b/native_client_sdk/doc_generated/c-api.html
index 7ccf67d..71132b3 100644
--- a/native_client_sdk/doc_generated/c-api.html
+++ b/native_client_sdk/doc_generated/c-api.html
@@ -2,8 +2,8 @@
<span class="target" id="c-api"><span id="pepper-stable-c-index"></span></span><section id="pepper-c-api-reference-stable">
<h1 id="pepper-c-api-reference-stable">Pepper C API Reference (Stable)</h1>
-<p>This page lists the C API for Pepper 47. Apps that use this API can
-run in Chrome 47 or higher.</p>
+<p>This page lists the C API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.</p>
<h2 id="interfaces"><a class="reference external" href="pepper_stable/c/group___interfaces.html">Interfaces</a></h2>
<blockquote>
<div><ul class="small-gap">
diff --git a/native_client_sdk/doc_generated/cpp-api-beta.html b/native_client_sdk/doc_generated/cpp-api-beta.html
index 2d33b8fb..8a55673 100644
--- a/native_client_sdk/doc_generated/cpp-api-beta.html
+++ b/native_client_sdk/doc_generated/cpp-api-beta.html
@@ -2,8 +2,8 @@
<span class="target" id="cpp-api-beta"><span id="pepper-beta-cpp-index"></span></span><section id="pepper-c-api-reference-beta">
<h1 id="pepper-c-api-reference-beta">Pepper C++ API Reference (Beta)</h1>
-<p>This page lists the C++ API for Pepper 48. Apps that use this API can
-run in Chrome 48 or higher.</p>
+<p>This page lists the C++ API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.</p>
<h2 id="classes"><a class="reference external" href="pepper_beta/cpp/inherits.html">Classes</a></h2>
<blockquote>
<div><ul class="small-gap">
diff --git a/native_client_sdk/doc_generated/cpp-api-dev.html b/native_client_sdk/doc_generated/cpp-api-dev.html
index aac0740..a3b6118 100644
--- a/native_client_sdk/doc_generated/cpp-api-dev.html
+++ b/native_client_sdk/doc_generated/cpp-api-dev.html
@@ -2,8 +2,8 @@
<span class="target" id="cpp-api-dev"><span id="pepper-dev-cpp-index"></span></span><section id="pepper-c-api-reference-dev">
<h1 id="pepper-c-api-reference-dev">Pepper C++ API Reference (Dev)</h1>
-<p>This page lists the C++ API for Pepper 49. Apps that use this API can
-run in Chrome 49 or higher.</p>
+<p>This page lists the C++ API for Pepper 50. Apps that use this API can
+run in Chrome 50 or higher.</p>
<h2 id="classes"><a class="reference external" href="pepper_dev/cpp/inherits.html">Classes</a></h2>
<blockquote>
<div><ul class="small-gap">
diff --git a/native_client_sdk/doc_generated/cpp-api.html b/native_client_sdk/doc_generated/cpp-api.html
index 94b9de8..18ddb8a 100644
--- a/native_client_sdk/doc_generated/cpp-api.html
+++ b/native_client_sdk/doc_generated/cpp-api.html
@@ -2,8 +2,8 @@
<span class="target" id="cpp-api"><span id="pepper-stable-cpp-index"></span></span><section id="pepper-c-api-reference-stable">
<h1 id="pepper-c-api-reference-stable">Pepper C++ API Reference (Stable)</h1>
-<p>This page lists the C++ API for Pepper 47. Apps that use this API can
-run in Chrome 47 or higher.</p>
+<p>This page lists the C++ API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.</p>
<h2 id="classes"><a class="reference external" href="pepper_stable/cpp/inherits.html">Classes</a></h2>
<blockquote>
<div><ul class="small-gap">
diff --git a/native_client_sdk/doc_generated/devguide/devcycle/building.html b/native_client_sdk/doc_generated/devguide/devcycle/building.html
index 0868816..5a6118f 100644
--- a/native_client_sdk/doc_generated/devguide/devcycle/building.html
+++ b/native_client_sdk/doc_generated/devguide/devcycle/building.html
@@ -72,17 +72,19 @@ Makefiles included with the SDK examples.</p>
<p>This section will mostly cover PNaCl, but also describes how to build
<strong>nexe</strong> applications.</p>
<h3 id="c-libraries">C libraries</h3>
-<p>The PNaCl SDK has a single choice of C library: <a class="reference external" href="http://sourceware.org/newlib/">newlib</a>.</p>
-<p>The Native Client SDK also has a GCC-based toolchain for building
-<strong>nexes</strong>. The GCC-based toolchain has support for two C libraries:
-<a class="reference external" href="http://sourceware.org/newlib/">newlib</a> and <a class="reference external" href="http://www.gnu.org/software/libc/">glibc</a>. See <a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html"><em>Dynamic Linking &amp; Loading with glibc</em></a> for information about these libraries, including factors to
-help you decide which to use.</p>
+<p>The PNaCl toolchain uses the <a class="reference external" href="http://sourceware.org/newlib/">newlib</a> C library and can be used to build
+portable <strong>pexe</strong> files (using <code>pnacl-clang</code>) or <strong>nexe</strong> files (using, for
+example, <code>x86_64-nacl-clang</code>). The Native Client SDK also has a
+GCC-based toolchain for building <strong>nexe</strong> files which uses the <a class="reference external" href="http://www.gnu.org/software/libc/">glibc</a> C library.
+See <a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html"><em>Dynamic Linking &amp; Loading with glibc</em></a> for
+information about these libraries, including factors to help you decide which to
+use.</p>
<h3 id="c-standard-libraries"><span id="building-cpp-libraries"></span>C++ standard libraries</h3>
<p>The PNaCl SDK can use either LLVM&#8217;s <a class="reference external" href="http://libcxx.llvm.org/">libc++</a>
(the current default) or GCC&#8217;s <a class="reference external" href="http://gcc.gnu.org/libstdc++">libstdc++</a> (deprecated). The
<code>-stdlib=[libc++|libstdc++]</code> command line argument can be used to
choose which standard library to use.</p>
-<p>The GCC-based Native Client SDK only has support for GCC&#8217;s <a class="reference external" href="http://gcc.gnu.org/libstdc++">libstdc++</a>.</p>
+<p>The GCC-based toolchain only has support for GCC&#8217;s <a class="reference external" href="http://gcc.gnu.org/libstdc++">libstdc++</a>.</p>
<p>C++11 library support is only complete in libc++ but other non-library language
features should work regardless of which standard library is used. The
<code>-std=gnu++11</code> command line argument can be used to indicate which C++
@@ -368,12 +370,12 @@ flags, e.g., you can specify <code>x86_64-nacl-gcc -m32</code> to compile a 32-b
files with the PNaCl-based toolchain, except that the output is
architecture specific.</p>
<p>For example, assuming you&#8217;re developing on a Windows machine, targeting the x86
-architecture, and using the newlib library, you can compile a 32-bit <strong>.nexe</strong>
-for the hello_world example with the following command:</p>
+architecture you can compile a 32-bit <strong>.nexe</strong> for the hello_world example with
+the following command:</p>
<pre>
-nacl_sdk/pepper_&lt;version&gt;/toolchain/win_x86_newlib/bin/i686-nacl-gcc \
+nacl_sdk/pepper_&lt;version&gt;/toolchain/win_x86_glibc/bin/i686-nacl-gcc \
hello_world.c -Inacl_sdk/pepper_&lt;version&gt;/include \
- -Lnacl_sdk/pepper_&lt;version&gt;/lib/newlib/Release -o hello_world_x86_32.nexe \
+ -Lnacl_sdk/pepper_&lt;version&gt;/lib/glibc/Release -o hello_world_x86_32.nexe \
-m32 -g -O2 -lppapi
</pre>
<p>To compile a 64-bit <strong>.nexe</strong>, you can run the same command but use -m64 instead
@@ -403,7 +405,7 @@ ones in the SDK examples.</p>
configurations (using PNaCl vs NaCl, using different C libraries,
targeting different architectures, and using different levels of optimization).
To select a specific toolchain, set the <strong>environment variable</strong>
-<code>TOOLCHAIN</code> to either <code>pnacl</code>, <code>newlib</code>, <code>glibc</code>, or <code>host</code>.
+<code>TOOLCHAIN</code> to either <code>pnacl</code>, <code>clang-newlib</code>, <code>glibc</code>, or <code>host</code>.
To select a specific level of optimization set the <strong>environment
variable</strong> <code>CONFIG</code> to either <code>Debug</code>, or <code>Release</code>. Running
<code>make</code> in each example&#8217;s directory does <strong>one</strong> of the following,
@@ -417,18 +419,18 @@ the newlib library</li>
example</li>
</ul>
</li>
-<li><p class="first">If <code>TOOLCHAIN=newlib</code> creates a subdirectory called <code>newlib</code>;</p>
+<li><p class="first">If <code>TOOLCHAIN=clang-newlib</code> creates a subdirectory called <code>clang-newlib</code>;</p>
<ul class="small-gap">
<li>builds <strong>.nexes</strong> for the x86-32, x86-64, and ARM architectures using the
-newlib library</li>
-<li>generates a Native Client manifest (.nmf) file for the newlib version of
-the example</li>
+nacl-clang toolchain and the newlib C library</li>
+<li>generates a Native Client manifest (.nmf) file for the clang-newlib version
+of the example</li>
</ul>
</li>
<li><p class="first">If <code>TOOLCHAIN=glibc</code> creates a subdirectory called <code>glibc</code>;</p>
<ul class="small-gap">
-<li>builds <strong>.nexes</strong> for the x86-32 and x86-64 architectures using the glibc
-library</li>
+<li>builds <strong>.nexes</strong> for the x86-32, x86-64 and ARM architectures using the
+glibc library</li>
<li>generates a Native Client manifest (.nmf) file for the glibc version of the
example</li>
</ul>
@@ -473,12 +475,13 @@ in the following locations:</p>
<li>ARM toolchain: <code>toolchain/&lt;platform&gt;_arm_&lt;c_library&gt;/arm-nacl/lib</code></li>
</ul>
<p>For example, on Windows, the libraries for the x86-64 architecture in the
-newlib toolchain are in <code>toolchain/win_x86_newlib/x86_64-nacl/lib64</code>.</p>
+glibc toolchain are in <code>toolchain/win_x86_glibc/x86_64-nacl/lib64</code>.</p>
<p>The header files are in:</p>
<ul class="small-gap">
-<li>PNaCl toolchain: <code>toolchain/&lt;platform&gt;_pnacl/usr/include</code></li>
-<li>x86 toolchains: <code>toolchain/&lt;platform&gt;_x86_&lt;c_library&gt;/x86_64-nacl/include</code></li>
-<li>ARM toolchain: <code>toolchain/&lt;platform&gt;_arm_&lt;c_library&gt;/arm-nacl/include</code></li>
+<li>PNaCl toolchain: <code>toolchain/&lt;platform&gt;_pnacl/le32-nacl/include</code></li>
+<li>clang newlib toolchains: <code>toolchain/&lt;platform&gt;_pnacl/&lt;arch&gt;-nacl/include</code></li>
+<li>x86 glibc toolchain: <code>toolchain/&lt;platform&gt;_x86_glibc/x86_64-nacl/include</code></li>
+<li>ARM glibc toolchain: <code>toolchain/&lt;platform&gt;_arm_glibc/arm-nacl/include</code></li>
</ul>
<p>Many other libraries have been ported for use with Native Client; for more
information, see the <a class="reference external" href="https://chromium.googlesource.com/webports">webports</a>
@@ -488,8 +491,8 @@ adding it to webports.</p>
The PNaCl Pepper libraries are located in the the
<code>nacl_sdk/pepper_&lt;version&gt;/lib/pnacl/&lt;Release or Debug&gt;</code> directory.
The GNU-based toolchain has Pepper libraries in
-<code>nacl_sdk/pepper_&lt;version&gt;/lib/newlib_&lt;arch&gt;/&lt;Release or Debug&gt;</code>
-and <code>nacl_sdk/pepper_&lt;version&gt;/lib/glibc_&lt;arch&gt;/&lt;Release or Debug&gt;</code>.
+<code>nacl_sdk/pepper_&lt;version&gt;/lib/glibc_&lt;arch&gt;/&lt;Release or Debug&gt;</code>
+and <code>nacl_sdk/pepper_&lt;version&gt;/lib/clang-newlib_&lt;arch&gt;/&lt;Release or Debug&gt;</code>.
The libraries provided by the SDK allow the application to use Pepper,
as well as convenience libraries to simplify porting an application that
uses POSIX functions. Here are descriptions of the Pepper libraries provided
diff --git a/native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html b/native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html
index 5ee1f1a..c486fb6 100644
--- a/native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html
+++ b/native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html
@@ -140,18 +140,22 @@ uses, even if the rest of an application is dynamically linked.</li>
</thead>
<tbody valign="top">
<tr class="row-even"><td>x86</td>
-<td>newlib</td>
-<td>toolchain/&lt;platform&gt;_x86_newlib</td>
-</tr>
-<tr class="row-odd"><td>x86</td>
<td>glibc</td>
<td>toolchain/&lt;platform&gt;_x86_glibc</td>
</tr>
-<tr class="row-even"><td>ARM</td>
+<tr class="row-odd"><td>ARM</td>
+<td>glibc</td>
+<td>toolchain/&lt;platform&gt;_arm_glibc</td>
+</tr>
+<tr class="row-even"><td>x86</td>
<td>newlib</td>
-<td>toolchain/&lt;platform&gt;_arm_newlib</td>
+<td>toolchain/&lt;platform&gt;_pnacl</td>
+</tr>
+<tr class="row-odd"><td>ARM</td>
+<td>newlib</td>
+<td>toolchain/&lt;platform&gt;_pnacl</td>
</tr>
-<tr class="row-odd"><td>PNaCl</td>
+<tr class="row-even"><td>PNaCl</td>
<td>newlib</td>
<td>toolchain/&lt;platform&gt;_pnacl</td>
</tr>
@@ -161,11 +165,10 @@ uses, even if the rest of an application is dynamically linked.</li>
machine (i.e., win, mac, or linux). For example, in the Windows SDK, the x86
toolchain that uses glibc is in <code>toolchain/win_x86_glibc</code>.</p>
<aside class="note">
-<strong>Note:</strong> The ARM and PNaCl toolchains are currently restricted to newlib.
+<strong>Note:</strong> The PNaCl toolchain is currently restricted to newlib.
</aside>
<p>To use the glibc library and dynamic linking in your application, you <strong>must</strong>
-use a glibc toolchain. (Currently the only glibc toolchain is
-<code>&lt;platform&gt;_x86_glibc</code>.) Note that you must build all code in your application
+use a glibc toolchain. Note that you must build all code in your application
with one toolchain. Code from multiple toolchains cannot be mixed.</p>
<h2 id="specifying-and-delivering-shared-libraries">Specifying and delivering shared libraries</h2>
<p>One significant difference between newlib and glibc applications is that glibc
@@ -226,8 +229,8 @@ to build x86 32-bit and 64-bit .nexe and .so files, and to generate a .nmf
file. These commands are described below.</p>
<aside class="note">
<strong>Note:</strong> The Makefiles for most of the examples in the SDK build the
-examples using multiple toolchains (x86 newlib, x86 glibc, ARM, and PNaCl).
-With a few exceptions (listed in the <a class="reference internal" href="/native-client/sdk/release-notes.html#sdk-release-notes"><em>Release Notes</em></a>), running &#8220;make&#8221; in each example&#8217;s directory builds
+examples using multiple toolchains (x86 newlib, x86 glibc, ARM newlib, ARM
+glibc, and PNaCl). With a few exceptions (listed in the <a class="reference internal" href="/native-client/sdk/release-notes.html#sdk-release-notes"><em>Release Notes</em></a>), running &#8220;make&#8221; in each example&#8217;s directory builds
multiple versions of the example using the SDK toolchains. The dlopen example
is one of those exceptions – it is only built with the x86 glibc toolchain,
as that is currently the only toolchain that supports glibc and thus dynamic
diff --git a/native_client_sdk/doc_generated/devguide/tutorial/tutorial-part2.html b/native_client_sdk/doc_generated/devguide/tutorial/tutorial-part2.html
index 750d694..02e3dce 100644
--- a/native_client_sdk/doc_generated/devguide/tutorial/tutorial-part2.html
+++ b/native_client_sdk/doc_generated/devguide/tutorial/tutorial-part2.html
@@ -57,7 +57,7 @@ significantly increasing the complexity of the makefile.</p>
<p>Here is the new makefile, supporting three toolchains (PNaCl, Newlib NaCl,
Glibc NaCl) and two configurations (Debug, Release).</p>
<pre class="prettyprint">
-VALID_TOOLCHAINS := pnacl newlib glibc
+VALID_TOOLCHAINS := pnacl clang-newlib glibc
NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../..)
include $(NACL_SDK_ROOT)/tools/common.mk
@@ -90,9 +90,10 @@ for its examples and libraries, but generally you will choose one toolchain
when you begin your project and never change it. Please see the
<a class="reference internal" href="/native-client/overview.html#toolchains"><em>Toolchains section of the Native Client overview</em></a> for more
information.</p>
-<p>For this example, we support the <code>pnacl</code>, <code>newlib</code> and <code>glibc</code> toolchains.</p>
+<p>For this example, we support the <code>pnacl</code>, <code>clang-newlib</code> and <code>glibc</code>
+toolchains.</p>
<pre class="prettyprint">
-VALID_TOOLCHAINS := pnacl newlib glibc
+VALID_TOOLCHAINS := pnacl clang-newlib glibc
</pre>
<p>Next, as a convenience, we specify where to find <code>NACL_SDK_ROOT</code>. Because
this example is located in <code>pepper_$(VERSION)/getting_started/part2</code>, the
@@ -244,7 +245,7 @@ to the body element to specify the name, supported toolchains, supported
configurations, and path to the <code>.nmf</code> file:</p>
<pre class="prettyprint">
&lt;body data-name=&quot;part2&quot;
- data-tools=&quot;newlib glibc pnacl&quot;
+ data-tools=&quot;clang-newlib glibc pnacl&quot;
data-configs=&quot;Debug Release&quot;
data-path=&quot;{tc}/{config}&quot;&gt;
...
diff --git a/native_client_sdk/doc_generated/pepper_beta/index.html b/native_client_sdk/doc_generated/pepper_beta/index.html
index c830c8f..b701d4b 100644
--- a/native_client_sdk/doc_generated/pepper_beta/index.html
+++ b/native_client_sdk/doc_generated/pepper_beta/index.html
@@ -2,8 +2,8 @@
<section id="pepper-api-reference-beta">
<h1 id="pepper-api-reference-beta">Pepper API Reference (Beta)</h1>
-<p>This page lists the API for Pepper 48. Apps that use this API can
-run in Chrome 48 or higher.</p>
+<p>This page lists the API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.</p>
<h2 id="pepper-c-api-reference"><a class="reference internal" href="/native-client/c-api-beta.html#pepper-beta-c-index"><em>Pepper C API Reference</em></a></h2>
<h2 id="id1"><a class="reference internal" href="/native-client/cpp-api-beta.html#pepper-beta-cpp-index"><em>Pepper C++ API Reference</em></a></h2>
</section>
diff --git a/native_client_sdk/doc_generated/pepper_dev/index.html b/native_client_sdk/doc_generated/pepper_dev/index.html
index d54498e..b6e57b8 100644
--- a/native_client_sdk/doc_generated/pepper_dev/index.html
+++ b/native_client_sdk/doc_generated/pepper_dev/index.html
@@ -2,8 +2,8 @@
<section id="pepper-api-reference-dev">
<h1 id="pepper-api-reference-dev">Pepper API Reference (Dev)</h1>
-<p>This page lists the API for Pepper 49. Apps that use this API can
-run in Chrome 49 or higher.</p>
+<p>This page lists the API for Pepper 50. Apps that use this API can
+run in Chrome 50 or higher.</p>
<h2 id="pepper-c-api-reference"><a class="reference internal" href="/native-client/c-api-dev.html#pepper-dev-c-index"><em>Pepper C API Reference</em></a></h2>
<h2 id="id1"><a class="reference internal" href="/native-client/cpp-api-dev.html#pepper-dev-cpp-index"><em>Pepper C++ API Reference</em></a></h2>
</section>
diff --git a/native_client_sdk/doc_generated/pepper_stable/index.html b/native_client_sdk/doc_generated/pepper_stable/index.html
index 305070b..6826f7b 100644
--- a/native_client_sdk/doc_generated/pepper_stable/index.html
+++ b/native_client_sdk/doc_generated/pepper_stable/index.html
@@ -2,8 +2,8 @@
<section id="pepper-api-reference-stable">
<h1 id="pepper-api-reference-stable">Pepper API Reference (Stable)</h1>
-<p>This page lists the API for Pepper 47. Apps that use this API can
-run in Chrome 47 or higher.</p>
+<p>This page lists the API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.</p>
<h2 id="pepper-c-api-reference"><a class="reference internal" href="/native-client/c-api.html#pepper-stable-c-index"><em>Pepper C API Reference</em></a></h2>
<h2 id="id1"><a class="reference internal" href="/native-client/cpp-api.html#pepper-stable-cpp-index"><em>Pepper C++ API Reference</em></a></h2>
</section>
diff --git a/native_client_sdk/doc_generated/sdk/examples.html b/native_client_sdk/doc_generated/sdk/examples.html
index 6c890f5..4c49810 100644
--- a/native_client_sdk/doc_generated/sdk/examples.html
+++ b/native_client_sdk/doc_generated/sdk/examples.html
@@ -13,30 +13,30 @@ you&#8217;re using, type <code>about:chrome</code> or <code>about:version</code>
bar.</p>
<h2 id="build-the-sdk-examples"><span id="id1"></span>Build the SDK examples</h2>
<p>The Makefile scripts for the SDK examples can build multiple versions of the
-examples using any of the three SDK toolchains (newlib, glibc, and PNaCl) and in
-both release and debug configurations. Note that some examples, <code>dlopen</code> for
-example, build only with particular toolchains.</p>
+examples using any of the three SDK toolchains (clang-newlib, glibc, and PNaCl)
+and in both release and debug configurations. Note that some examples,
+<code>dlopen</code> for example, build only with particular toolchains.</p>
<p>Find the toolchains for each example by looking at the <code>VALID_TOOLCHAINS</code>
variable in the Makefile for a particular example. The first item listed is the
default. It&#8217;s built when you run an example make file without parameters. for
example running make in the <code>core</code> directory of pepper_35 builds the example
-using the <code>newlib</code> toolchain.</p>
+using the <code>glibc</code> toolchain.</p>
<pre class="prettyprint">
$ cd pepper_35/examples/api/core
$ make
- CXX newlib/Release/core_x86_32.o
- LINK newlib/Release/core_unstripped_x86_32.nexe
- VALIDATE newlib/Release/core_unstripped_x86_32.nexe
- CXX newlib/Release/core_x86_64.o
- LINK newlib/Release/core_unstripped_x86_64.nexe
- VALIDATE newlib/Release/core_unstripped_x86_64.nexe
- CXX newlib/Release/core_arm.o
- LINK newlib/Release/core_unstripped_arm.nexe
- VALIDATE newlib/Release/core_unstripped_arm.nexe
- STRIP newlib/Release/core_x86_32.nexe
- STRIP newlib/Release/core_x86_64.nexe
- STRIP newlib/Release/core_arm.nexe
- CREATE_NMF newlib/Release/core.nmf
+ CXX glibc/Release/core_x86_32.o
+ LINK glibc/Release/core_unstripped_x86_32.nexe
+ VALIDATE glibc/Release/core_unstripped_x86_32.nexe
+ CXX glibc/Release/core_x86_64.o
+ LINK glibc/Release/core_unstripped_x86_64.nexe
+ VALIDATE glibc/Release/core_unstripped_x86_64.nexe
+ CXX glibc/Release/core_arm.o
+ LINK glibc/Release/core_unstripped_arm.nexe
+ VALIDATE glibc/Release/core_unstripped_arm.nexe
+ STRIP glibc/Release/core_x86_32.nexe
+ STRIP glibc/Release/core_x86_64.nexe
+ STRIP glibc/Release/core_arm.nexe
+ CREATE_NMF glibc/Release/core.nmf
</pre>
<p>As you can see, this produces a number of architecture specific nexe files in
the <code>pepper_35/examples/api/core/Release</code> directory. Create debug versions by
@@ -59,21 +59,21 @@ default toolchains.</p>
<pre class="prettyprint">
$ cd pepper_35/examples/api/core
$ make TOOLCHAIN=all
-make TOOLCHAIN=newlib
+make TOOLCHAIN=clang-newlib
make[1]: Entering directory 'pepper_35/examples/api/core'
- CXX newlib/Release/core_x86_32.o
- LINK newlib/Release/core_unstripped_x86_32.nexe
- VALIDATE newlib/Release/core_unstripped_x86_32.nexe
- CXX newlib/Release/core_x86_64.o
- LINK newlib/Release/core_unstripped_x86_64.nexe
- VALIDATE newlib/Release/core_unstripped_x86_64.nexe
- CXX newlib/Release/core_arm.o
- LINK newlib/Release/core_unstripped_arm.nexe
- VALIDATE newlib/Release/core_unstripped_arm.nexe
- STRIP newlib/Release/core_x86_32.nexe
- STRIP newlib/Release/core_x86_64.nexe
- STRIP newlib/Release/core_arm.nexe
- CREATE_NMF newlib/Release/core.nmf
+ CXX clang-newlib/Release/core_x86_32.o
+ LINK clang-newlib/Release/core_unstripped_x86_32.nexe
+ VALIDATE clang-newlib/Release/core_unstripped_x86_32.nexe
+ CXX clang-newlib/Release/core_x86_64.o
+ LINK clang-newlib/Release/core_unstripped_x86_64.nexe
+ VALIDATE clang-newlib/Release/core_unstripped_x86_64.nexe
+ CXX clang-newlib/Release/core_arm.o
+ LINK clang-newlib/Release/core_unstripped_arm.nexe
+ VALIDATE clang-newlib/Release/core_unstripped_arm.nexe
+ STRIP clang-newlib/Release/core_x86_32.nexe
+ STRIP clang-newlib/Release/core_x86_64.nexe
+ STRIP clang-newlib/Release/core_arm.nexe
+ CREATE_NMF clang-newlib/Release/core.nmf
make[1]: Leaving directory 'pepper_35/examples/api/core'
make TOOLCHAIN=glibc
make[1]: Entering directory 'pepper_35/examples/api/core'
@@ -91,11 +91,11 @@ make[1]: Entering directory 'pepper_35/examples/api/core'
<p>After running <code>make</code>, example directories will contain one or more of the
following subdirectories, depending on which Makefile you run:</p>
<ul class="small-gap">
-<li><code>newlib</code> with subdirectories <code>Debug</code> and <code>Release</code>;</li>
+<li><code>clang-newlib</code> with subdirectories <code>Debug</code> and <code>Release</code>;</li>
<li><code>glibc</code> with subdirectories <code>Debug</code> and <code>Release</code>;</li>
<li><code>pnacl</code> with subdirectories <code>Debug</code> and <code>Release</code>;</li>
</ul>
-<p>For the newlib and glibc toolchains the Debug and Release subdirectories
+<p>For the clang-newlib and glibc toolchains the Debug and Release subdirectories
contain .nexe files for all target architectures. For the PNaCl toolchain
they contain a single .pexe file. PNaCl debug also produces pre-translated
.nexe files, for ease of debugging. All Debug and Release directories contain
diff --git a/native_client_sdk/doc_generated/sdk/release-notes.html b/native_client_sdk/doc_generated/sdk/release-notes.html
index 5a8dc1b..1d2b8a5 100644
--- a/native_client_sdk/doc_generated/sdk/release-notes.html
+++ b/native_client_sdk/doc_generated/sdk/release-notes.html
@@ -4,6 +4,15 @@
<span id="sdk-release-notes"></span><h1 id="release-notes"><span id="sdk-release-notes"></span>Release Notes</h1>
<p>The dates in the following release notes denote when Chrome and the NaCl SDK
reached canary status. The stable release is typically 6 weeks later.</p>
+<h2 id="chrome-pepper-49">Chrome/Pepper 49</h2>
+<ul class="small-gap">
+<li>GCC-based newlib toolchains removed from the SDK. These have been
+superseded by the nacl-clang toolchain which also produces statically linked
+architecture specific nexe files.</li>
+<li>gtest/gmock no longer shipped as pre-built libraries. This is in-line with
+normal gtest/gmock usage guidelines. Projects wishing to use gtest/gmock must
+now add explicit include paths and compile gtest-all.cc locally.</li>
+</ul>
<h2 id="chrome-pepper-45-10-july-2015">Chrome/Pepper 45 (10 July 2015)</h2>
<h3 id="pepper">Pepper</h3>
<ul class="small-gap">
diff --git a/native_client_sdk/doc_generated/sitemap.html b/native_client_sdk/doc_generated/sitemap.html
index 129b64c..3a6f511 100644
--- a/native_client_sdk/doc_generated/sitemap.html
+++ b/native_client_sdk/doc_generated/sitemap.html
@@ -42,6 +42,7 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="/native-client/sdk/release-notes.html">Release Notes</a><ul class="small-gap">
+<li class="toctree-l2"><a class="reference internal" href="/native-client/sdk/release-notes.html#chrome-pepper-49">Chrome/Pepper 49</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/sdk/release-notes.html#chrome-pepper-45-10-july-2015">Chrome/Pepper 45 (10 July 2015)</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/sdk/release-notes.html#chrome-pepper-43-03-april-2015">Chrome/Pepper 43 (03 April 2015)</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/sdk/release-notes.html#chrome-pepper-42-20-february-2015">Chrome/Pepper 42 (20 February 2015)</a></li>
diff --git a/native_client_sdk/src/BUILDING.rst b/native_client_sdk/src/BUILDING.rst
index b41caae..82a3d43 100644
--- a/native_client_sdk/src/BUILDING.rst
+++ b/native_client_sdk/src/BUILDING.rst
@@ -57,13 +57,13 @@ To test a specific example, you can run the test_projects.py script::
# Test the core example. This will test all toolchains/configs.
build_tools/test_projects.py core
- # Test the graphics_2d example, newlib/Debug only.
- build_tools/test_projects.py graphics_2d -t newlib -c Debug
+ # Test the graphics_2d example, glibc/Debug only.
+ build_tools/test_projects.py graphics_2d -t glibc -c Debug
This assumes that the example is already built. If not, you can use the `-b`
flag to build it first::
- build_tools/test_projects.py nacl_io_test -t newlib -c Debug -b
+ build_tools/test_projects.py nacl_io_test -t glibc -c Debug -b
Rebuilding the Projects
@@ -82,9 +82,9 @@ You can then rebuild the example by running Make::
You can build a specific toolchain/configuration combination::
- make TOOLCHAIN=newlib CONFIG=Debug -j8
+ make TOOLCHAIN=glibc CONFIG=Debug -j8
-The valid toolchains are: `newlib`, `glibc`, `clang-newlib` and `pnacl`.
+The valid toolchains are: `glibc`, `clang-newlib` and `pnacl`.
The valid configurations are: `Debug` and `Release`.
To run the example::
@@ -92,8 +92,8 @@ To run the example::
# Run the default configuration
make run
- # Run the newlib/Debug configuration
- make TOOLCHAIN=newlib CONFIG=Debug -j8
+ # Run the glibc/Debug configuration
+ make TOOLCHAIN=glibc CONFIG=Debug -j8
This will try to find Chrome and launch it. You can specify this manually via
the CHROME_PATH environment variable::
@@ -112,8 +112,8 @@ cannot be built this way.
To build the standalone configuration::
cd tests/nacl_io_test
- make STANDALONE=1 TOOLCHAIN=newlib -j8
+ make STANDALONE=1 TOOLCHAIN=glibc -j8
To run the standalone tests, you must specify an architecture explicitly::
- make STANDALONE=1 TOOLCHAIN=newlib NACL_ARCH=x86_64 -j8 run
+ make STANDALONE=1 TOOLCHAIN=glibc NACL_ARCH=x86_64 -j8 run
diff --git a/native_client_sdk/src/README.Makefiles b/native_client_sdk/src/README.Makefiles
index 3d23061..eccdac3 100644
--- a/native_client_sdk/src/README.Makefiles
+++ b/native_client_sdk/src/README.Makefiles
@@ -38,8 +38,9 @@ SOURCES
VALID_TOOLCHAINS
This variable can be used to control which toolchains are supported by
- the project. Valid entries for this list are: newlib, glibc, pnacl,
- linux, mac, win. The default value is: "newlib glibc pnacl".
+ the project. Valid entries for this list are: clang-newlib, glibc,
+ pnacl, linux, mac, win. The default value is: "clang-newlib glibc
+ pnacl".
NACL_SDK_ROOT
Optionally force the build system to use a certain location for the
diff --git a/native_client_sdk/src/build_tools/build_projects.py b/native_client_sdk/src/build_tools/build_projects.py
index 1646d6b..fe168cd 100755
--- a/native_client_sdk/src/build_tools/build_projects.py
+++ b/native_client_sdk/src/build_tools/build_projects.py
@@ -30,7 +30,6 @@ LIB_DICT = {
'win': ['x86_32']
}
VALID_TOOLCHAINS = [
- 'newlib',
'clang-newlib',
'glibc',
'pnacl',
@@ -291,9 +290,9 @@ def main(args):
if not options.toolchain:
# Order matters here: the default toolchain for an example's Makefile will
# be the first toolchain in this list that is available in the example.
- # e.g. If an example supports newlib and glibc, then the default will be
- # newlib.
- options.toolchain = ['pnacl', 'newlib', 'glibc', 'host', 'clang-newlib']
+ # e.g. If an example supports clang-newlib and glibc, then the default will
+ # be clang-newlib.
+ options.toolchain = ['pnacl', 'clang-newlib', 'glibc', 'host']
if 'host' in options.toolchain:
options.toolchain.remove('host')
diff --git a/native_client_sdk/src/build_tools/build_sdk.py b/native_client_sdk/src/build_tools/build_sdk.py
index 4eb701e..660c1bc 100755
--- a/native_client_sdk/src/build_tools/build_sdk.py
+++ b/native_client_sdk/src/build_tools/build_sdk.py
@@ -128,8 +128,6 @@ def GetGypBuiltLib(tcname, arch):
lib_suffix = ''
tcdir = 'tc_pnacl_newlib'
arch = 'x64'
- else:
- arch = 'clang-' + arch
return os.path.join(GetNinjaOutDir(arch), 'gen', tcdir, 'lib' + lib_suffix)
@@ -411,7 +409,7 @@ def GypNinjaInstall(pepperdir, toolchains):
continue
elif tc == 'pnacl':
xarches = (None, 'ia32', 'x64', 'arm')
- elif tc in ('x86_glibc', 'x86_newlib'):
+ elif tc in ('x86_glibc'):
xarches = ('ia32', 'x64')
elif tc == 'arm_glibc':
xarches = ('arm',)
@@ -433,22 +431,10 @@ def GypNinjaBuild_NaCl(rel_out_dir):
out_dir_32 = MakeNinjaRelPath(rel_out_dir + '-ia32')
out_dir_64 = MakeNinjaRelPath(rel_out_dir + '-x64')
out_dir_arm = MakeNinjaRelPath(rel_out_dir + '-arm')
- out_dir_clang_32 = MakeNinjaRelPath(rel_out_dir + '-clang-ia32')
- out_dir_clang_64 = MakeNinjaRelPath(rel_out_dir + '-clang-x64')
- out_dir_clang_arm = MakeNinjaRelPath(rel_out_dir + '-clang-arm')
-
- GypNinjaBuild('ia32', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir_32,
- gyp_defines=['use_nacl_clang=0'])
- GypNinjaBuild('x64', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir_64,
- gyp_defines=['use_nacl_clang=0'])
- GypNinjaBuild('arm', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir_arm,
- gyp_defines=['use_nacl_clang=0'])
- GypNinjaBuild('ia32', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk',
- out_dir_clang_32, gyp_defines=['use_nacl_clang=1'])
- GypNinjaBuild('x64', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk',
- out_dir_clang_64, gyp_defines=['use_nacl_clang=1'])
- GypNinjaBuild('arm', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk',
- out_dir_clang_arm, gyp_defines=['use_nacl_clang=1'])
+
+ GypNinjaBuild('ia32', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir_32)
+ GypNinjaBuild('x64', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir_64)
+ GypNinjaBuild('arm', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir_arm)
GypNinjaBuild('x64', gyp_py, all_gyp, 'ncval_new', out_dir_64)
@@ -465,13 +451,12 @@ def GypNinjaBuild_Breakpad(rel_out_dir):
GypNinjaBuild('x64', gyp_py, gyp_file, build_list, out_dir)
-def GypNinjaBuild_PPAPI(arch, rel_out_dir, gyp_defines=None):
+def GypNinjaBuild_PPAPI(arch, rel_out_dir):
gyp_py = os.path.join(SRC_DIR, 'build', 'gyp_chromium')
out_dir = MakeNinjaRelPath(rel_out_dir)
gyp_file = os.path.join(SRC_DIR, 'ppapi', 'native_client',
'native_client.gyp')
- GypNinjaBuild(arch, gyp_py, gyp_file, 'ppapi_lib', out_dir,
- gyp_defines=gyp_defines)
+ GypNinjaBuild(arch, gyp_py, gyp_file, 'ppapi_lib', out_dir)
def GypNinjaBuild_Pnacl(rel_out_dir, target_arch):
@@ -487,14 +472,10 @@ def GypNinjaBuild_Pnacl(rel_out_dir, target_arch):
GypNinjaBuild(target_arch, gyp_py, gyp_file, targets, out_dir)
-def GypNinjaBuild(arch, gyp_py_script, gyp_file, targets,
- out_dir, gyp_defines=None):
+def GypNinjaBuild(arch, gyp_py_script, gyp_file, targets, out_dir):
gyp_env = dict(os.environ)
gyp_env['GYP_GENERATORS'] = 'ninja'
- gyp_defines = gyp_defines or []
- gyp_defines.append('nacl_allow_thin_archives=0')
- if not options.no_use_sysroot:
- gyp_defines.append('use_sysroot=1')
+ gyp_defines = ['nacl_allow_thin_archives=0', 'use_nacl_clang=1']
if options.mac_sdk:
gyp_defines.append('mac_sdk=%s' % options.mac_sdk)
@@ -504,8 +485,6 @@ def GypNinjaBuild(arch, gyp_py_script, gyp_file, targets,
gyp_env['GYP_CROSSCOMPILE'] = '1'
if options.no_arm_trusted:
gyp_defines.append('disable_cross_trusted=1')
- if getos.GetPlatform() == 'mac':
- gyp_defines.append('clang=1')
gyp_env['GYP_DEFINES'] = ' '.join(gyp_defines)
# We can't use windows path separators in GYP_GENERATOR_FLAGS since
@@ -544,24 +523,14 @@ def BuildStepBuildToolchains(pepperdir, toolchains, build, clean):
GypNinjaBuild_NaCl(GYPBUILD_DIR)
GypNinjaBuild_Breakpad(GYPBUILD_DIR + '-x64')
- if set(toolchains) & set(['x86_glibc', 'x86_newlib']):
- GypNinjaBuild_PPAPI('ia32', GYPBUILD_DIR + '-ia32',
- ['use_nacl_clang=0'])
- GypNinjaBuild_PPAPI('x64', GYPBUILD_DIR + '-x64',
- ['use_nacl_clang=0'])
+ if 'x86_glibc' in toolchains or 'pnacl' in toolchains:
+ GypNinjaBuild_PPAPI('ia32', GYPBUILD_DIR + '-ia32')
+ GypNinjaBuild_PPAPI('x64', GYPBUILD_DIR + '-x64')
- if 'arm_glibc' in toolchains:
- GypNinjaBuild_PPAPI('arm', GYPBUILD_DIR + '-arm',
- ['use_nacl_clang=0'] )
+ if 'arm_glibc' in toolchains or 'pnacl' in toolchains:
+ GypNinjaBuild_PPAPI('arm', GYPBUILD_DIR + '-arm')
if 'pnacl' in toolchains:
- GypNinjaBuild_PPAPI('ia32', GYPBUILD_DIR + '-clang-ia32',
- ['use_nacl_clang=1'])
- GypNinjaBuild_PPAPI('x64', GYPBUILD_DIR + '-clang-x64',
- ['use_nacl_clang=1'])
- GypNinjaBuild_PPAPI('arm', GYPBUILD_DIR + '-clang-arm',
- ['use_nacl_clang=1'])
-
# NOTE: For ia32, gyp builds both x86-32 and x86-64 by default.
for arch in ('ia32', 'arm'):
# Fill in the latest native pnacl shim library from the chrome build.
diff --git a/native_client_sdk/src/build_tools/dsc2gyp.py b/native_client_sdk/src/build_tools/dsc2gyp.py
deleted file mode 100755
index 7032e94..0000000
--- a/native_client_sdk/src/build_tools/dsc2gyp.py
+++ /dev/null
@@ -1,378 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import argparse
-import StringIO
-import sys
-import os
-
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-sys.path.append(os.path.join(os.path.dirname(SCRIPT_DIR), 'tools'))
-
-import getos
-
-valid_tools = ['newlib', 'glibc', getos.GetPlatform()]
-
-
-def Error(msg):
- print(msg)
- sys.exit(1)
-
-
-PREAMBLE = """\
-{
- 'includes': ['%s/build_tools/nacl.gypi'],
-"""
-
-NEXE_TARGET = """\
- {
- 'target_name': '%(NAME)s_x86_32%(EXT)s',
- 'product_name': '%(NAME)s_x86_32%(EXT)s',
- 'type': '%(GYP_TYPE)s',
- 'sources': %(SOURCES)s,
- 'libraries': %(LIBS)s,
- 'include_dirs': %(INCLUDES)s,
- 'cflags': ['-m32', '-pedantic'] + %(CFLAGS)s,
- 'make_valid_configurations': ['newlib-debug', 'newlib-release',
- 'glibc-debug', 'glibc-release'],
- 'ldflags': ['-m32', '-L../../lib/x86_32/<(CONFIGURATION_NAME)'],
- 'toolset': 'target',
- %(CONFIGS)s
- },
- {
- 'target_name': '%(NAME)s_x86_64%(EXT)s',
- 'product_name': '%(NAME)s_x86_64%(EXT)s',
- 'type': '%(GYP_TYPE)s',
- 'sources': %(SOURCES)s,
- 'libraries': %(LIBS)s,
- 'include_dirs': %(INCLUDES)s,
- 'make_valid_configurations': ['newlib-debug', 'newlib-release',
- 'glibc-debug', 'glibc-release'],
- 'cflags': ['-m64', '-pedantic'] + %(CFLAGS)s,
- 'ldflags': ['-m64', '-L../../lib/x86_64/<(CONFIGURATION_NAME)'],
- 'toolset': 'target',
- %(CONFIGS)s
- },
-"""
-
-NLIB_TARGET = """\
- {
- 'target_name': '%(NAME)s_x86_32%(EXT)s',
- 'product_name': 'lib%(NAME)s%(EXT)s',
- 'product_dir': '../../lib/x86_32/<(CONFIGURATION_NAME)',
- 'type': '%(GYP_TYPE)s',
- 'sources': %(SOURCES)s,
- 'libraries': %(LIBS)s,
- 'include_dirs': %(INCLUDES)s,
- 'cflags': ['-m32', '-pedantic'] + %(CFLAGS)s,
- 'make_valid_configurations': ['newlib-debug', 'newlib-release',
- 'glibc-debug', 'glibc-release'],
- 'ldflags': ['-m32'],
- 'toolset': 'target',
- %(CONFIGS)s
- },
- {
- 'target_name': '%(NAME)s_x86_64%(EXT)s',
- 'product_name': 'lib%(NAME)s%(EXT)s',
- 'product_dir': '../../lib/x86_64/<(CONFIGURATION_NAME)',
- 'type': '%(GYP_TYPE)s',
- 'sources': %(SOURCES)s,
- 'libraries': %(LIBS)s,
- 'include_dirs': %(INCLUDES)s,
- 'make_valid_configurations': ['newlib-debug', 'newlib-release',
- 'glibc-debug', 'glibc-release'],
- 'cflags': ['-m64', '-pedantic'] + %(CFLAGS)s,
- 'ldflags': ['-m64'],
- 'toolset': 'target',
- %(CONFIGS)s
- },
-"""
-
-HOST_LIB_TARGET = """\
- {
- 'target_name': '%(NAME)s%(EXT)s',
- 'type': '%(GYP_TYPE)s',
- 'toolset': 'host',
- 'sources': %(SOURCES)s,
- 'cflags': %(CFLAGS)s,
- 'cflags_c': ['-std=gnu99'],
- 'include_dirs': %(INCLUDES)s,
- 'make_valid_configurations': ['host-debug', 'host-release'],
- 'product_dir': '../../lib/%(ARCH)s/<(CONFIGURATION_NAME)',
- 'product_name': '%(NAME)s%(EXT)s',
- %(CONFIGS)s
- },
-"""
-
-HOST_EXE_TARGET = """\
- {
- 'target_name': '%(NAME)s%(EXT)s',
- 'type': '%(GYP_TYPE)s',
- 'toolset': 'host',
- 'sources': %(SOURCES)s,
- 'cflags': %(CFLAGS)s,
- 'cflags_c': ['-std=gnu99'],
- 'ldflags': ['-L../../lib/%(ARCH)s/<(CONFIGURATION_NAME)'],
- 'libraries': %(LIBS)s,
- 'include_dirs': %(INCLUDES)s,
- 'make_valid_configurations': ['host-debug', 'host-release'],
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'AdditionalLibraryDirectories':
- ['../../lib/%(ARCH)s/<(CONFIGURATION_NAME)'],
- }
- },
- %(CONFIGS)s
- },
-"""
-
-NMF_TARGET = """\
- {
- 'target_name': '%(NAME)s_%(TOOLCHAIN)s.nmf',
- 'product_name': '%(NAME)s.nmf',
- 'product_dir': '<(PRODUCT_DIR)/%(TOOLCHAIN)s',
- 'type': 'none',
- 'make_valid_configurations': ['%(TOOLCHAIN)s-debug', '%(TOOLCHAIN)s-release'],
- 'actions': [
- {
- 'action_name': 'nmf',
- 'inputs': ['<(PRODUCT_DIR)/%(NAME)s_x86_32.nexe',
- '<(PRODUCT_DIR)/%(NAME)s_x86_64.nexe'] + %(SODEPS)s,
- 'outputs': ['<(PRODUCT_DIR)/%(NAME)s.nmf'],
- 'action': ['../../tools/create_nmf.py', '-t', '%(TOOLCHAIN)s', '-s',
- '<(PRODUCT_DIR)'] + %(NMFACTION)s,
- },
- ]
- },
-"""
-
-TOOLCHAIN_CONFIG = """\
- '%(toolchain)s-release' : {
- 'cflags' : ['-O2'],
- },
- '%(toolchain)s-debug' : {
- 'cflags' : ['-g', '-O0'],
- },
-"""
-
-NEXE_CONFIG = """\
- '%(toolchain)s-release' : {
- 'cflags' : ['--%(toolchain)s', '-O2',
- '-idirafter', '../../include'],
- 'ldflags' : ['--%(toolchain)s'],
- 'arflags' : ['--%(toolchain)s'],
- },
- '%(toolchain)s-debug' : {
- 'cflags' : ['--%(toolchain)s', '-g', '-O0',
- '-idirafter', '../../include'],
- 'ldflags' : ['--%(toolchain)s'],
- 'arflags' : ['--%(toolchain)s'],
- },
-"""
-
-WIN32_CONFIGS = """\
- 'target_defaults': {
- 'default_configuration': 'Debug_PPAPI',
- 'configurations': {
- 'Debug_PPAPI': {
- 'msvs_configuration_platform': 'PPAPI',
- 'msbuild_configuration_attributes': {
- 'ConfigurationType': 'DynamicLibrary'
- },
- 'include_dirs': ['../../include/win'],
- 'defines': ['_WINDOWS', '_DEBUG', 'WIN32'],
- },
- 'Release_PPAPI': {
- 'msvs_configuration_platform': 'PPAPI',
- 'msbuild_configuration_attributes': {
- 'ConfigurationType': 'DynamicLibrary'
- },
- 'include_dirs': ['../../include/win'],
- 'defines': ['_WINDOWS', 'NDEBUG', 'WIN32'],
- },
- 'Debug_NaCl': {
- 'msvs_configuration_platform': 'NaCl',
- 'msbuild_configuration_attributes': {
- 'ConfigurationType': 'Application'
- },
- },
- 'Release_NaCl': {
- 'msvs_configuration_platform': 'NaCl',
- 'msbuild_configuration_attributes': {
- 'ConfigurationType': 'Application'
- },
- },
- },
- },
-"""
-
-
-def WriteNaClTargets(output, target, tools):
- configs = "'configurations' : {\n"
- for tc in tools:
- if tc not in valid_tools:
- continue
- if tc in ['newlib', 'glibc']:
- configs += NEXE_CONFIG % {'toolchain': tc}
- configs += " }"
- target['CONFIGS'] = configs
- if target['TYPE'] == 'lib':
- output.write(NLIB_TARGET % target)
- else:
- output.write(NEXE_TARGET % target)
-
-
-def ConfigName(toolchain):
- if toolchain == getos.GetPlatform():
- return 'host'
- else:
- return toolchain
-
-
-def ProcessDSC(filename, outfile=None):
- if not os.path.exists(filename):
- Error("file not found: %s" % filename)
-
- desc = open(filename).read()
- desc = eval(desc, {}, {})
- if not desc.get('TARGETS'):
- Error("no TARGETS found in dsc")
-
- if not outfile:
- outfile = desc['NAME'] + '.gyp'
- outfile = os.path.join(os.path.dirname(filename), outfile)
-
- output = StringIO.StringIO()
-
- srcdir = os.path.dirname(SCRIPT_DIR)
- output.write(PREAMBLE % srcdir.replace("\\", '/'))
-
- win32 = sys.platform in ('win32', 'cygwin')
- if win32:
- output.write(WIN32_CONFIGS)
- else:
- for tc in desc['TOOLS']:
- if tc in valid_tools:
- default = '%s-debug' % ConfigName(tc)
- break
-
- output.write("""\
- 'target_defaults': {
- 'default_configuration': '%s',
- 'configurations' : {\n""" % default)
-
- for tc in desc['TOOLS']:
- if tc not in valid_tools:
- continue
- output.write(TOOLCHAIN_CONFIG % {'toolchain': ConfigName(tc)})
-
- output.write(" }\n },\n")
-
- output.write("\n 'targets': [\n")
-
- # make a list of all the so target names so that the nmf rules
- # can depend on them all
- sofiles = []
- soremap = []
- for target in desc['TARGETS']:
- if target['TYPE'] == 'so':
- name = target['NAME']
- sofiles.append('<(PRODUCT_DIR)/%s_x86_64.so' % name)
- sofiles.append('<(PRODUCT_DIR)/%s_x86_32.so' % name)
- soremap += ['-n', '%s_x86_64.so,%s.so' % (name, name)]
- soremap += ['-n', '%s_x86_32.so,%s.so' % (name, name)]
-
-
- # iterate through dsc targets generating gyp targets
- for target in desc['TARGETS']:
- target.setdefault('INCLUDES', [])
- target['INCLUDES'] = [x.replace("$(NACL_SDK_ROOT)", "../..")
- for x in target['INCLUDES']]
-
- libs = target.get('LIBS', [])
- if win32:
- libs = [l for l in libs if l not in ('ppapi', 'ppapi_cpp')]
- target['LIBS'] = ['-l' + l + '.lib' for l in libs]
- else:
- target['LIBS'] = ['-l' + l for l in libs]
- if target['TYPE'] == 'so':
- if win32:
- target['EXT'] = ''
- else:
- target['EXT'] = '.so'
- target['GYP_TYPE'] = 'shared_library'
- elif target['TYPE'] == 'lib':
- if win32:
- target['EXT'] = ''
- else:
- target['EXT'] = '.a'
- target['GYP_TYPE'] = 'static_library'
- elif target['TYPE'] == 'main':
- target['EXT'] = '.nexe'
- target['GYP_TYPE'] = 'executable'
- else:
- Error("unknown type: %s" % target['TYPE'])
-
- target['CFLAGS'] = target.get('CXXFLAGS', [])
-
- if not win32 and ('newlib' in desc['TOOLS'] or 'glibc' in desc['TOOLS']):
- WriteNaClTargets(output, target, desc['TOOLS'])
- if target['TYPE'] == 'main':
- target['SODEPS'] = sofiles
- target['NMFACTION'] = ['-o', '<@(_outputs)', '-L<(NMF_PATH1)',
- '-L<(NMF_PATH2)', '-D', '<(OBJDUMP)',
- '<@(_inputs)']
- target['NMFACTION'] += soremap
- if 'newlib' in desc['TOOLS']:
- target['TOOLCHAIN'] = 'newlib'
- output.write(NMF_TARGET % target)
- if 'glibc' in desc['TOOLS']:
- target['TOOLCHAIN'] = 'glibc'
- output.write(NMF_TARGET % target)
-
- if win32 or getos.GetPlatform() in desc['TOOLS']:
- target['ARCH'] = 'x86_32'
- target['INCLUDES'].append('../../include')
- if win32:
- target['HOST'] = 'win'
- target['CONFIGS'] = ''
- target['CFLAGS'] = []
- else:
- target['CONFIGS'] = ''
- target['HOST'] = 'linux'
- target['CFLAGS'].append('-fPIC')
- if target['TYPE'] == 'main':
- target['GYP_TYPE'] = 'shared_library'
- if win32:
- target['EXT'] = ''
- else:
- target['EXT'] = '.so'
- output.write(HOST_EXE_TARGET % target)
- else:
- output.write(HOST_LIB_TARGET % target)
-
- output.write(' ],\n}\n')
-
- print('Writing: ' + outfile)
- open(outfile, 'w').write(output.getvalue())
-
-
-def main(args):
- parser = argparse.ArgumentParser()
- parser.add_argument('-o', help='Set output filename.', dest='output')
- parser.add_argument('dsc', help='dsc to convert')
- options = parser.parse_args(args)
-
- if options.output:
- outdir = os.path.dirname(options.output)
- if not os.path.exists(outdir):
- os.makedirs(outdir)
-
- ProcessDSC(options.dsc, options.output)
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv[1:]))
diff --git a/native_client_sdk/src/build_tools/nacl.gypi b/native_client_sdk/src/build_tools/nacl.gypi
deleted file mode 100644
index 1c1d245..0000000
--- a/native_client_sdk/src/build_tools/nacl.gypi
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- # gyp only supports two toolchains: host and target.
- # In order to get around this limitation we use a compiler
- # wrapper than will then invoke either the glibc or the newlib
- # compiler.
- 'make_global_settings': [
- ['CC.target' , '../../toolchain/linux_x86/bin/i686-nacl-gcc'],
- ['CXX.target' , '../../toolchain/linux_x86/bin/i686-nacl-g++'],
- ['LINK.target' , '../../toolchain/linux_x86/bin/i686-nacl-g++'],
- ['AR.target' , '../../toolchain/linux_x86/bin/i686-nacl-ar'],
- ],
-
- 'variables': {
- 'EXECUTABLE_SUFFIX': '.nexe',
- 'TOOLROOT': '../../toolchain',
- 'OBJDUMP': '<(TOOLROOT)/linux_x86_glibc/bin/i686-nacl-objdump',
- 'NMF_PATH1': '<(TOOLROOT)/linux_x86_glibc/x86_64-nacl/lib32',
- 'NMF_PATH2': '<(TOOLROOT)/linux_x86_glibc/x86_64-nacl/lib',
- },
-
- 'target_defaults': {
- 'link_settings': { 'ldflags': ['-Wl,-as-needed'] },
- 'libraries' : ['-lppapi', '-lppapi_cpp'],
- 'ldflags': ['-pthread'],
- 'cflags': ['-pthread', '-Wno-long-long', '-Wall', '-Wswitch-enum', '-Werror'],
- },
-}
diff --git a/native_client_sdk/src/build_tools/parse_dsc.py b/native_client_sdk/src/build_tools/parse_dsc.py
index 8d4e9f2..52174ec 100755
--- a/native_client_sdk/src/build_tools/parse_dsc.py
+++ b/native_client_sdk/src/build_tools/parse_dsc.py
@@ -11,7 +11,6 @@ import sys
VALID_TOOLCHAINS = [
'clang-newlib',
- 'newlib',
'glibc',
'pnacl',
'win',
diff --git a/native_client_sdk/src/build_tools/sdk_files.list b/native_client_sdk/src/build_tools/sdk_files.list
index 7a39a23..1c4a29a 100644
--- a/native_client_sdk/src/build_tools/sdk_files.list
+++ b/native_client_sdk/src/build_tools/sdk_files.list
@@ -445,7 +445,6 @@ toolchain/${PLATFORM}_x86_glibc/x86_64-nacl/lib32/libppapi.so
toolchain/${PLATFORM}_x86_glibc/x86_64-nacl/lib32/libppapi_stub.a
tools/cl_wrapper.py
tools/common.mk
-tools/compiler-wrapper.py
tools/create_html.py
tools/create_nmf.py
tools/decode_dump.py
diff --git a/native_client_sdk/src/doc/Makefile b/native_client_sdk/src/doc/Makefile
index 24af1a8..a0ce131 100644
--- a/native_client_sdk/src/doc/Makefile
+++ b/native_client_sdk/src/doc/Makefile
@@ -50,7 +50,7 @@ doctest:
"results in $(BUILDDIR)/doctest/output.txt."
chromesite:
- -rm $(CHROMESITE_BUILDDIR)/.buildinfo
+ -rm -f $(CHROMESITE_BUILDDIR)/.buildinfo
doxygen/generate_docs.py $(CHROMESITE_BUILDDIR)
$(SPHINXBUILD) -b chromesite $(ALLSPHINXOPTS) $(CHROMESITE_BUILDDIR)
rm -rf $(CHROMESITE_BUILDDIR)/images
diff --git a/native_client_sdk/src/doc/c-api-beta.rst b/native_client_sdk/src/doc/c-api-beta.rst
index 0cb54d4..f8211c4 100644
--- a/native_client_sdk/src/doc/c-api-beta.rst
+++ b/native_client_sdk/src/doc/c-api-beta.rst
@@ -7,8 +7,8 @@
Pepper C API Reference (Beta)
##########################################
-This page lists the C API for Pepper 48. Apps that use this API can
-run in Chrome 48 or higher.
+This page lists the C API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.
`Interfaces <pepper_beta/c/group___interfaces.html>`__
=============================================================
diff --git a/native_client_sdk/src/doc/c-api-dev.rst b/native_client_sdk/src/doc/c-api-dev.rst
index b37509e..2e3ec46 100644
--- a/native_client_sdk/src/doc/c-api-dev.rst
+++ b/native_client_sdk/src/doc/c-api-dev.rst
@@ -7,8 +7,8 @@
Pepper C API Reference (Dev)
##########################################
-This page lists the C API for Pepper 49. Apps that use this API can
-run in Chrome 49 or higher.
+This page lists the C API for Pepper 50. Apps that use this API can
+run in Chrome 50 or higher.
`Interfaces <pepper_dev/c/group___interfaces.html>`__
=============================================================
diff --git a/native_client_sdk/src/doc/c-api.rst b/native_client_sdk/src/doc/c-api.rst
index 0ce774f..773073a57 100644
--- a/native_client_sdk/src/doc/c-api.rst
+++ b/native_client_sdk/src/doc/c-api.rst
@@ -7,8 +7,8 @@
Pepper C API Reference (Stable)
##########################################
-This page lists the C API for Pepper 47. Apps that use this API can
-run in Chrome 47 or higher.
+This page lists the C API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.
`Interfaces <pepper_stable/c/group___interfaces.html>`__
=============================================================
diff --git a/native_client_sdk/src/doc/cpp-api-beta.rst b/native_client_sdk/src/doc/cpp-api-beta.rst
index 555e35b..b883aa75 100644
--- a/native_client_sdk/src/doc/cpp-api-beta.rst
+++ b/native_client_sdk/src/doc/cpp-api-beta.rst
@@ -7,8 +7,8 @@
Pepper C++ API Reference (Beta)
############################################
-This page lists the C++ API for Pepper 48. Apps that use this API can
-run in Chrome 48 or higher.
+This page lists the C++ API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.
`Classes <pepper_beta/cpp/inherits.html>`__
==================================================
diff --git a/native_client_sdk/src/doc/cpp-api-dev.rst b/native_client_sdk/src/doc/cpp-api-dev.rst
index e0211f7..3b6f984 100644
--- a/native_client_sdk/src/doc/cpp-api-dev.rst
+++ b/native_client_sdk/src/doc/cpp-api-dev.rst
@@ -7,8 +7,8 @@
Pepper C++ API Reference (Dev)
############################################
-This page lists the C++ API for Pepper 49. Apps that use this API can
-run in Chrome 49 or higher.
+This page lists the C++ API for Pepper 50. Apps that use this API can
+run in Chrome 50 or higher.
`Classes <pepper_dev/cpp/inherits.html>`__
==================================================
diff --git a/native_client_sdk/src/doc/cpp-api.rst b/native_client_sdk/src/doc/cpp-api.rst
index b378274..c43dbdc 100644
--- a/native_client_sdk/src/doc/cpp-api.rst
+++ b/native_client_sdk/src/doc/cpp-api.rst
@@ -7,8 +7,8 @@
Pepper C++ API Reference (Stable)
############################################
-This page lists the C++ API for Pepper 47. Apps that use this API can
-run in Chrome 47 or higher.
+This page lists the C++ API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.
`Classes <pepper_stable/cpp/inherits.html>`__
==================================================
diff --git a/native_client_sdk/src/doc/devguide/devcycle/building.rst b/native_client_sdk/src/doc/devguide/devcycle/building.rst
index e96158b..d3b1b29 100644
--- a/native_client_sdk/src/doc/devguide/devcycle/building.rst
+++ b/native_client_sdk/src/doc/devguide/devcycle/building.rst
@@ -52,13 +52,13 @@ This section will mostly cover PNaCl, but also describes how to build
C libraries
-----------
-The PNaCl SDK has a single choice of C library: newlib_.
-
-The Native Client SDK also has a GCC-based toolchain for building
-**nexes**. The GCC-based toolchain has support for two C libraries:
-newlib_ and glibc_. See :doc:`Dynamic Linking & Loading with glibc
-<dynamic-loading>` for information about these libraries, including factors to
-help you decide which to use.
+The PNaCl toolchain uses the newlib_ C library and can be used to build
+portable **pexe** files (using ``pnacl-clang``) or **nexe** files (using, for
+example, ``x86_64-nacl-clang``). The Native Client SDK also has a
+GCC-based toolchain for building **nexe** files which uses the glibc_ C library.
+See :doc:`Dynamic Linking & Loading with glibc <dynamic-loading>` for
+information about these libraries, including factors to help you decide which to
+use.
.. _building_cpp_libraries:
@@ -71,7 +71,7 @@ The PNaCl SDK can use either LLVM's `libc++ <http://libcxx.llvm.org/>`_
``-stdlib=[libc++|libstdc++]`` command line argument can be used to
choose which standard library to use.
-The GCC-based Native Client SDK only has support for GCC's `libstdc++
+The GCC-based toolchain only has support for GCC's `libstdc++
<http://gcc.gnu.org/libstdc++>`_.
C++11 library support is only complete in libc++ but other non-library language
@@ -445,15 +445,15 @@ files with the PNaCl-based toolchain, except that the output is
architecture specific.
For example, assuming you're developing on a Windows machine, targeting the x86
-architecture, and using the newlib library, you can compile a 32-bit **.nexe**
-for the hello_world example with the following command:
+architecture you can compile a 32-bit **.nexe** for the hello_world example with
+the following command:
.. naclcode::
:prettyprint: 0
- nacl_sdk/pepper_<version>/toolchain/win_x86_newlib/bin/i686-nacl-gcc \
+ nacl_sdk/pepper_<version>/toolchain/win_x86_glibc/bin/i686-nacl-gcc \
hello_world.c -Inacl_sdk/pepper_<version>/include \
- -Lnacl_sdk/pepper_<version>/lib/newlib/Release -o hello_world_x86_32.nexe \
+ -Lnacl_sdk/pepper_<version>/lib/glibc/Release -o hello_world_x86_32.nexe \
-m32 -g -O2 -lppapi
To compile a 64-bit **.nexe**, you can run the same command but use -m64 instead
@@ -496,7 +496,7 @@ The Makefiles for the SDK examples build most of the examples in multiple
configurations (using PNaCl vs NaCl, using different C libraries,
targeting different architectures, and using different levels of optimization).
To select a specific toolchain, set the **environment variable**
-``TOOLCHAIN`` to either ``pnacl``, ``newlib``, ``glibc``, or ``host``.
+``TOOLCHAIN`` to either ``pnacl``, ``clang-newlib``, ``glibc``, or ``host``.
To select a specific level of optimization set the **environment
variable** ``CONFIG`` to either ``Debug``, or ``Release``. Running
``make`` in each example's directory does **one** of the following,
@@ -509,17 +509,17 @@ depending on the setting of the environment variables.
* generates a Native Client manifest (.nmf) file for the pnacl version of the
example
-* If ``TOOLCHAIN=newlib`` creates a subdirectory called ``newlib``;
+* If ``TOOLCHAIN=clang-newlib`` creates a subdirectory called ``clang-newlib``;
* builds **.nexes** for the x86-32, x86-64, and ARM architectures using the
- newlib library
- * generates a Native Client manifest (.nmf) file for the newlib version of
- the example
+ nacl-clang toolchain and the newlib C library
+ * generates a Native Client manifest (.nmf) file for the clang-newlib version
+ of the example
* If ``TOOLCHAIN=glibc`` creates a subdirectory called ``glibc``;
- * builds **.nexes** for the x86-32 and x86-64 architectures using the glibc
- library
+ * builds **.nexes** for the x86-32, x86-64 and ARM architectures using the
+ glibc library
* generates a Native Client manifest (.nmf) file for the glibc version of the
example
@@ -572,13 +572,14 @@ in the following locations:
* ARM toolchain: ``toolchain/<platform>_arm_<c_library>/arm-nacl/lib``
For example, on Windows, the libraries for the x86-64 architecture in the
-newlib toolchain are in ``toolchain/win_x86_newlib/x86_64-nacl/lib64``.
+glibc toolchain are in ``toolchain/win_x86_glibc/x86_64-nacl/lib64``.
The header files are in:
-* PNaCl toolchain: ``toolchain/<platform>_pnacl/usr/include``
-* x86 toolchains: ``toolchain/<platform>_x86_<c_library>/x86_64-nacl/include``
-* ARM toolchain: ``toolchain/<platform>_arm_<c_library>/arm-nacl/include``
+* PNaCl toolchain: ``toolchain/<platform>_pnacl/le32-nacl/include``
+* clang newlib toolchains: ``toolchain/<platform>_pnacl/<arch>-nacl/include``
+* x86 glibc toolchain: ``toolchain/<platform>_x86_glibc/x86_64-nacl/include``
+* ARM glibc toolchain: ``toolchain/<platform>_arm_glibc/arm-nacl/include``
Many other libraries have been ported for use with Native Client; for more
information, see the `webports <https://chromium.googlesource.com/webports>`_
@@ -589,8 +590,8 @@ Besides the standard libraries, the SDK includes Pepper libraries.
The PNaCl Pepper libraries are located in the the
``nacl_sdk/pepper_<version>/lib/pnacl/<Release or Debug>`` directory.
The GNU-based toolchain has Pepper libraries in
-``nacl_sdk/pepper_<version>/lib/newlib_<arch>/<Release or Debug>``
-and ``nacl_sdk/pepper_<version>/lib/glibc_<arch>/<Release or Debug>``.
+``nacl_sdk/pepper_<version>/lib/glibc_<arch>/<Release or Debug>``
+and ``nacl_sdk/pepper_<version>/lib/clang-newlib_<arch>/<Release or Debug>``.
The libraries provided by the SDK allow the application to use Pepper,
as well as convenience libraries to simplify porting an application that
uses POSIX functions. Here are descriptions of the Pepper libraries provided
diff --git a/native_client_sdk/src/doc/devguide/devcycle/dynamic-loading.rst b/native_client_sdk/src/doc/devguide/devcycle/dynamic-loading.rst
index 3958d8a..36ef7eb 100644
--- a/native_client_sdk/src/doc/devguide/devcycle/dynamic-loading.rst
+++ b/native_client_sdk/src/doc/devguide/devcycle/dynamic-loading.rst
@@ -111,9 +111,10 @@ The Native Client SDK contains multiple toolchains, which are differentiated by
=================== ========= ===============================
Target architecture C library Toolchain directory
=================== ========= ===============================
-x86 newlib toolchain/<platform>_x86_newlib
x86 glibc toolchain/<platform>_x86_glibc
-ARM newlib toolchain/<platform>_arm_newlib
+ARM glibc toolchain/<platform>_arm_glibc
+x86 newlib toolchain/<platform>_pnacl
+ARM newlib toolchain/<platform>_pnacl
PNaCl newlib toolchain/<platform>_pnacl
=================== ========= ===============================
@@ -124,11 +125,10 @@ toolchain that uses glibc is in ``toolchain/win_x86_glibc``.
.. Note::
:class: note
- **Note:** The ARM and PNaCl toolchains are currently restricted to newlib.
+ **Note:** The PNaCl toolchain is currently restricted to newlib.
To use the glibc library and dynamic linking in your application, you **must**
-use a glibc toolchain. (Currently the only glibc toolchain is
-``<platform>_x86_glibc``.) Note that you must build all code in your application
+use a glibc toolchain. Note that you must build all code in your application
with one toolchain. Code from multiple toolchains cannot be mixed.
Specifying and delivering shared libraries
@@ -206,8 +206,8 @@ file. These commands are described below.
:class: note
**Note:** The Makefiles for most of the examples in the SDK build the
- examples using multiple toolchains (x86 newlib, x86 glibc, ARM, and PNaCl).
- With a few exceptions (listed in the :ref:`Release Notes
+ examples using multiple toolchains (x86 newlib, x86 glibc, ARM newlib, ARM
+ glibc, and PNaCl). With a few exceptions (listed in the :ref:`Release Notes
<sdk-release-notes>`), running "make" in each example's directory builds
multiple versions of the example using the SDK toolchains. The dlopen example
is one of those exceptions – it is only built with the x86 glibc toolchain,
diff --git a/native_client_sdk/src/doc/devguide/tutorial/tutorial-part2.rst b/native_client_sdk/src/doc/devguide/tutorial/tutorial-part2.rst
index 6338b19..af68396 100644
--- a/native_client_sdk/src/doc/devguide/tutorial/tutorial-part2.rst
+++ b/native_client_sdk/src/doc/devguide/tutorial/tutorial-part2.rst
@@ -52,7 +52,7 @@ Glibc NaCl) and two configurations (Debug, Release).
.. naclcode::
- VALID_TOOLCHAINS := pnacl newlib glibc
+ VALID_TOOLCHAINS := pnacl clang-newlib glibc
NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../..)
include $(NACL_SDK_ROOT)/tools/common.mk
@@ -88,11 +88,12 @@ when you begin your project and never change it. Please see the
:ref:`Toolchains section of the Native Client overview <toolchains>` for more
information.
-For this example, we support the ``pnacl``, ``newlib`` and ``glibc`` toolchains.
+For this example, we support the ``pnacl``, ``clang-newlib`` and ``glibc``
+toolchains.
.. naclcode::
- VALID_TOOLCHAINS := pnacl newlib glibc
+ VALID_TOOLCHAINS := pnacl clang-newlib glibc
Next, as a convenience, we specify where to find ``NACL_SDK_ROOT``. Because
this example is located in ``pepper_$(VERSION)/getting_started/part2``, the
@@ -290,7 +291,7 @@ configurations, and path to the ``.nmf`` file:
.. naclcode::
<body data-name="part2"
- data-tools="newlib glibc pnacl"
+ data-tools="clang-newlib glibc pnacl"
data-configs="Debug Release"
data-path="{tc}/{config}">
...
diff --git a/native_client_sdk/src/doc/doxygen/generate_docs.py b/native_client_sdk/src/doc/doxygen/generate_docs.py
index 4cc475d..d5d4d8c 100755
--- a/native_client_sdk/src/doc/doxygen/generate_docs.py
+++ b/native_client_sdk/src/doc/doxygen/generate_docs.py
@@ -52,7 +52,7 @@ def GetChannelInfo():
for version_row in os_row['versions']:
channel = version_row['channel']
# We don't display canary docs.
- if channel == 'canary':
+ if channel.startswith('canary'):
continue
version = version_row['version'].split('.')[0] # Major version
@@ -313,8 +313,7 @@ def main(argv):
if options.verbose:
Trace.verbose = True
- channel_info = GetChannelInfo()
- for channel, info in channel_info.iteritems():
+ for channel, info in GetChannelInfo().iteritems():
GenerateDocs(options.out_directory, channel, info.version, info.branch)
return 0
diff --git a/native_client_sdk/src/doc/pepper_beta/index.rst b/native_client_sdk/src/doc/pepper_beta/index.rst
index e20bc35..58e6fc5 100644
--- a/native_client_sdk/src/doc/pepper_beta/index.rst
+++ b/native_client_sdk/src/doc/pepper_beta/index.rst
@@ -9,8 +9,8 @@
Pepper API Reference (Beta)
########################################
-This page lists the API for Pepper 48. Apps that use this API can
-run in Chrome 48 or higher.
+This page lists the API for Pepper 49. Apps that use this API can
+run in Chrome 49 or higher.
:ref:`Pepper C API Reference <pepper_beta_c_index>`
===========================================================
diff --git a/native_client_sdk/src/doc/pepper_dev/index.rst b/native_client_sdk/src/doc/pepper_dev/index.rst
index 4ce9ab3..564138e 100644
--- a/native_client_sdk/src/doc/pepper_dev/index.rst
+++ b/native_client_sdk/src/doc/pepper_dev/index.rst
@@ -9,8 +9,8 @@
Pepper API Reference (Dev)
########################################
-This page lists the API for Pepper 49. Apps that use this API can
-run in Chrome 49 or higher.
+This page lists the API for Pepper 50. Apps that use this API can
+run in Chrome 50 or higher.
:ref:`Pepper C API Reference <pepper_dev_c_index>`
===========================================================
diff --git a/native_client_sdk/src/doc/pepper_stable/index.rst b/native_client_sdk/src/doc/pepper_stable/index.rst
index 66266dd..cb3f394 100644
--- a/native_client_sdk/src/doc/pepper_stable/index.rst
+++ b/native_client_sdk/src/doc/pepper_stable/index.rst
@@ -9,8 +9,8 @@
Pepper API Reference (Stable)
########################################
-This page lists the API for Pepper 47. Apps that use this API can
-run in Chrome 47 or higher.
+This page lists the API for Pepper 48. Apps that use this API can
+run in Chrome 48 or higher.
:ref:`Pepper C API Reference <pepper_stable_c_index>`
===========================================================
diff --git a/native_client_sdk/src/doc/sdk/examples.rst b/native_client_sdk/src/doc/sdk/examples.rst
index 21ad8b2..2bb0521 100644
--- a/native_client_sdk/src/doc/sdk/examples.rst
+++ b/native_client_sdk/src/doc/sdk/examples.rst
@@ -22,31 +22,31 @@ Build the SDK examples
----------------------
The Makefile scripts for the SDK examples can build multiple versions of the
-examples using any of the three SDK toolchains (newlib, glibc, and PNaCl) and in
-both release and debug configurations. Note that some examples, ``dlopen`` for
-example, build only with particular toolchains.
+examples using any of the three SDK toolchains (clang-newlib, glibc, and PNaCl)
+and in both release and debug configurations. Note that some examples,
+``dlopen`` for example, build only with particular toolchains.
Find the toolchains for each example by looking at the ``VALID_TOOLCHAINS``
variable in the Makefile for a particular example. The first item listed is the
default. It's built when you run an example make file without parameters. for
example running make in the ``core`` directory of pepper_35 builds the example
-using the ``newlib`` toolchain. ::
+using the ``glibc`` toolchain. ::
$ cd pepper_35/examples/api/core
$ make
- CXX newlib/Release/core_x86_32.o
- LINK newlib/Release/core_unstripped_x86_32.nexe
- VALIDATE newlib/Release/core_unstripped_x86_32.nexe
- CXX newlib/Release/core_x86_64.o
- LINK newlib/Release/core_unstripped_x86_64.nexe
- VALIDATE newlib/Release/core_unstripped_x86_64.nexe
- CXX newlib/Release/core_arm.o
- LINK newlib/Release/core_unstripped_arm.nexe
- VALIDATE newlib/Release/core_unstripped_arm.nexe
- STRIP newlib/Release/core_x86_32.nexe
- STRIP newlib/Release/core_x86_64.nexe
- STRIP newlib/Release/core_arm.nexe
- CREATE_NMF newlib/Release/core.nmf
+ CXX glibc/Release/core_x86_32.o
+ LINK glibc/Release/core_unstripped_x86_32.nexe
+ VALIDATE glibc/Release/core_unstripped_x86_32.nexe
+ CXX glibc/Release/core_x86_64.o
+ LINK glibc/Release/core_unstripped_x86_64.nexe
+ VALIDATE glibc/Release/core_unstripped_x86_64.nexe
+ CXX glibc/Release/core_arm.o
+ LINK glibc/Release/core_unstripped_arm.nexe
+ VALIDATE glibc/Release/core_unstripped_arm.nexe
+ STRIP glibc/Release/core_x86_32.nexe
+ STRIP glibc/Release/core_x86_64.nexe
+ STRIP glibc/Release/core_arm.nexe
+ CREATE_NMF glibc/Release/core.nmf
As you can see, this produces a number of architecture specific nexe files in
the ``pepper_35/examples/api/core/Release`` directory. Create debug versions by
@@ -70,21 +70,21 @@ default toolchains. ::
$ cd pepper_35/examples/api/core
$ make TOOLCHAIN=all
- make TOOLCHAIN=newlib
+ make TOOLCHAIN=clang-newlib
make[1]: Entering directory 'pepper_35/examples/api/core'
- CXX newlib/Release/core_x86_32.o
- LINK newlib/Release/core_unstripped_x86_32.nexe
- VALIDATE newlib/Release/core_unstripped_x86_32.nexe
- CXX newlib/Release/core_x86_64.o
- LINK newlib/Release/core_unstripped_x86_64.nexe
- VALIDATE newlib/Release/core_unstripped_x86_64.nexe
- CXX newlib/Release/core_arm.o
- LINK newlib/Release/core_unstripped_arm.nexe
- VALIDATE newlib/Release/core_unstripped_arm.nexe
- STRIP newlib/Release/core_x86_32.nexe
- STRIP newlib/Release/core_x86_64.nexe
- STRIP newlib/Release/core_arm.nexe
- CREATE_NMF newlib/Release/core.nmf
+ CXX clang-newlib/Release/core_x86_32.o
+ LINK clang-newlib/Release/core_unstripped_x86_32.nexe
+ VALIDATE clang-newlib/Release/core_unstripped_x86_32.nexe
+ CXX clang-newlib/Release/core_x86_64.o
+ LINK clang-newlib/Release/core_unstripped_x86_64.nexe
+ VALIDATE clang-newlib/Release/core_unstripped_x86_64.nexe
+ CXX clang-newlib/Release/core_arm.o
+ LINK clang-newlib/Release/core_unstripped_arm.nexe
+ VALIDATE clang-newlib/Release/core_unstripped_arm.nexe
+ STRIP clang-newlib/Release/core_x86_32.nexe
+ STRIP clang-newlib/Release/core_x86_64.nexe
+ STRIP clang-newlib/Release/core_arm.nexe
+ CREATE_NMF clang-newlib/Release/core.nmf
make[1]: Leaving directory 'pepper_35/examples/api/core'
make TOOLCHAIN=glibc
make[1]: Entering directory 'pepper_35/examples/api/core'
@@ -106,11 +106,11 @@ Build results
After running ``make``, example directories will contain one or more of the
following subdirectories, depending on which Makefile you run:
-* ``newlib`` with subdirectories ``Debug`` and ``Release``;
+* ``clang-newlib`` with subdirectories ``Debug`` and ``Release``;
* ``glibc`` with subdirectories ``Debug`` and ``Release``;
* ``pnacl`` with subdirectories ``Debug`` and ``Release``;
-For the newlib and glibc toolchains the Debug and Release subdirectories
+For the clang-newlib and glibc toolchains the Debug and Release subdirectories
contain .nexe files for all target architectures. For the PNaCl toolchain
they contain a single .pexe file. PNaCl debug also produces pre-translated
.nexe files, for ease of debugging. All Debug and Release directories contain
diff --git a/native_client_sdk/src/doc/sdk/release-notes.rst b/native_client_sdk/src/doc/sdk/release-notes.rst
index 460d723..d3bc83e 100644
--- a/native_client_sdk/src/doc/sdk/release-notes.rst
+++ b/native_client_sdk/src/doc/sdk/release-notes.rst
@@ -10,12 +10,15 @@ reached canary status. The stable release is typically 6 weeks later.
Chrome/Pepper 49
================
-* gtest/gmock no longer shipped as prebuilt libraries. This is in-line with
+* GCC-based newlib toolchains removed from the SDK. These have been
+ superseded by the nacl-clang toolchain which also produces statically linked
+ architecture specific nexe files.
+* gtest/gmock no longer shipped as pre-built libraries. This is in-line with
normal gtest/gmock usage guidelines. Projects wishing to use gtest/gmock must
- now add explict include paths and compile gtest-all.cc locally.
+ now add explicit include paths and compile gtest-all.cc locally.
Chrome/Pepper 45 (10 July 2015)
-================================
+===============================
Pepper
------
diff --git a/native_client_sdk/src/getting_started/part2/README b/native_client_sdk/src/getting_started/part2/README
index 96c9771..40fe5e2 100644
--- a/native_client_sdk/src/getting_started/part2/README
+++ b/native_client_sdk/src/getting_started/part2/README
@@ -10,8 +10,9 @@ Please see the online documentation here:
Part 2 of the tutorial is the same as part 1, except:
* The SDK build system is now used. This simplifies supporting multiple NaCl
- toolchains (e.g. PNaCl, newlib, GLibC). See $NACL_SDK_ROOT/README.Makefiles
- for more information about the SDK Build system.
+ toolchains (e.g. pnacl, clang-newlib, glibc). See
+ $NACL_SDK_ROOT/README.Makefiles for more information about the SDK Build
+ system.
* The example loads common.js, a JavaScript file that has common code used in
all of the SDK examples.
diff --git a/native_client_sdk/src/getting_started/part2/index.html b/native_client_sdk/src/getting_started/part2/index.html
index 2dd2f50..af5196d 100644
--- a/native_client_sdk/src/getting_started/part2/index.html
+++ b/native_client_sdk/src/getting_started/part2/index.html
@@ -13,9 +13,9 @@
<script type="text/javascript" src="example.js"></script>
</head>
<!--
-For the SDK examples, we support several toolchains (e.g. PNaCl, newlib,
-GLibC). In your own code, you'll likely just choose one toolchain (probably
-PNaCl), and load that directly.
+For the SDK examples, we support several toolchains (e.g. pnacl, clang-newlib,
+glibc). In your own code, you'll likely just choose one toolchain (probably
+pnacl), and load that directly.
Rather than have each example repeat the same module loading code for each
toolchain it supports, we set custom data attributes on the body. Those
diff --git a/native_client_sdk/src/gonacl_appengine/src/cube/Makefile b/native_client_sdk/src/gonacl_appengine/src/cube/Makefile
index feef472..03dff76 100644
--- a/native_client_sdk/src/gonacl_appengine/src/cube/Makefile
+++ b/native_client_sdk/src/gonacl_appengine/src/cube/Makefile
@@ -5,7 +5,7 @@
# GNU Makefile based on shared rules provided by the Native Client SDK.
# See README.Makefiles for more details.
-VALID_TOOLCHAINS := newlib glibc pnacl
+VALID_TOOLCHAINS := clang-newlib glibc pnacl
NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../../..)
include $(NACL_SDK_ROOT)/tools/common.mk
diff --git a/native_client_sdk/src/gonacl_appengine/src/earth/Makefile b/native_client_sdk/src/gonacl_appengine/src/earth/Makefile
index 16becb8..bd473f5 100644
--- a/native_client_sdk/src/gonacl_appengine/src/earth/Makefile
+++ b/native_client_sdk/src/gonacl_appengine/src/earth/Makefile
@@ -5,7 +5,7 @@
# GNU Makefile based on shared rules provided by the Native Client SDK.
# See README.Makefiles for more details.
-VALID_TOOLCHAINS := newlib glibc pnacl
+VALID_TOOLCHAINS := clang-newlib glibc pnacl
NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../../..)
include $(NACL_SDK_ROOT)/tools/common.mk
diff --git a/native_client_sdk/src/gonacl_appengine/src/life/Makefile b/native_client_sdk/src/gonacl_appengine/src/life/Makefile
index 4b3d3ee..785e846 100644
--- a/native_client_sdk/src/gonacl_appengine/src/life/Makefile
+++ b/native_client_sdk/src/gonacl_appengine/src/life/Makefile
@@ -5,7 +5,7 @@
# GNU Makefile based on shared rules provided by the Native Client SDK.
# See README.Makefiles for more details.
-VALID_TOOLCHAINS := newlib glibc pnacl
+VALID_TOOLCHAINS := clang-newlib glibc pnacl
NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../../..)
include $(NACL_SDK_ROOT)/tools/common.mk
diff --git a/native_client_sdk/src/gonacl_appengine/src/voronoi/Makefile b/native_client_sdk/src/gonacl_appengine/src/voronoi/Makefile
index 65af2f3..13b85b4 100644
--- a/native_client_sdk/src/gonacl_appengine/src/voronoi/Makefile
+++ b/native_client_sdk/src/gonacl_appengine/src/voronoi/Makefile
@@ -5,7 +5,7 @@
# GNU Makefile based on shared rules provided by the Native Client SDK.
# See README.Makefiles for more details.
-VALID_TOOLCHAINS := newlib glibc pnacl
+VALID_TOOLCHAINS := clang-newlib glibc pnacl
NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../../..)
include $(NACL_SDK_ROOT)/tools/common.mk
diff --git a/native_client_sdk/src/tools/compiler-wrapper.py b/native_client_sdk/src/tools/compiler-wrapper.py
deleted file mode 100755
index a2dcb11..0000000
--- a/native_client_sdk/src/tools/compiler-wrapper.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""NaCl gcc wrapper that presents glibc and newlib as a single
-toolchain.
-
-This wraps the newlib and glibc compilers and allows users
-to choose which one they really want by passed in --glibc
-or --newlib on the command line.
-
-We need this when using gyp to generator build files since
-gyp only support one target toolchain and one host toolchain
-(for now).
-"""
-import sys
-import os
-
-def main():
- args = sys.argv[1:]
- if '--glibc' in args:
- variant = 'glibc'
- args.remove('--glibc')
- elif '--newlib' in args:
- variant = 'newlib'
- args.remove('--newlib')
- else:
- sys.exit("Expected --glibc or --newlib in arg list")
- compiler = os.path.abspath(sys.argv[0])
- compiler = compiler.replace("linux_x86", "linux_x86_%s" % variant)
- args = [compiler] + args
- os.execv(compiler, args)
-
-if __name__ == '__main__':
- main()