History log of /fuchsia/zircon/system/ulib/launchpad/rules.mk
Revision Date Author Comments
# 4e44733f 20-Jun-2018 Adam Barth <abarth@google.com>

[launchpad] Stop exporting launchpad

There are no more clients of launchpad outside of Zircon. This change
stops us from exporting liblaunchpad.so from Zircon, which should help
us not introduce any new clients.

Test: Build-only change
Change-Id: I659083d738eea1eecae5e7d004faa2c14f745413


# 1b4508c6 12-Feb-2018 Adam Barth <abarth@chromium.org>

[loader-service] Separate loader-service from launchpad

There's no particular reason to link the code for implementing the
shared library service into the library for launching executables.

This CL also removes the unused local shared library loader codepath,
which would secretly spin up a thread in your process to export your
namespace to processes you created if your parent didn't provide you
with a functional shared library loader service.

Change-Id: I0f2a31197df49831a7630ff72cf8a6a561c3dbd0


# 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


# 3e23b102 08-Sep-2017 Brian Swetland <swetland@google.com>

[mxio][launchpad] loader-service moves to launchpad

This is the logical place for it to live and paves the way to migrate
it away from the soon-to-be-no-more mxio dispatcher.

Tidied up the API, de-mxio'd it, put it behind a common loader_service_
prefix, and broke some swiss-army-knife interfaces into more standalone
pieces, hopefully easier to understand.

Change-Id: I91acd79a44c5dcc72412484bd6e151a54d52c8a1


# 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


# 12242caa 07-Mar-2017 Brian Swetland <swetland@google.com>

[build][musl] refer to musl libc as ulib/c

This makes the build rules and the intermediate
output files easier to understand, without having
to modify the path where musl libc lives.

The biggest observeable difference is the build
intermediate files:

$ ls build-magenta-pc-x86-64/ulib/c
config-module.h libc.abi.h libc.abi.stamp libc.so libc.so.id libc.so.strip
libc.a libc.abi.o libc.a.opts libc.so.abi libc.so.opts third_party

which previously were at build-magenta-pc-x86/ulib/musl
and named libmusl.*

and the replacing of ulib/musl with ulib/c in the library
dependencies of all the rules.mk files (the vast bulk of
this change)

Change-Id: If9c5d522099d2c9ac5bdb666b8e67a2eb3d316ee


# 23fc5c4c 22-Feb-2017 Christopher Anderson <cja@google.com>

[launchpad] Clean up deprecated functions

Change-Id: I51a013faf72de37dd18eb06b3fc3956bb0f2422f


# f6c75589 05-Nov-2016 Brian Swetland <swetland@google.com>

[build] whitelist libraries for sysroot

The sysroot should be carefully curated, not blindly include
every library that we happen to build within the magenta build.

MODULE_EXPORT is now used to indicate a library belongs in sysroot,
either as static "a", shared "so", or both "a so".

MODULE_NAME can override the static library base name if desired,
similar to how it overrides the installed binary name for apps.

Change-Id: Id97163a46e6ade155e82ad88ebcb68d48e243f57


# 39824377 16-Sep-2016 Roland McGrath <mcgrathr@google.com>

[build][ulib] Disallow MODULE_DEPS for userlib modules

Like userapp/usertest, these should be using MODULE_LIBS or
MODULE_STATIC_LIBS instead.

Change-Id: If01168baf9bdb98671577932df53b9f667099df9


# 0a182ed6 24-Aug-2016 Roland McGrath <mcgrathr@google.com>

[ulib][launchpad] Drop unneeded ulib/runtime dependency

Change-Id: I2ce1d8b5a6244a20712b3ecf833c04f9ec5592b3


# 66a201f1 16-Aug-2016 Brian Swetland <swetland@frotz.net>

[system] align license and license banners with Fuchsia

This adjusts the Magenta userspace code to match the prevailing
license in Fuchsia (three-clause BSD), using the same banner
and license text.

Change-Id: I6b6d79435c5dbaa32027888874849e4f47aaa7be


# 486eb2d2 09-Aug-2016 Roland McGrath <mcgrathr@google.com>

[ulib] [launchpad] Use mxr_mutex_t instead of C11 mtx_t

The low-level libraries like launchpad can't assume that their
callers will be using full-fledged C11 or POSIX threads. So don't
use standard synchronization methods, but only the ulib/runtime
layer instead.

Change-Id: Id861e56f78667249ec24910c9fc04514273bfe0b


# cced204a 31-Jul-2016 Roland McGrath <mcgrathr@google.com>

[ulib] [launchpad] Factor core ELF loading code out into elfload library

The new library is simple, pure code that does no memory allocation.
It's still rolled directly into the launchpad library.
But it's also available to be rolled into other code.

Change-Id: Iec7f74285a1a3901d7cbfa08d5cf1ced9aeb3b27


# f358d68e 29-Jul-2016 Brian Swetland <swetland@google.com>

[build] make musl-static the exception rather than musl-shared

This makes the common uapp, ulib, or utest rules.mk much more
comprehensible. Some day we'll eliminate the need for -static
entirely, but that requires some deeper refactoring.

Change-Id: Ifcdb635e5af7bf0b033632358164c3042e7e6d4a


# d8a400e1 29-Jul-2016 Brian Swetland <swetland@google.com>

[build] tidy up the user build some more

Change-Id: Ifba635a3b473df533e2fefc4d52251e8d20a5582


# 1ba4b288 28-Jul-2016 Roland McGrath <mcgrathr@google.com>

[uapp] [utest] Switch most uapp and utest builds to dynamic linking

Nearly every uapp and utest that can be dynamically linked is now.
The mxr-tls test is omitted because it's broken when dynamically
linked; that will probably be moot after the forthcoming TLS revamp.

A few test helper programs cannot use dynamic linking as written
because they get run with a nonstandard bootstrap message that does
not include the magic required for the dynamic linker's startup.

I didn't touch anything using ulib/ddk because I didn't bother to
figure out how that fits together.

Change-Id: I93b08960d946e23cd4ac89216e6d32789f99405a


# d4eb6720 22-Jul-2016 Roland McGrath <mcgrathr@google.com>

[launchpad] Add launchpad_launch_basic convenience function, use it in devmgr

This function replaces mxio_start_process_etc with the same interface.

Change-Id: Icc2a6910bb6a3f99cf81aca7c0685ae08b0c38e2


# dd5b7c9b 22-Jul-2016 Roland McGrath <mcgrathr@google.com>

[launchpad] New library for process startup and ELF loading

This adds a wholly new library called launchpad. It will
eventually replace all the process startup and ELF loading code
in mxio. For now it's only used by the new "launch" program,
which is a somewhat flexible test harness for manually testing
the launchpad interface. The library does not yet have various
convenience functions for starting a process in standard ways.

Change-Id: I15ea77d83a65151cab8a18382f55dabf88cd5ec0