History log of /fuchsia/zircon/kernel/arch/arm64/rules.mk
Revision Date Author Comments
# 8b4af924 03-Jul-2018 Francois Rousseau <frousseau@google.com>

[kernel][crashlog] move away from printf callback

instead of piggybacking on the printf messages, we build a crashlog
struct with the relevant fields that we then serialize to string

DX-230 # step 1

TESTED=manual run of `k crash` on device (arm64 and x64) and manual inspection of logs upon reboot

Change-Id: I6019c85cbd0d71084d543667850dea30ac06ea93


# a08c216a 11-Jun-2018 RJ Ascani <rjascani@google.com>

[syscalls] Add ARM SMCCC support to SMC syscall

In order to support the full range of services that are available via
the ARM Secure Monitor, zx_smc_call needed to gain some additional input
and output parameters. These additional parameters bring the syscall in
line with the ARM SMC Calling Convention where there are eight input
registers and four output registers.

The SMC invocation itself was moved out from underneath the PSCI kernel
driver to the arm64 arch specific component. All current SMC invocations
were updated to the new function and there are currently no calls from
higher layers.

Change-Id: I5577479a7f960a85a04cc6d978c27a2e37246a2f


# 1defcb2b 18-Apr-2018 Roland McGrath <mcgrathr@google.com>

[kernel] Use --emit-relocs to add self-fixups

SEC-31 #comment This applies relocations to the kernel.

Change-Id: I07b40308b768a56c889eeb9a9a89c0e897924617


# 45b6313f 16-Apr-2018 Mike Voydanoff <voydanoff@google.com>

[arm64] Fix problem running with > 8 CPU cores

Change-Id: Ic72c1dbbb3d98e8997e34feff5221576ba759e68


# f872ef8d 09-Apr-2018 Mike Voydanoff <voydanoff@google.com>

[kernel][arm64] Revamp mapping of peripheral ranges for kernel drivers

Virtual addresses for peripheral ranges are now allocated below the kernel.
MDI and bootdata no longer contain virtual addresses for peripherals.
Kernel drivers now call periph_paddr_to_vaddr() to convert the
physical addresses for the peripherals to virtual addresses in the kernel map.

Change-Id: I89431a167dff16c09a5e25347fc8cf1eacb39791


# aa5784a5 07-Apr-2018 Mike Voydanoff <voydanoff@google.com>

[kernel][arm64] Remove libfdt from the arm64 kernel build

Change-Id: I24ae81405905f96641b545ce801246ca817f705f


# c742a599 04-Apr-2018 Roland McGrath <mcgrathr@google.com>

[build] Compile arm64 userland with -ffixed-x18 too

We've declared x18 reserved in the public Fuchsia ABI.
Clang will automatically reserve it for --target=aarch64-fuchsia.
Before that toolchain arrives, and when using GCC, make sure
it's explicitly reserved via the compiler flag. This is the
same flag already used for building the kernel, where x18 is
also reserved for separate reasons.

Change-Id: Iae77d15331047fd6f9ebc1730cf74c89d0322df9


# 5313060d 24-Mar-2018 Mike Voydanoff <voydanoff@google.com>

[arm64][build][kernel] arm64 kernel is now a bootdata container

Like the x64 kernel, the arm64 kernel is now packaged as a bootdata container.

Currently, all of our arm64 platforms except the hypervisor do not support this.
For those platforms we now have a shim that is prepended to the beginning of the kernel.
This shim checks to see if there are remaining bootdata items following the kernel.
If there are, the shim copies the kernel beyond the end of the bootdata
and executes executes it there. Otherwise it will jump to the kernel in place.

We also add a new <board>-combo-bootdata.bin build file, which contains
the kernel and all of the bootdata packaged in a single file.
This is now being used on the vim, vim2 and hikey960 targets.
However we cannot use the combo-bootdata on gauss, qemu and odroidc2,
so on those platforms we add the shim to their kernel and boot with a
separate bootdata passed as the ramdisk.

In this change we also add --header and --header-align options to mkbootfs,
which prepend an optional binary header to the beginning of the mkbootfs output.
Strictly speaking we could have done this using "cat" instead,
but having this option in mkbootfs eliminates the need for temporary files
and would be simpler to use in the Fuchsia build system.

