DescriptionBuild and use libraries locally in the nacl build, not requiring "partial SDK"
This is the major piece of retiring the "partial SDK" concept.
The --mode=nacl_extra_sdk build is still intact and works as before,
but is longer necessary for building a nacl tree from scratch with
local updates to all the libraries whose source is in this tree.
One component of this is to substantially unify the compilation flags in
the nacl and nacl_extra_sdk environments, which had grown apart by bit-rot.
The various libraries are now compiled in both environments (and some of
them also in the nacl_irt environment), so the set of -D macros that the
library code requires must be consistent across the environments.
Another issue is that the C preprocessor implicitly suppresses various
warnings when the code provoking them appears in a "system header file".
Files in the toolchain/.../include directories count as system headers, so
this was masking some cruft in two tests. Now that we are instead finding
the headers locally via -Iscons-out/.../include, they are no longer
considered system headers and the warnings (which are errors with -Werror)
are not suppressed. This is what necessitated the two actual code changes.
http://code.google.com/p/nativeclient/issues/detail?id=1654 was mentioned
in one of those places, but has been obsolete for a long time.
There are various bits of scons magic required to correctly express all the
dependencies on header files and libraries. These didn't matter before
when scons didn't have to build/install those files because the compilers
just found them implicitly in toolchain directories. Now everything that
can come from the local nacl tree does come from the local nacl tree, so
scons has to know about all the dependencies to build libraries into
scons-out/.../lib and copy headers into scons-out/.../include.
Later changes will finish the job by providing new ways to install the
public headers and libraries into an SDK, and then finally getting rid of
nacl_extra_sdk entirely.
PNaCl is another can of worms not yet addressed.
BUG=http://code.google.com/p/nativeclient/issues/detail?id=1859
TEST=trybots & toolchain trybots
R=bradnelson@google.com,ncbray@google.com,bradchen@google.com
Committed: http://src.chromium.org/viewvc/native_client?view=rev&revision=5852
Patch Set 1 #Patch Set 2 : rebased #Patch Set 3 : windows .s/.S horror #
Total comments: 11
Patch Set 4 : review nits, windows kludge fixed, rebased #Patch Set 5 : rebased + tweaks for pnacl #Patch Set 6 : need libehsupport for irt #Patch Set 7 : disable optimization for pnacl extrasdk #Patch Set 8 : tweaks for pnacl with updated driver #
Total comments: 1
Patch Set 9 : fixed comment typo #Patch Set 10 : one more hack for pnacl #Patch Set 11 : final fix for pnacl #
Messages
Total messages: 13 (0 generated)
|