History log of /fuchsia/zircon/system/core/userboot/rules.mk
Revision Date Author Comments
# 6408b1ec 06-Feb-2018 Adam Barth <abarth@google.com>

[ldmsg] Convert the loader service to FIDL wire format

Previously, the loader service used a hand-rolled protocol. Now the
protocol is specified in //zircon/system/public/zircon/loader.fidl.

Because this protocol is used by such low-level components (e.g.,
userboot and libc), we do not use generated code to implement the
protocol. Instead, we use a stand-alone library, ldmsg, which manually
encodes and decodes messages according to the wire format specified in
loader.fidl.

This CL also moves fidl/types.h into zircon/fidl.h because these type
definitions are now fundamental to the operation of the system. Putting
their definition in this location makes them easier to reference from
userboot and libc.

Change-Id: I9a7619b09b0ff543b8883ac53852ade9d5c033b6


# 39e49ee3 07-Feb-2018 Adam Barth <abarth@google.com>

Revert "[ldmsg] Convert the loader service to FIDL wire format"

This reverts commit 3ff2a3f316904d6acf709169fb12ee059231d5d9.

Additional review comments need to be addressed.

Original change's description:
> [ldmsg] Convert the loader service to FIDL wire format
>
> Previously, the loader service used a hand-rolled protocol. Now the
> protocol is specified in //zircon/system/public/zircon/loader.fidl.
>
> Because this protocol is used by such low-level components (e.g.,
> userboot and libc), we do not use generated code to implement the
> protocol. Instead, we use a stand-alone library, ldmsg, which manually
> encodes and decodes messages according to the wire format specified in
> loader.fidl.
>
> This CL also moves fidl/types.h into zircon/fidl.h because these type
> definitions are now fundamental to the operation of the system. Putting
> their definition in this location makes them easier to reference from
> userboot and libc.
>
> Change-Id: I806455813d3a397a2eff41badadf61c28812e328

TBR=kulakowski@google.com,swetland@google.com,abarth@google.com

Change-Id: I7ac90b53cdc152dc8cd892eb394ec7f641161ee9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true


# 3ff2a3f3 06-Feb-2018 Adam Barth <abarth@google.com>

[ldmsg] Convert the loader service to FIDL wire format

Previously, the loader service used a hand-rolled protocol. Now the
protocol is specified in //zircon/system/public/zircon/loader.fidl.

Because this protocol is used by such low-level components (e.g.,
userboot and libc), we do not use generated code to implement the
protocol. Instead, we use a stand-alone library, ldmsg, which manually
encodes and decodes messages according to the wire format specified in
loader.fidl.

This CL also moves fidl/types.h into zircon/fidl.h because these type
definitions are now fundamental to the operation of the system. Putting
their definition in this location makes them easier to reference from
userboot and libc.

Change-Id: I806455813d3a397a2eff41badadf61c28812e328


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 25156ee9 08-Aug-2017 Roland McGrath <mcgrathr@google.com>

[build] Don't use rodso.ld with lld

With lld's -z rodynamic, it's now possible to do the "rodso" cases (the
vDSO and userboot) without using the scripts/rodso.ld linker script.

Change-Id: I30cb10a23e71878f524f04f30c4834c108c90efd


# 3eba7de5 25-Aug-2017 Brian Swetland <swetland@google.com>

[build][groups] annotate 'misc' and 'test' modules

This allows us to generate a bootdata.bin which excludes them,
reducing it from 4.52MB to 2.65MB

The default bootdata.bin still includes all modules.

Change-Id: If13bfcacba9386a691e6b7c380eed53d67bb44eb


# ba57cabd 18-Aug-2017 Petr Hosek <phosek@google.com>

[userboot] Use the -ffreestanding flag with libuserboot

This is to make sure that compiler doesn't try any shenanigans like
replacing the calls to memcpy/memset/memmove with builtins which
cause LTO to optimize our own versions away.

Change-Id: I378049282f161f35172753ecd5c3bee9fb3a32be


# e379d886 24-Jul-2017 Roland McGrath <mcgrathr@google.com>

[build] Support AddressSanitizer userland build with USE_ASAN=true

ASan builds by default go in build-$PROJECT-asan/.
The buildall and run-magenta scripts do ASan builds with the -A switch.

