array at startup. This is used in m_transtab. However this info is
not yet fed to Vex, so it's still important to zero-out the auxv field
holding cache line size info passed to the client, so as to stop the
client's glibc using dcbz. This will be fixed.
Also get rid of a bunch more ppc32-specific vdso stuff in m_main that
doesn't need to be done. This now means ppc32-linux specifics in
m_main are only marginally intrusive than the x86-linux or amd64-linux
specifics in m_main.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4052
failures for me, and also fixes bug #106293 for me. Let's hope it has
the same effect for others.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4046
remaining ones have no interesting effect, but I left them in.
Also simplify the signature for VG_(get_memory_from_mmap_for_client)().
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4045
as well disable pp_sched_status() -- which produces traces that are less
useful than the main one that has been disabled -- and break the
circular dependence between m_libcassert and m_threadstate.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4036
removes m_transtab's dependence on m_translate (breaking a circular
dependence) and m_debuginfo, hooray.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4035
comments, neatened the debugging output, avoided unexpected side-effects
in functions, tweaked code to make it clearer.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4028
dependence between them. (There's still an indirect one via m_libcmman.)
As a result, I was able to move the Segment type declaration into
pub_core_aspacemgr.h, which is a much better spot. I was also able to
remove a couple of #includes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4025
being used was in resolve_redir(), and due to the way resolve_redir()
is called, the involved test was always failing anyway. So we lose
nothing by removing it except some complexity -- there is no longer a
circularity between Segments and SegInfos.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4019
unsuccessful attempt to remove m_libcassert from the huge cycle which
most of the modules currently live in.
VG_(get_StackTrace2) can now be privatised, but I haven't done so yet.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4018
the unused init_shadow_page() function. As a result, m_aspacemgr no longer
depends on m_libcmman, breaking a circular module dependency, good!
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4015
EPOLL_CTL_DEL invocation.
Also renamed our "struct epoll_event" to "struct vki_epoll_event" as it
should be called.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4014
m_stacks, because it's a nicely distinct and stand-alone piece of
functionality. This happily removes m_aspacemgr's dependence on
m_mallocfree (there was an apparent dependence due to the #include, even if
it didn't manifest itself in practice -- very important!) and m_options (not
so important).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4009
things. These made sense when the arch/OS/platform-specific code was in
one module, but as that code got mixed in with generic code the boundary
between generic and non-generic blurred, and the distinction made less
sense. So let's get rid of them.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4002
As part of this, VG_(resolve_filename)() no longer calls VG_(malloc)()
and so m_libcfile no longer depends on m_mallocfree.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4001
module-local, use the new ML_ prefix instead of VG_. This makes it
trivial to see which names are those exported from public module
interfaces: precisely those using VG_.
/* VG_ is for symbols exported from modules. ML_ (module-local) is
for symbols which are not intended to be visible outside modules,
but which cannot be declared as C 'static's since they need to be
visible across C files within a given module. It is a mistake for
a ML_ name to appear in a pub_core_*.h or pub_tool_*.h file.
Likewise it is a mistake for a VG_ name to appear in a priv_*.h
file.
*/
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4000
used anywhere else, but it does cause gcc to issue a warning because
it doesn't realised that the assembly code has defined the function.
The reason for changing it to static despite the warning is that when
it is declared extern PIE builds break on amd64 because gcc generates
code that does a load from the address of the my_sigreturn symbol to
get address of the function instead of just computing the address of
the symbol. In other words it generates this:
mov -212(%rip), %rax
to get the address of the function instead of this:
lea -212(%rip), %rax
Obviously this breaks things because we store the wrong address as
the signal restorer when installing the signal handler...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3996
and search_all_scopetabs(), ie. search through SegInfos instead of Segments.
This reduces m_debuginfo's dependency on m_aspacemgr.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3994