Change-Id: I9fa572318158043e7b22c5ad944f33a23053abd3


# e6b2c54b 11-Mar-2018 Petr Hosek <phosek@google.com>

[build] Remove the SafeStack configuration

SafeStack is now enabled automatically by the toolchain driver.

Change-Id: Ic4e3e437baf2fe3569385c46e328f7bdc62ffe0a


# 67cef195 28-Feb-2018 Mike Voydanoff <voydanoff@google.com>

[kernel][arm64] Remove KERNEL_LOAD_OFFSET build variable and header.S

Targets that now need a header with load offset will
prepend that to the kernel as a separate target specific build step

It is no longer needed for any of our arm64 targets except odroid-c2,
which will be fixed in a following CL.

Change-Id: Ic981d73fac52b053f790819faac99d2402e6ca61


# 176d3dcd 28-Feb-2018 Mike Voydanoff <voydanoff@google.com>

[kernel][arm64] Remove obsolete uefi boot path

Change-Id: I24ff3d490bcb54764abd0b89bf754478dcf53f72


# a550ecf9 30-Jan-2018 Christopher Anderson <cja@google.com>

[run-zircon] Add --debugger to run-zircon

- Adds DEBUG_HARD to make-parallel. If true, the build
will be built with -O0 -g3
- Move GLOBAL_OPTFLAGS and MODULE_OPTFLAGS later in the gcc flag list
so that they can override GLOBAL/KERNEL/ARCH flags as necessary.
- --debugger will start qemu with a GDB stub waiting for
connection.

Change-Id: I7f2425ef1f4f55c83ecd2f0e50197777af466c23


# ecd7e335 26-Jan-2018 Mark Seaborn <mseaborn@google.com>

[kernel][libc] printf(): Remove unused code for %f (floating point numbers)

Remove the code for handling %f and %a from the two copies of the
printf() implementation in the codebase:

* The kernel's copy (kernel/lib/libc/printf.c). In this case, the
"%f"-handling code was not being compiled -- it was conditional on
"#if !WITH_NO_FP", but kernel code was compiled with WITH_NO_FP set
to 1. We can also remove some related test code.

Note that using the double and float types is generally not allowed
in kernel code anyway (see docs/kernel_invariants.md).

* The bootloader's copy (bootloader/lib/printf.c). This was being
compiled in, but was not being used. (I checked that the
bootloader still works with this removed.)

Change-Id: Id3e7730ef66ce9d6e5f2f95e77625f33d8ddcb05


# f3f7ccbf 02-Jan-2018 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64][mmu] refactor the asid allocator

Switch to a linear search instead of randomly picking a value.

Could degenerate to a slow algorithm, but practically speaking it will
generally allocate on the first attempt.

Change-Id: Ie01647910d86a24c65aa9e9c2fcba18c9f974a09


# 99b38b63 15-Dec-2017 Roland McGrath <mcgrathr@google.com>

[kernel][arm64] Compile early-boot EFI code specially

The early-boot EFI environment is very restricted and cannot run normal
kernel code. Compile efi.cpp specially for this environment.

ZX-1495 #done

Change-Id: I6bd9809d34974d70ca26aa5d327a46dd3216d7f6


# 543644fd 11-Dec-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64] move some of the per cpu feature detection into a new feature.cpp file

Add feature flags that can be tested, similar to x86.

Change-Id: I6eca6c96a075fb86ad6c156fb1f214460efe676c


# de8422b0 12-Sep-2017 Todd Eisenberger <teisenbe@google.com>

[dev][iommu] Define an IOMMU API and a no-op implementation

This defines an initial version of the IOMMU API. It is not expressive
enough to handle devices that use PASID support (multiple address spaces
for a single device), but ideally covers all other uses.

ZX-693

Change-Id: I8fbd17a2857e0e8be156c9c59073398a937de107


# 31352893 28-Nov-2017 Travis Geiselbrecht <travisg@google.com>

[kernel] remove MEMBASE and some other unused variables

Change-Id: I6e644de42f84b3a25e6e6e9697c32fabcedaa0d5


# 800043a2 27-Oct-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64] remove ARCH_CPU_* defines and hard code the codegen to cortex-a53

The kernel doesn't need to be compiled or know that it's being compiled
for a specific arm core. It was always set to cortex-a53 anyway.

