History log of /fuchsia/zircon/third_party/ulib/musl/arch/x86_64/reloc.h
Revision Date Author Comments
# 5bf4b3bf 08-Aug-2017 George Kulakowski <kulakowski@google.com>

[musl][arch] Remove various unused arch-specific macro definitions

The LDSO_ARCH name is no longer used.

CRTJMP was used on linux to jump to the entry point. We use a
different mechanism to return a function pointer and argument to _start.

Change-Id: Iad96d518f0664a74f9c780d9064439db68a0f3b9


# 11dc3eaa 10-May-2017 Roland McGrath <mcgrathr@google.com>

[ulib][musl][ldso] Move entry point code into .S file

A raw .S file is better than raw assembly in top-level asm() in a .c file.
This also makes the symbol definitions and references in the assembly
visible to an LTO linker.

Change-Id: I6c0bad5a3756be8d48653d1cf65c46189d960cf2


# 5ca47837 10-May-2017 Roland McGrath <mcgrathr@google.com>

[ulib][musl][ldso] Use normal reference to __dls2

The only reason for the asm shenanigans about calling __dls2 was to
ensure that none of the early relocation work in _dl_start can be
reordered so that it might not be safely before entering __dls2.
atomic_signal_fence ensures the same thing.

Change-Id: Ia360237bbf6fbfe5b1f995f1dd71f7d4802ba880


# b612451a 20-Jan-2017 Roland McGrath <mcgrathr@google.com>

[ulib][musl][ldso] Fix x86_64 stack alignment in early entry code

The assembly code for the dynamic linker's startup was failing to
align the stack pointer correctly before calling into C code. Clang
generates code using SSE instructions that are specified to fault if
the stack is not properly aligned. But QEMU does not enforce this
alignment requirement, so the bug only bites on real hardware.

Change-Id: I619039c7e0dd5cf2e1bc341eed3f8842f1bffb05


# 59530928 19-Sep-2016 George Kulakowski <kulakowski@google.com>

[musl][format] Clang format musl

Change-Id: I9d0d2d586a6587dbedda055a3b3664296c7eb89a


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

[musl] [ldso] Make _start symbol hidden

The _start symbol used for the dynamic linker's entry point should not
be exported. Doing so causes trouble for things linked against libc.so.

Change-Id: I95b1c5a187527f3b140013438f157d68082b80b9


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

[ulib] [musl] [ldso] Handle LD_DEBUG environment variable

This rejiggers dynamic linker startup so that the bootstrap message
buffer stays on the dynamic linker's initial stack and can be used
to hold environment strings, but then is popped before jumping to
the user entry point. This reenables the latent LD_PRELOAD support.
Also check the environment variable LD_DEBUG for a nonempty value;
if it's set, print all the load addresses at the end of startup.

Change-Id: Ida6dbcfe006b16a6e61b963a4395e7a990163185


# 1d89ab17 18-Jul-2016 George Kulakowski <kulakowski@google.com>

[musl][clang] Remove the %* escape from inline assembly

Clang's inline assembler doesn't support this escape, and we don't seem
to actually need it.

Change-Id: Ic34777e088eaa48ddde710d1675afdc44c37f1fb


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

[musl] Dynamic linking support

This enables the build of musl's libc.so, which is also the dynamic linker.

Change-Id: I26de0d8cc410667aa346c1138b327777f64bd969


# 489c6e3f 17-Jun-2016 George Kulakowski <kulakowski@google.com>

[musl] clang format musl

Change-Id: I3bc6ab7655410514691cd07f08454f3afd41d9b3


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

[magenta] Initial commit