for the various core modules and use a single global setting so that
the flags are actually consistent everywhere.
Also get rid of most the USE_PIE blocks in the makefiles by having
configure pass expand a variable in the new global AM_CFLAGS to one
of "-fpie" or "" depending on whether PIE is in use.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3760
- one declarations from core.h removed, one moved to within m_syscalls.
- all the x86 LDT stuff made local to m_syscalls. x86-linux/ldt.c removed
as a result. x86/state.c slimmed down, too. x86/x86_private.h removed
too.
- all the AMD64 LDT stuff was deleted, since it was all commented out. It
can be added back in later in the appropriate places if necessary.
Thus amd64-linux/ldt.c and amd64/amd64_private.h were removed.
- other minor naming changes
I hope I didn't break AMD64 compilation.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3726
required moving a lot of stuff around. I deleted
VG_(set_return_from_syscall_shadow)() and VG_(get_exit_status_shadow)(),
which screwed up the modularity and weren't being used and can be
simulated in other ways with a bit of care.
What are the chances that I've added and moved all the files correctly
in this commit, and not broken the amd64 port?
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3636
- Got rid of SET_THREAD_REG and some of the related macros, hallelujah.
Replaced SET_SYSCALL_RETVAL with VGP_TRACK_SYSCALL_RETVAL, which avoids
the redundant resetting of the syscall's return value. The other
remaining two related macros, SET_CLREQ_RETVAL and SET_CLCALL_RETVAL, were
able to be moved to vg_scheduler.c rather than being global, hoorah.
- Passed the required syscall args to VG_(do_sys_sigaltstack)(), rather than
grabbing them from within, removing its reliance on SYSCALL_ARG[12].
It also makes the VG_(do_sys_sig*)() functions more consistent.
- As a result of these changes, was able to remove the SYSCALL_NUM,
SYSCALL_RET and SYSCALL_ARG[123456] macros, yay.
- Replaced the implementations of VG_(set_return_from_syscall_shadow)() and
VG_(get_exit_status_shadow)() with shorter ones that avoid using arch-state
offsets.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3630
so that it is copied into the client space. This avoid warnings from memcheck
because it doesn't think that code inside valgrind is valid.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3591
make their role clearer and their behaviour more consistent with the fields
describing the client's stack. Also made the code in x86-linux/syscalls.c
and amd64-linux/syscalls.c more word-size-independent, which is not strictly
necessary but makes the code similarities between the two files more
obvious.
One consequence of this is that Valgrind's stack on AMD64 is now 16384 * 8
bytes, rather than 16384 * 4 bytes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3520
- removed "stack_base" which wasn't used in any meaningful way
- added "client_" prefix to make it clear they concern the client's stack
- renamed "stack_size" as "client_stack_szB" to make the units clear
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3516
amd64 version is broken again. Writing code with undocumented
assumptions should be a firable offense. At the very least.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3402
in registers. Replace it (for amd64) with something more disciplined:
call_on_new_stack_0_0 and call_on_new_stack_0_1.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3401
because it was always being set to VG_MIN_ALLOC_SZB, and so was just one
more thing to get wrong, as well as exposing VG_MIN_ALLOC_SZB to more places
than necessary.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3340