Change-Id: Ic682e87323682829d121bf2be97ba4867e5e881b


# d54624b7 14-Oct-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64] Move the kernel run address out of the Big Kernel Map

-Added code in early boot to remap wherever the kernel was loaded to
approximately -4GB (KERNEL_LOAD_OFFSET still applies)
-Simplfy the mmu_initial_mapping stuff a bit, remove the DYNAMIC flag,
which wasn't used.
-Fix up the boot allocator very early in arm64 to figure out where
physical memory is.

ZX-1238 # Done

Change-Id: Ib43eb9288c79e01253c5c4499278e2fe83602bd1


# 07166ed7 13-Oct-2017 Roland McGrath <mcgrathr@google.com>

[kernel] Consolidate kernel linker script

There is much more that's the same than that's different between
the architectures. Maintaining a single linker script that works
for both is easier than keeping two in synch.

Change-Id: I0655919e3f7dc5f8788d47bbe733f444c87ec97b


# 6707c390 11-Oct-2017 Roland McGrath <mcgrathr@google.com>

[kernel][arm64] Rename kernel linker script

Use the more obvious name kernel.ld, as x86 does.
Clean up the makefile mentions.

Change-Id: I443e36d1e66ab4aeaba882784339dbc5c072df64


# 34d4529b 02-Oct-2017 Thomas Garnier <thgarnie@google.com>

[arm64] Build code as position independent

Build arm64 kernel as position independent without any relocation for
now. This change is straightforward on arm64 as everything is relative
and GOT usage is already limited.

Disable PIC only for x86_64 until the next commit. Also add a hidden.h
to enforce default hidden on all symbols.

SEC-31
Change-Id: I9ce4fcd33b9eddf817315f1329cff3c9c4842b8c


# f92bf872 19-Sep-2017 Eric Holland <hollande@google.com>

[arm64][kernel] tool for reading sysregs

Change-Id: Ie11c44b39e2924f4fd92706f94e6d864436c3194


# 8eb2e202 01-Sep-2017 Travis Geiselbrecht <travisg@google.com>

[kernel] remove extraneous #if checks for WITH_OBJECT

It's basically required now, so declare a dep on it and use the api directly.

Change-Id: I1febaf296cc51b9e016cc514bd7b7aa9c09d4829


# a403d857 25-Aug-2017 Eric Holland <hollande@google.com>

[arm64][efi] Support reloc/boot from efi

Change-Id: I40de15f4cdcda4878aa6b4af2b6b03daaebf1a60


# e5bdc68a 28-Aug-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Invert build dependencies.

This allows us to depend on lib/magenta from lib/hypervisor, so we can remove
all of the WITH_LIB_MAGENTA defines and still build cleanly with the -test
targets.

Change-Id: I7a54c2ae4d812213a21ff67b963626a65879b2ea


# 197d0327 25-Jun-2017 Doug Evans <dje@google.com>

[kernel][build] Emit .debug_frame instead of .eh_frame

Alas on our GCC this is (currently) not possible. MG-62
For now we're not getting either .eh_frame or .debug_frame (.eh_frame gets
discarded due to -gc-sections).
This is mostly ok for now as we compile with -fno-omit-frame-pointer.

MG-870 #done

Change-Id: I1637c014d188b80beec74f6ba8c9237c10ffb3d5


# 13440c40 13-Jun-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64] Create a per cpu structure and use the x18 register to point to it

At the moment use it to store the oft-used current cpu number and
is-in-interrupt flag.

Change-Id: I3203358ca47a3b193ef7cb01356b67b50c74ff0f


# 79bb46c1 27-Jun-2017 Roland McGrath <mcgrathr@google.com>

[build] Consolidate Clang --target option setting via CLANG_ARCH

The arch rules.mk just sets CLANG_ARCH. Using $(CLANG_ARCH) for
--target=$(CLANG_ARCH)-fuchsia is in common code.

Change-Id: Ie4131e00bb73d3f92683cf7d5439789f7508ea03


# c4b00c8a 01-Jun-2017 Travis Geiselbrecht <travisg@google.com>

[kernel] remove the WITH_SMP flag

Always build the kernel with full SMP support.

Change-Id: I105f8e4127a93113c795ae80e1dc4d4b0d43abe8


# f0b19dcf 31-May-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arch] store the current cpu # in the spinlock variable

