Finalize arg, env, aux migration (2/3) (CXX) (BB)
authorKevin Klues <klueska@cs.berkeley.edu>
Mon, 13 Jul 2015 06:31:12 +0000 (23:31 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 14 Jul 2015 14:33:16 +0000 (10:33 -0400)
commitc7f31ea8662e0409adeccc87e1aff360f133816b
treecb14b58a177fc84649e1def3edbac12d094ca09a
parent69741b68f195b5c2cf366191981b336a8652df72
Finalize arg, env, aux migration (2/3) (CXX) (BB)

In this commit I remove a few sysdep files that we no longer need to
specialize anymore. However, because Akaros needs to have the ability to
reenter the _start function mutliple times, it is impossible to do away
with all sysdeps on these low level interfaces.

The true system dependent stuff has now been isolated in a file called
init.c in sysdeps/akaros (this name is required in order to get it to
link in with crt1.o).  It now introduces a new function called
__libc_vcore_entry(), which handles all the code necessary to deal with
our reentrant _start() function.  Our system dependant _start() function
simply calls out to __libc_vcore_entry() and then jumps to the
_real_start(), as defined by the current architecture (currently only
x86_64).

By becoming compliant with the SYSV ABI all of the code dealing with
unpacking our args, env, and auxv data from procinfo is now unnecessary.
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Makefile
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/dl-machine.h [deleted file]
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/dl-sysdep.c [deleted file]
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/init.c [new file with mode: 0644]
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/start.c [deleted file]
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/x86_64/start.S [new file with mode: 0644]