| Commit message (Expand) | Author | Age | Files | Lines |
| * | move arm-specific translation units out of arch/arm/src, to src/*/arm•••this is possible with the new build system that allows src/*/$(ARCH)/*
files which do not shadow a file in the parent directory, and yields a
more logical organization. eventually it will be possible to remove
arch/*/src from the build system.
| Rich Felker | 2016-01-22 | 1 | -0/+42 |
| * | explicitly assemble all arm asm sources as UAL•••these files are all accepted as legacy arm syntax when producing arm
code, but legacy syntax cannot be used for producing thumb2 with
access to the full ISA. even after switching to UAL, some asm source
files contain instructions which are not valid in thumb mode, so these
will need to be addressed separately.
| Rich Felker | 2015-11-10 | 1 | -0/+1 |
| * | use hidden visibility for call from dlsym to internal __dlsym | Rich Felker | 2015-04-14 | 1 | -0/+1 |
| * | dynamic linker bootstrap overhaul•••this overhaul further reduces the amount of arch-specific code needed
by the dynamic linker and removes a number of assumptions, including:
- that symbolic function references inside libc are bound at link time
via the linker option -Bsymbolic-functions.
- that libc functions used by the dynamic linker do not require
access to data symbols.
- that static/internal function calls and data accesses can be made
without performing any relocations, or that arch-specific startup
code handled any such relocations needed.
removing these assumptions paves the way for allowing libc.so itself
to be built with stack protector (among other things), and is achieved
by a three-stage bootstrap process:
1. relative relocations are processed with a flat function.
2. symbolic relocations are processed with no external calls/data.
3. main program and dependency libs are processed with a
fully-functional libc/ldso.
reduction in arch-specific code is achived through the following:
- crt_arch.h, used for generating crt1.o, now provides the entry point
for the dynamic linker too.
- asm is no longer responsible for skipping the beginning of argv[]
when ldso is invoked as a command.
- the functionality previously provided by __reloc_self for heavily
GOT-dependent RISC archs is now the arch-agnostic stage-1.
- arch-specific relocation type codes are mapped directly as macros
rather than via an inline translation function/switch statement.
| Rich Felker | 2015-04-13 | 1 | -18/+0 |
| * | rename dynamic linker entry point from _start to _dlstart•••the main motivation for this change is to aid in debugging. since the
main program's entry point is also named _start, it was difficult to
set breakpoints or quickly identify which _start execution stopped in.
| Rich Felker | 2014-06-20 | 1 | -2/+2 |
| * | add ldd and main program loading support to dynamic linker | Rich Felker | 2012-05-27 | 1 | -0/+7 |
| * | cleanup dynamic linker start code cruft•••two actual issues: one is that __dynlink no longer wants/needs a GOT
pointer argument, so the code to generate that argument can be
removed. the other issue was that in the i386 code, argc/argv were
being loaded into registers that would be call-clobbered, then copied
to preserved registers, rather than just being loaded into the proper
call-preserved registers to begin with.
this cleanup is in preparation for adding new dynamic linker
functionality (ability to explicitly invoke the dynamic linker to run
a program).
| Rich Felker | 2012-05-27 | 1 | -4/+1 |
| * | dlsym entry point for arm | Rich Felker | 2011-10-01 | 1 | -0/+6 |
| * | dynamic linker entry point for arm•••mildly tested, seems to work
| Rich Felker | 2011-10-01 | 1 | -0/+14 |