This allows us to write code (not currently implemented) that checks
to see if a spinlock is recursing, or if it's already being held.

Change-Id: Ife75f5de214759877ec097313f82bb20d129a9cf


# 5236773f 25-May-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64] bump the arm64 kernel stack size to 8k to match x86-64

Somewhere pre-fork the x86 code was bumped to 8k and arm64 was kept at
4k. This is probably a crash waiting to happen, so go ahead and bump it
to 8k to match x86.

At some point we might want to see if this is overly conservative.

Change-Id: I21a5d32ea7681554c79293130b2533ee4844f707


# 436b12bb 03-May-2017 Gurjant Kalsi <me@gurjantkalsi.com>

[syscall][kexec] Implements mexec syscall.

Change-Id: Icc8a31f73521fef21ac3cbb1da3d3ef1286fb621


# 116ed79a 24-Apr-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64] mass rename arm64 files from .c to .cpp

No attempt to make them compile

Change-Id: If9eef1aded99e20b3046a387cdb29ef1dbe2e587


# e3d60a3e 21-Apr-2017 Roland McGrath <mcgrathr@google.com>

[kernel][arm64] Build ARM64 kernel with -fsanitize=safe-stack

Change-Id: I953e5e19bf319e2047a467e64e3222808c07f9e3


# 50a2d07e 21-Mar-2017 Travis Geiselbrecht <travisg@google.com>

[make] add QUIET=1 option to the build to squelch all output

Change-Id: I57742bb6aa0ad1f0dc516c917dfecd65f6f65f43


# 16656ae0 05-Apr-2017 Brian Swetland <swetland@google.com>

[build] flatten the build

Previously we treated kernel/, system/, and third_party/ as
overlays on a shared namespace. This required the concept
of "canonical" module names, and a lot of complexity to ensure
that things didn't collide and the build worked.

This change gets rid of that, no longer passes -I to make,
so that include directives from our *.mk files do not magically
wildcard across various paths, etc.

The most user-visible change is that everywhere where a module
name is specified (MODULE_DEPS, MODULE_LIBS, etc), full module
names like kernel/lib/io or system/ulib/mxio must be used instead
of previously-allowed "short" names like lib/io and ulib/mxio.

The build output still has a similar shape, but the first segment
of the module path (kernel/, system/, or third_party/) is no
longer elided under $(BUILDDIR)

Change-Id: I525aba1da1c86eb7a86007bddc669f7eeebfedd5


# 5dbe69d1 10-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[arm64][qemu] Transition the arm64 qemu build to use the generic-arm platform:

Make the arm_gicv2 interrupt controller and qemu UART drivers pdev drivers
so they can be selectively enabled based on MDI.

Removed obsolete gic v3 compatibility support from the arm_gicv2 driver

Move qemu pcie code to kernel/dev/qemu

Fold kernel/arch/arm64/platform.c intoto generic-arm platform code

Now all arm64 builds are using the common generic-arm platform support

Change-Id: Id929c053d4e4438e6b8293918c0236a8590feb88


# 9b70d35d 08-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[kernel][arm64] Clean up the way CPU IDs are managed

Remove SMP_CPU_CLUSTER_BITS, SMP_CPU_ID_BITS, SMP_CPU_CLUSTER_SHIFT
and SMP_CPU_ID_SHIFT #ifdefs

CPU topology (number of clusters and number of CPUs per cluster)
can now be specified programatically from platform.c.
Later this will be specified in the MDI data.

start.S no longer makes assumptions about CPU topology.

Change-Id: I563472c871bb40ee0b7cdf13e910be7d1495bcb4


# 5b49aab7 28-Feb-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64] flip the arm64 mmu code from C to C++

Just a trivial change to get it to compile and work, not a complete refactor.
That will come in an upcoming change to switch to an OO model.

Change-Id: I81167a53e435df37fe3d2d7c0ad810f04b08c33b


# 628b2ccf 28-Feb-2017 Mike Voydanoff <voydanoff@google.com>

[arm64][msm8998] Move device tree reading code to a common location

arch/arm64/platform.c now contains common code for initializing
the kernel command line and finding location of ramdisk

Change-Id: I20faac520ba91cb33e87973a28858a69cdb98117


# 2967173f 14-Feb-2017 Abdulla Kamar <abdulla@google.com>