Code that is incompatible with sanitizer builds adds
$(NO_SANITIZERS) to MODULE_COMPILEFLAGS. Everything else
in userland gets built with ASan.

Using USE_ASAN=true requires a Clang toolchain with the ASan
runtime shared library, which will not land for a while yet.

MG-71 # Enabled all-or-nothing USE_ASAN build switch for Magenta standalone.

Change-Id: Ifc0628934c19affcb909b20f3cfdcc86ee54c2f9


# 57626625 05-Jun-2017 Roland McGrath <mcgrathr@google.com>

[ulib][musl][asan] Sanitizer support in memcpy, memmove, memset

Mark the C implementations of memcpy, memmove, memset with NO_ASAN.
These functions will have sanitizing wrappers provided by the
sanitizer runtime library.

Export aliases __unsanitized_memcpy, __unsanitized_memmove, and
__unsanitized_memset that the sanitizer runtime code can call
directly.

In the ASan build, Define weak aliases __asan_memcpy,
__asan_memmove, and __asan_memset that will satisfy references
generated by the compiler without the sanitizer runtime library.

Change-Id: I0a192b9f6c623e71300422ffac86d785303b11d3


# 841a07a0 22-Apr-2017 Roland McGrath <mcgrathr@google.com>

[core][userboot] Provide a basic loader service in userboot

This makes it possible for the initial program (usually devmgr)
to load additional shared libraries.

Change-Id: Ief65d8ec8705d47bbacbbeb85ec28811d4c3725e


# 763f4c85 22-Apr-2017 Roland McGrath <mcgrathr@google.com>

[core][userboot] Clean up bootdata-scanning code

Functions do it with more fun.

Change-Id: I3ddbc0cbc4e156570d2c42dafd36323d9ef4a258


# 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


# bb5242c8 13-Mar-2017 Josh Conner <joshconner@google.com>

[scripts][build] Make scripts magenta-friendly

Allows scripts to run under dash in magenta.

Change-Id: I2913871ae92c8ca259fd00300e2171330782421e


# c3e53efc 08-Mar-2017 Roland McGrath <mcgrathr@google.com>

[build] Make rodso.ld a plain source file again

Without the ARM32 support, there is no need to preprocess
the linker script file with #if conditionals. So just use
the source file directly.

Change-Id: Ida3cf629f203398d0b60b228836088a6e25539d2


# c8147e06 24-Feb-2017 Roland McGrath <mcgrathr@google.com>

[build][userboot][ulib][runtime][musl] Support userland safe-stack build

Add build machinery to enable safe-stack for user-mode code by
default when building with Clang.

Annotate code on the early startup path so it won't use the
safe-stack ABI before the thread pointer and stacks are set up.

Disable safe-stack entirely for everything that goes into userboot.

Change-Id: Ifb1bc785bb0cc97164b937b3a32d5bfe26d67ef1


# 4a086969 16-Feb-2017 Josh Conner <joshconner@google.com>

[make] Allow OS-specific scripts

If a script is present in the scripts directory with an OS (e.g.,
.Linux or .Fuchsia) suffix, that script will be used instead.

Change-Id: I880138fe39775f3c3f84a8f0e76ecee18e27f10c


# 796f3dd2 24-Jan-2017 Tim Kilbourn <tkilbourn@google.com>

[userboot] Use bootdata library

Change-Id: I3a02f1d7fdbd778ce86e852ca2a891b6c6edb14c


# a602413d 24-Oct-2016 Tim Kilbourn <tkilbourn@google.com>

[userboot] Decompress bootfs

If the appropriate flag is set in the bootfs bootdata, attempt to
decompress the VMO.

Also deprecated the FSMAGIC header in favor of the bootdata_t magic.
userboot will still check for the existence of the header for now, for
compatibility, but eventually this too can be removed.

Change-Id: If7d9b466524e8edfd6327d4959c2f3168a1bc598


# dc800e9a 29-Sep-2016 Brian Swetland <swetland@google.com>

[organization] move essential userspace components to system/core/...

userboot, devmgr, acpisvc, crashlogger, netsvc are essential to the
system booting and running. Pretty much everything else in system/uapp/..
is nonessential.

Change-Id: Ibbcf2b1c388bdefc28699226eab02e90aab895f0