platform_bionic/libc/arch-x86
Nick Kralevich 9d40326830 arm: rewrite crtbegin* as C files.
Rewrite
 crtbegin.S     -> crtbegin.c
 crtbegin_so.S  -> crtbegin_so.c

This change allows us to generate PIC code without relying
on text relocations.

As a consequence of this rewrite, also rewrite
  __dso_handle.S    -> __dso_handle.c
  __dso_handle_so.S -> __dso_handle_so.c
  atexit.S          -> atexit.c

In crtbegin.c _start, place the __PREINIT_ARRAY__, __INIT_ARRAY__,
__FINI_ARRAY__, and __CTOR_LIST__ variables onto the stack, instead of
passing a pointer to the text section of the binary.

This change appears sorta wonky, as I attempted to preserve,
as much as possible, the structure of the original assembly.
As a result, you have C files including other C files, and other
programming uglyness.

Result: This change reduces the number of files with text-relocations
from 315 to 19 on my Android build.

Before:
  $ scanelf -aR $OUT/system | grep TEXTREL | wc -l
  315

After:
  $ scanelf -aR $OUT/system | grep TEXTREL | wc -l
  19

Change-Id: Ib9f98107c0eeabcb606e1ddc7ed7fc4eba01c9c4
2012-06-01 14:41:27 -07:00
..
bionic arm: rewrite crtbegin* as C files. 2012-06-01 14:41:27 -07:00
include am 09049311: am cfff36df: am a60ff6c5: Merge "libc: Define new symbol visibility macros" 2012-02-13 14:42:48 -08:00
string bionic/x86: Optimization for memcpy 2012-05-08 12:18:25 -07:00
syscalls resolved conflicts for merge of ef987656 to master 2012-04-16 14:26:43 -07:00
syscalls.mk Add faccessat to syscall list 2012-04-13 15:45:42 -07:00