[magenta][hypervisor] Add beginnings of a hypervisor.

This does the very basic task of enabling VMX on each CPU. Next step is to
setup MSRs and to launch into a VM.

I'd like some early feedback before I dive too deep. A lot of this is subject
to change as we learn more, and iterate on the implementation.

Change-Id: Idce0d36d73e9a3be8e607f6c9b1a29597cfc4f51
NOTE: Only Intel CPUs are currently supported.


# cc13fa9f 14-Feb-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][make] move WITH_NO_FP define into KERNEL_DEFINES instead of command line

No functional change, just an itch to scratch.

Change-Id: I20abf227752567d04c08accba03295f794c55090


# 810d63b9 10-Feb-2017 Eric Holland <eric.holland@gmail.com>

[arm64][psci] Define id/cluster bits for single core builds

WITH_SMP=0 builds may still use psci for non-smp related ops
such as system reset/halt. Need to define the cluster/id
bit field dimensions to satisfy the library in this case.

Change-Id: I591444e19b8eedf21d8250e5387320d92ff638fa


# aaa51660 07-Feb-2017 Eric Holland <eric.holland@gmail.com>

[arm64][mp] Fix cpu id reporting for clusters

Change-Id: I63106eccc648561ab79e225614f98f329835d040


# 007e0437 02-Feb-2017 Travis Geiselbrecht <travisg@google.com>

[build][arm64] remove a little bit of extraneous spew that is meaningless w/clang

Change-Id: Ic4d5f840082bf3e82f8f173fdb0f3d00fc0c3d94


# a4f254d8 15-Dec-2016 Travis Geiselbrecht <travisg@google.com>

[kernel] fix all the arches building without SMP support

Also allow setting the maximum number of cpus in the build system.
Reduce the default PC count to 8 from 16. Saves some memory, and
we're not (currently) going to be very efficient above 8 right now.

Change-Id: I61c7f3773977b8d1409c755baf4d24c9a9800af9


# d6e95f78 10-Nov-2016 Roland McGrath <mcgrathr@google.com>

[build] Consolidate LIBGCC setting

The method for finding the compiler's runtime library is the same
for all machines and both compilers. Just do it in one place.

Change-Id: I5ba2f6299e200c6a321643b8558e8c6db886d381


# ee3d6ee6 31-Oct-2016 Travis Geiselbrecht <travisg@google.com>

[kernel] remove the no-vm path

Remove the no-vm build, which hasn't worked for quite some time. Cleans up
some clutter in some of the boot code.

Change-Id: Ia11c531c19d167538838a47f92e5d5c38d8fec71


# a57f10a6 28-Oct-2016 Petr Hosek <phosek@google.com>

[build][clang] Use -print-libgcc-file-name to find compile-rt path

Clang now supports -print-libgcc-file-name with compiler-rt, use
it find the correct path to libclang_rt.builtins library.

Change-Id: I38c9ca1d6bd1516ed6555476cbcfb587bb26d88f


# 2e95ae0c 21-Oct-2016 Doug Evans <dje@google.com>

[build] Turn optimization to remove frame pointers back on.

libunwind (third_party/ulib/ngunwind) can unwind through optimized code.

Change-Id: Ie079a5d0fc074213b2a0d6a86919159579526810


# faa47c76 18-Oct-2016 Doug Evans <dje@google.com>

[kernel][makefiles] Add KEEP_FRAME_POINTER_COMPILEFLAGS.

Change-Id: I477cd53c2fea60dd6d728bb6241ce10639910dfd


# 0fa0d945 19-Oct-2016 Doug Evans <dje@google.com>

[kernel][engine.mk] Turn on -fasynchronous-unwind-tables.

We now have libunwind (third_party/ulib/ngunwind) for backtraces
on x86_64, arm64. .eh_frame is still disabled for arm32 as we
don't support unwinding there, and the build currently fails
(libgcc issues?) if we turn on -fasynchronous-unwind-tables for arm32.

Change-Id: I0e67e46c32aeca1dc5a9bccc2604fec4ad327b8c


# 0fe3b2cf 04-Oct-2016 Travis Geiselbrecht <travisg@google.com>

[make] move the linker garbage collect switch out of arch into top level make

Change-Id: Ie5fe2b435eba1574fe50998c3ece8815b584b567


