History log of /fuchsia/zircon/system/utest/ctor/rules.mk
Revision Date Author Comments
# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 18003e41 01-Sep-2017 Roland McGrath <mcgrathr@google.com>

[mxcpp] Add __cxa_thread_atexit

This necessary to support thread_local variables with destructors.

Change-Id: Ic3651fe631e16443b2e89ccec986770b5a4ba991


# 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


# 0fcf5d63 15-Feb-2017 Roland McGrath <mcgrathr@google.com>

[build][ulib][musl] Fix build for C++ static destructors

Having libc export __dso_handle is multiple kinds of wrong.
The status quo ante caused linking a DSO that uses a C++
static destructor to fail with obscure errors.

Change-Id: I37c2a1913719246a741996c40c4c189efe3b3681


# 58b73875 02-Dec-2016 Roland McGrath <mcgrathr@google.com>

Revert "[build][ulib][musl] Fix build for C++ static destructors"

This reverts commit 37db1257d7407d1c5ed6c5dff7b94b931258d6b9.

Reason for revert:
The Fuchsia Clang toolchain fails to include an equivalent to
GCC's crtbegin.o, which is where __dso_handle ought to be defined.
We'll re-land this change once the toolchain is fixed.

Change-Id: I6f6319188dfc9ba46e666e653adc0b501c443f2e


# 37db1257 02-Dec-2016 Roland McGrath <mcgrathr@google.com>

[build][ulib][musl] Fix build for C++ static destructors

Having libc export __dso_handle is multiple kinds of wrong.
The status quo ante caused linking a DSO that uses a C++
static destructor to fail with obscure errors.

Change-Id: I801b948ba620d30f5eea908d0f43b51bf9d2e881


# 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


# 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


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

[build] make dynamic linking the default

Now userapp/usertest modules are dynamic, and to build a static
binary userapp-static or usertest-static are used.

Change-Id: Ifd16f40a2bf23202ec17f3142f896abdec1c3271


# 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


# 3046c71b 13-Jul-2016 James Robinson <jamesr@google.com>

Put tests in /boot/test and use 'usertest' module type

This puts all tests in /boot/test instead of putting them in
/boot/bin with a '-test' suffix to clean up the 'bin' directory.
Anything in this directory is run by 'runtests'. This doesn't
add /boot/test to mxsh's PATH, but that will happen soon.

Change-Id: Ib135d923a5216dea56f51fb0c1aa1bcf35acf458


# 26cb269f 06-Jul-2016 George Kulakowski <kulakowski@google.com>

[ulib][unittest] Move unittest into its own library

Change-Id: I1586278e3bbb6ceacd26a1342985922dc8861cf7


# ff86a242 21-Jun-2016 George Kulakowski <kulakowski@google.com>

[build][userspace] Support .init_array for userspace with gcc

In particular, with this change, C++ constructors are running now, and
static C variables are initialized.

Change-Id: If0252773faae705af78902f782aaa200d0c5f85e