Finalize arg, env, aux migration (1/3) (CXX) (BB)
authorKevin Klues <klueska@cs.berkeley.edu>
Mon, 13 Jul 2015 06:23:20 +0000 (23:23 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 14 Jul 2015 14:33:16 +0000 (10:33 -0400)
commit69741b68f195b5c2cf366191981b336a8652df72
treeeae3cc7958a6d82f1d07757d2a92fd2d4a0d3957
parent9cef7582fa555f4a8ecb38147c4bab2535910007
Finalize arg, env, aux migration (1/3) (CXX) (BB)

The next 3 commits break up the last steps of migrating our arg, env,
and aux vectors to be passed on the stack instead of in procinfo.  This
now makes us compatible with the SYSV ABI, and thus much less reliant on
sysdep customizations in glibc. (of which we probably missed a bunch we
didn't even realize before).

This commit focuses on the final changes to the kernel internals that
allow us to properly pass this information on the stack. The
populate_stack() function in elf.c now properly fills out the chunk of
the stack responsible for passing this information instead of populating
procinfo. We also needed to fix some stack alignment stuff in
proc_ctx_init() now that we are relying on the stack to contain specific
content. The comments in process64.c outline what this change was.
kern/arch/x86/process64.c
kern/src/elf.c
kern/src/umem.c