# ae7910c0 30-Sep-2016 Petr Hosek <phosek@google.com>

[build] Use boolean flags to enable Clang

This is to match other flags used by the build.

Change-Id: Idd1c1714aff3d03dbc58b92a2cbe0ee0a75d8089


# 0d794034 07-Sep-2016 Doug Evans <dje@google.com>

[kernel][debug] beginnings of register r/w support

This provides two syscalls mx_thread_read_state,mx_thread_write_state
that can be used to r/w cpu registers.
It is built off of the idea of "register sets" (integer, floating point,
and so on) in common use at least in gdb.

Discussion of the ultimate name of these syscalls, and whether to
merge them with something else is being left until the raft of
dependencies relying on this code is ready.

Change-Id: Ic118a76292334dfeaa46278aaddca3140ed4441c


# 2d23cd0a 30-Aug-2016 Brian Swetland <swetland@google.com>

[magenta][crashlogger] backtraces for arm64 targets

Change-Id: Ic360d44737a5c3e40502f91e742bb1142018ebf8


# 7447ea1d 25-Aug-2016 Roland McGrath <mcgrathr@google.com>

[build] Remove support for fully-static linking

Everything links to libc (and libmagenta) dynamically now.
Fully-static linking is not supported at all.

Change-Id: I0c9dec52ee1bc7b360dd9127370b63be71a96d4f


# 8184582b 18-Jul-2016 Roland McGrath <mcgrathr@google.com>

[build] Use GLOBAL_LDFLAGS for ld -shared too

It turns out that --gc-sections works just fine with -shared (it takes
each exported symbol as a root rather than just the entry point). So
there is no problem using GLOBAL_LDFLAGS for that case too.

Change-Id: Ifadbe2c443407ff6914bfd1b9d45e1f18c2bc3be


# a26a5056 15-Jul-2016 Roland McGrath <mcgrathr@google.com>

[build] Support MODULE_LDFLAGS, and USERLIB_SOLDFLAGS

The default ld -shared rules want some more ld options.
These go into USERLIB_SOLDFLAGS.

Some modules might need per-module ld options.
These go into MODULE_LDFLAGS.

Change-Id: I645c3c736c301718c5376f02b702220f42d6d7aa


# 201b60d8 14-Jul-2016 Travis Geiselbrecht <travisg@google.com>

[kernel][build] remove IS_64BIT #define, replace with _LP64

Change-Id: I35bfdf5ba241f84b54cb9d49bd928bf6a7099a08


# 93ceec31 14-Jul-2016 Travis Geiselbrecht <travisg@google.com>

[build] move some LK #defines into kernel space only and switch user space code to using compiler builtins

The user space ones that were specifically switched was
ARCH_* -> __x86_64__ (and friends)
IS_64 -> _LP64

Change-Id: Ide84907cbf7ae80e27b605454514fe06a604168d


# fb601486 28-Jun-2016 Travis Geiselbrecht <travisg@google.com>

[make] clean up a bad variable addition in the clang path

preinitialize another variable to make the unused variable warning go away.

Change-Id: Id7cf9ab2980bf16e42d17abfe2bffb00e1eb07df


# 83ea7eb5 27-Jun-2016 Petr Hosek <phosek@google.com>

[build] Use Fuchsia triple when building with Clang

This is to ensure that the object files produced by the compiler
have the correct ELF header using Fuchsia as OS/ABI.

Change-Id: I994c67e72f549be3b6534cf7b00f3c582ef1eb06


# caa3d673 19-Jun-2016 Travis Geiselbrecht <travisg@google.com>

[make] split the master config.h file into global_ kernel_ and user_ configs

Split most of the build-system-set #defines into their corresponding bucket,
which should reduce the amount of extraneous rebuilds by a bunch.

WITH_* defines are now limited to kernel space only, for example, so modifying
what user space apps are build shoudln't force a full rebuild like it does now.

This also stops leaking of a lot of kernel configuration out into user space.

*_ASPACE_BASE and *_ASPACE_SIZE seem to be used in at least one place, however,
but it seems pretty benign.

Change-Id: I4d9d68a7446cd6dd13348f0fbf8821e7894248dd


# 53b9e1c8 15-Jun-2016 The Fuchsia Authors <authors@fuchsia.local>

[magenta] Initial commit