History log of /fuchsia/zircon/system/ulib/runtime/rules.mk
Revision Date Author Comments
# b0ee6dd6 21-Sep-2018 George Kulakowski <kulakowski@google.com>

[build] Make a number of static libraries build with -fvisibility=hidden

ZX-1895 #comment
Test: CQ

Change-Id: Id3252fcb1de5a6f6e1897da86fba92e2be9d0319


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

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 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


# eba99be8 25-May-2017 Mark Seaborn <mseaborn@google.com>

[runtime] Remove mxr_once(), since it is unused

pthread_once() can be used instead, and it's standard.

Change-Id: I0166d5934117e0ba38e63083f1497cd5e5fa831d


# 5e5ef509 24-May-2017 George Kulakowski <kulakowski@google.com>

[ulib][runtime] Remove unneeded sysinfo runtime functions

libc can call the syscall itself.

Change-Id: I98bd863bfca73063ebb1c136cc04212274033565


# 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


# 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


# ffe5a0c1 19-Oct-2016 Roland McGrath <mcgrathr@google.com>

[ulib][runtime][magenta] mx_strstatus -> mx_status_get_string

Rename it to follow the syscall naming style, and put it in the vDSO
rather than in libruntime, which is not exported outside the magenta
build tree.

Change-Id: I956e532f2c57913e3b654591592f7b7c1d489171


# b0173e4e 17-Oct-2016 Brian Swetland <swetland@google.com>

[build] do not export libacpica.a and libruntime.a

Change-Id: I9c66416dc73180a2a8444dc25d76830918d339a0


# d9a11779 24-Aug-2016 George Kulakowski <kulakowski@google.com>

[runtime] Remove deprecated mxr_process code

The new interface (mxr_processargs) is now used everywhere, so this can
be removed.

Change-Id: I26507ffc8f55f43f4c5de2c17dc74c9ef612dcdf


# ffd06b77 22-Aug-2016 George Kulakowski <kulakowski@google.com>

[tls] Reintroduce ELF TLS into musl

Change-Id: I87a7458387aa65b9d1534e51ad5f3abed8587af6


# 19043307 17-Aug-2016 George Kulakowski <kulakowski@google.com>

[runtime][ddk] Move completion_t to ddk

Change-Id: Id9516aefd4237d28144392979758ef284b92b44e


# 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


# aadc4bb0 10-Aug-2016 Roland McGrath <mcgrathr@google.com>

[ulib] [runtime] Add mxr_once_t

This is the minimal runtime layer's version of C11's once_flag
or POSIX's pthread_once_t.

Change-Id: I80a49e0f4f09a60474a315a797df8d1e3c4b14b5


# 65be1de5 02-Aug-2016 Roland McGrath <mcgrathr@google.com>

[ulib] [runtime] New <runtime/processargs.h> API

This is a new API for handling the processargs bootstrap message
that is clean and reentrant. Eventually this will supplant the
old <runtime/process.h> API. So far only the dynamic linker's
startup code uses it.

Change-Id: Iaf1f6fb5e3a4c91ad9308802306febba9f435123


# f9784c03 01-Aug-2016 Roland McGrath <mcgrathr@google.com>

[ulib] [runtime] Add mxr_message_size helper

This prettifies the standard use of mx_message_read
for probing message size.

Change-Id: I2246accc7bec59cfd27a4bd06843029a5ed1de02


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

[runtime] Don't build libruntime.so, mark functions hidden

No longer build libruntime as a shared library. Instead, make the
static library define all its symbols with hidden visibility so that
it can be linked statically into a shared library without exporting
any libruntime symbols.

Change-Id: Iaca549cb69220ee5f62e4f95a4d4b9c3b80199b4


# a732ad03 12-Jul-2016 Roland McGrath <mcgrathr@google.com>

[magenta][runtime] Make libmagenta and libruntime freestanding

libruntime should have no dependencies on anything but libmagenta.
The -ffreestanding switch tells the compiler not to generate calls
to standard libc functions (like memcpy or memset). The source code
must avoid explicit dependencies on libc functions too.

Change-Id: I83e259e37084a093ed72dc0ee0f539350f0a48f3


# 08aea769 12-Jul-2016 George Kulakowski <kulakowski@google.com>

[ulib][runtime] Introduce mxr_completion_t for waiting and signalling

Change-Id: I283ed515043078737b13f95f83f37a7904df7353


# ab1c8134 08-Jul-2016 Brian Swetland <swetland@google.com>

[build] build shared libraries and separate crt1.o

- shared libraries are a work in progress, this change provides
the core build machinery to support them
- user library modules that declare a MODULE_SONAME cause a
shared library to be built
- user apps and libs may use MODULE_LIBS to depend on shared
libs and MODULE_STATIC_LIBS to depend on static libs
- MODULE_DEPS is currently converted to MODULE_STATIC_LIBS
- libc is arranged to build a separate shared version but
that is disabled at the moment due to build error
- all of userspace is being build -fPIC for the moment
- libruntime and libmagenta are configured to generate shared
libraries
- make the x86 -fno-pic only apply to KERNEL_COMPILEFLAGS

Change-Id: Iccebe078ad18069a97173228d1476a5e95a2b879


# ec1b9a8c 22-Jun-2016 Brian Swetland <swetland@google.com>

[build] generate build-*/sysroot/{include,lib,...}

User libraries marked for export with MODULE_EXPORT := name
are packaged up under sysroot/lib/lib<name>.a and their public
headers are packaged under sysroot/include/...

libc is a special case as its crt*.o is separated from the .a
file to be standalone (so it may be linked first) and its headers
are installed under sysroot/include/...

The SYSROOT_MEGA_LIBC option (enabled for now) combines the listed
libraries into one hugenormous libc.a, which is a gross violation
of layering and symbol visibility, but simplifies the link arguments
for the moment. Once we have shared libraries we can abandon this
horror.

Change-Id: I4d1c9cf379222cfafcaf3025c7243c3fbd1b0fd1


# 2684f7a9 14-Jun-2016 Ankur Mittal <anmittal@google.com>

[ulib] Add system calls for getting processor count

Added system call to get processor count.

Change-Id: I0061d139e252a12876a0e7845a0a143c8c403d75


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

[magenta] Initial commit