mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-06 03:23:58 +00:00
This commit implements in python a set of GDB commands corresponding to the
Valgrind gdbserver monitor commands.
Basically, the idea is that one GDB command is defined for each valgrind
gdbserver subcommand and will generate and send a monitor command to valgrind.
The python code is auto-loaded by GDB as soon as GDB observes that the valgrind
preload core shared lib is loaded (e.g. vgpreload_core-amd64-linux.so).
This automatic loading is done thanks to the .debug_gdb_scripts section
added in vg_preloaded.c file.
Sadly, the auto-load only happens once valgrind has started to execute the code
of ld that loads this vg_preload file.
I have tried 2 approaches to have the python code auto-loaded when attaching at
startup to valgrind:
* have valgrind gdbserver reporting first to GDB that the executable file is
the tool executable (with a .debug_gdb_scripts section) and then reporting
the real (guest) executable file.
The drawback of this approach is that it triggers a warning/question in GDB
according to the GDB setting 'set exec-file-mismatch'.
* have valgrind gdbserver pretending to be multiprocess enabled, and report
a fake process using the tool executable with a .debug_gdb_scripts section.
The drawback of this is that this always creates a second inferior in GDB,
which will be confusing.
Possibly, we might complete the below message :
==2984378== (action at startup) vgdb me ...
==2984378==
==2984378== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==2984378== /path/to/gdb /home/philippe/valgrind/littleprogs/some_mem
==2984378== and then give GDB the following command
==2984378== target remote | /home/philippe/valgrind/git/improve/Inst/libexec/valgrind/../../bin/vgdb --pid=2984378
==2984378== --pid is optional if only one valgrind process is running
with:
==2984378== GDB valgrind python specific commands will be auto-loaded when execution begins.
==2984378== Alternatively, you might load it before with the GDB command:
==2984378== source /abs/path/to/valgrind/install/libexec/valgrind/valgrind-monitor.py
The following GDB setting traces the monitor commands sent by a GDB valgrind
command to the valgrind gdbserver:
set debug valgrind-execute-monitor on
How to use the new GDB valgrind commands?
-----------------------------------------
The usage of the GDB front end commands is compatible with the
monitor command as accepted today by Valgrind.
For example, the memcheck monitor command "xb' has the following usage:
xb <addr> [<len>]
With some piece of code:
'char some_mem [5];'
xb can be used the following way:
(gdb) print &some_mem
(gdb) $2 = (char (*)[5]) 0x1ffefffe8b
(gdb) monitor xb 0x1ffefffe8b 5
ff ff ff ff ff
0x4A43040: 0x00 0x00 0x00 0x00 0x00
(gdb)
The same action can be done with the new GDB 'memcheck xb' command:
(gdb) memcheck xb 0x1ffefffe8b 5
ff ff ff ff ff
0x1FFEFFFE8B: 0x00 0x00 0x00 0x00 0x00
(gdb)
At this point, you might ask yourself: "what is the interest ?".
Using GDB valgrind commands provides several advantages compared to
the valgrind gdbserver monitor commands.
Evaluation of arguments by GDB:
-------------------------------
For relevant arguments, the GDB command will evaluate its arguments using
the usual GDB evaluation logic, for example, instead of printing/copying
the address and size of 'some_mem', the following will work:
(gdb) memcheck xb &some_mem sizeof(some_mem)
ff ff ff ff ff
0x1FFEFFFE8B: 0x00 0x00 0x00 0x00 0x00
(gdb)
or:
(gdb) p some_mem
$4 = "\000\000\000\000"
(gdb) memcheck xb &$4
ff ff ff ff ff
0x1FFEFFFE8B: 0x00 0x00 0x00 0x00 0x00
(gdb)
This is both easier to use interactively and easier to use in GDB scripts,
as you can directly use variable names in the GDB valgrind commands.
Command completion by GDB:
--------------------------
The usual command completion in GDB will work for the GDB valgrind commands.
For example, typing TAB after the letter 'l' in:
(gdb) valgrind v.info l
will show the 2 "valgrind v.info" subcommands:
last_error location
(gdb) valgrind v.info l
Note that as usual, GDB will recognise a command as soon as it is unambiguous.
Usual help and apropos support by GDB:
--------------------------------------
The Valgrind gdbserver provides an online help using:
(gdb) monitor help
However, this gives the help for all monitor commands, and is not searchable.
GDB provides a better help and documentation search.
For example, the following commands can be used to get various help
or search the GDB Valgrind command online documentation:
help valgrind
help memcheck
help helgrind
help callgrind
help massif
to get help about the general valgrind commands or the tool specific commands.
Examples of searching the online documentation:
apropos valgrind.*location
apropos -v validity
apropos -v leak
User can define aliases for the valgrind commands:
--------------------------------------------------
The following aliases are predefined:
v and vg for valgrind
mc for memcheck
hg for helgrind
cg for callgrind
ms for massif
So, the following will be equivalent:
(gdb) valgrind v.info location &some_mem
(gdb) v v.i lo &some_mem
(gdb) alias Vl = valgrind v.info location
(gdb) Vl &some_mem
Thanks to Hassan El Karouni for the help in factorising the python
code common to all valgrind python commands using a decorator.
807 lines
25 KiB
Makefile
807 lines
25 KiB
Makefile
|
|
# Be very careful when renaming any files, targets, whatever, in this
|
|
# Makefile. Various parts of the system rely on these names having
|
|
# particular forms.
|
|
|
|
include $(top_srcdir)/Makefile.all.am
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Basics, flags
|
|
#----------------------------------------------------------------------------
|
|
|
|
AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ += \
|
|
-I$(top_srcdir)/coregrind \
|
|
-DVG_LIBDIR="\"$(pkglibexecdir)"\" \
|
|
-DVG_PLATFORM="\"@VGCONF_ARCH_PRI@-@VGCONF_OS@\""
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ += \
|
|
-I$(top_srcdir)/coregrind \
|
|
-DVG_LIBDIR="\"$(pkglibexecdir)"\" \
|
|
-DVG_PLATFORM="\"@VGCONF_ARCH_SEC@-@VGCONF_OS@\""
|
|
endif
|
|
|
|
|
|
EXTRA_DIST = \
|
|
m_debuginfo/README.txt \
|
|
m_gdbserver/README_DEVELOPERS \
|
|
docs/vgdb-manpage.xml
|
|
|
|
#----------------------------------------------------------------------------
|
|
# The launcher. Built for the primary target only.
|
|
#----------------------------------------------------------------------------
|
|
|
|
bin_PROGRAMS = \
|
|
valgrind \
|
|
vgdb
|
|
|
|
if VGCONF_OS_IS_LINUX
|
|
valgrind_SOURCES = \
|
|
launcher-linux.c \
|
|
m_debuglog.c
|
|
endif
|
|
if VGCONF_OS_IS_DARWIN
|
|
valgrind_SOURCES = \
|
|
launcher-darwin.c \
|
|
m_debuglog.c
|
|
endif
|
|
if VGCONF_OS_IS_SOLARIS
|
|
valgrind_SOURCES = \
|
|
launcher-linux.c \
|
|
m_debuglog.c
|
|
endif
|
|
if VGCONF_OS_IS_FREEBSD
|
|
valgrind_SOURCES = \
|
|
launcher-freebsd.c \
|
|
m_debuglog.c
|
|
endif
|
|
|
|
# for valgrind coregrind building, use the LTO versions, in case they differ from non lto versions
|
|
AR = ${LTO_AR}
|
|
RANLIB = ${LTO_RANLIB}
|
|
|
|
valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI)
|
|
valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS)
|
|
valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI)
|
|
valgrind_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@
|
|
# If there is no secondary platform, and the platforms include x86-darwin,
|
|
# then the primary platform must be x86-darwin. Hence:
|
|
if ! VGCONF_HAVE_PLATFORM_SEC
|
|
if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
|
|
valgrind_LDFLAGS += -Wl,-read_only_relocs -Wl,suppress
|
|
endif
|
|
endif
|
|
# On Android we must ask for non-executable stack, not sure why.
|
|
if VGCONF_PLATVARIANT_IS_ANDROID
|
|
valgrind_CFLAGS += -static
|
|
valgrind_LDFLAGS += -Wl,-z,noexecstack
|
|
endif
|
|
if VGCONF_OS_IS_SOLARIS
|
|
valgrind_LDFLAGS += -Wl,-M,/usr/lib/ld/map.noexstk
|
|
endif
|
|
|
|
|
|
vgdb_SOURCES = vgdb.c
|
|
if VGCONF_OS_IS_LINUX
|
|
if VGCONF_PLATVARIANT_IS_ANDROID
|
|
vgdb_SOURCES += vgdb-invoker-none.c
|
|
else
|
|
vgdb_SOURCES += vgdb-invoker-ptrace.c
|
|
endif
|
|
endif
|
|
if VGCONF_OS_IS_DARWIN
|
|
# Some darwin specific stuff is needed as ptrace is not
|
|
# fully supported on MacOS. Till we find someone courageous
|
|
# having access to Darwin, 'none' implementation is used.
|
|
vgdb_SOURCES += vgdb-invoker-none.c
|
|
endif
|
|
if VGCONF_OS_IS_SOLARIS
|
|
vgdb_SOURCES += vgdb-invoker-solaris.c
|
|
endif
|
|
if VGCONF_OS_IS_FREEBSD
|
|
vgdb_SOURCES += vgdb-invoker-freebsd.c
|
|
endif
|
|
|
|
vgdb_CPPFLAGS = $(AM_CPPFLAGS_PRI)
|
|
vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS)
|
|
vgdb_CCASFLAGS = $(AM_CCASFLAGS_PRI)
|
|
vgdb_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@
|
|
if VGCONF_PLATVARIANT_IS_ANDROID
|
|
vgdb_CFLAGS += -static
|
|
endif
|
|
if VGCONF_OS_IS_SOLARIS
|
|
vgdb_LDADD = -lsocket
|
|
else
|
|
if !VGCONF_PLATVARIANT_IS_ANDROID
|
|
vgdb_LDADD = -lpthread
|
|
endif
|
|
endif
|
|
# If there is no secondary platform, and the platforms include x86-darwin,
|
|
# then the primary platform must be x86-darwin. Hence:
|
|
if ! VGCONF_HAVE_PLATFORM_SEC
|
|
if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
|
|
vgdb_LDFLAGS += -Wl,-read_only_relocs -Wl,suppress
|
|
endif
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Darwin Mach stuff
|
|
#----------------------------------------------------------------------------
|
|
|
|
# Mach RPC interface definitions
|
|
# Here are some more .defs files that are not used, but could be in the
|
|
# future:
|
|
# clock.defs \
|
|
# clock_priv.defs \
|
|
# clock_reply.defs \
|
|
# exc.defs \
|
|
# host_priv.defs \
|
|
# host_security.defs \
|
|
# ledger.defs \
|
|
# lock_set.defs \
|
|
# mach_host.defs \
|
|
# mach_port.defs \
|
|
# notify.defs \
|
|
# processor.defs \
|
|
# processor_set.defs \
|
|
#
|
|
mach_user_srcs =
|
|
mach_server_srcs =
|
|
mach_hdrs =
|
|
mach_defs =
|
|
if VGCONF_OS_IS_DARWIN
|
|
mach_user_srcs += \
|
|
m_mach/mach_vmUser.c \
|
|
m_mach/taskUser.c \
|
|
m_mach/thread_actUser.c \
|
|
m_mach/vm_mapUser.c
|
|
mach_server_srcs += \
|
|
m_mach/mach_vmServer.c \
|
|
m_mach/taskServer.c \
|
|
m_mach/thread_actServer.c \
|
|
m_mach/vm_mapServer.c
|
|
mach_hdrs += \
|
|
m_mach/mach_vm.h \
|
|
m_mach/task.h \
|
|
m_mach/thread_act.h \
|
|
m_mach/vm_map.h
|
|
mach_defs += \
|
|
@XCODE_DIR@/mach/mach_vm.defs \
|
|
@XCODE_DIR@/mach/task.defs \
|
|
@XCODE_DIR@/mach/thread_act.defs \
|
|
@XCODE_DIR@/mach/vm_map.defs
|
|
endif
|
|
|
|
# Be careful w.r.t. parallel builds. See section 27.9 of the automake info
|
|
# page, "Handling Tools that Produce many Outputs".
|
|
$(abs_builddir)/m_mach:
|
|
mkdir -p $@
|
|
$(mach_user_srcs): $(mach_defs) $(abs_builddir)/m_mach
|
|
(cd m_mach && mig $(mach_defs))
|
|
$(mach_hdrs): $(mach_defs) $(mach_user_srcs) $(abs_builddir)/m_mach
|
|
(cd m_mach && mig $(mach_defs))
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Headers
|
|
#----------------------------------------------------------------------------
|
|
|
|
noinst_HEADERS = \
|
|
pub_core_addrinfo.h \
|
|
pub_core_aspacehl.h \
|
|
pub_core_aspacemgr.h \
|
|
pub_core_basics.h \
|
|
pub_core_basics_asm.h \
|
|
pub_core_clientstate.h \
|
|
pub_core_clreq.h \
|
|
pub_core_commandline.h \
|
|
pub_core_coredump.h \
|
|
pub_core_cpuid.h \
|
|
pub_core_deduppoolalloc.h \
|
|
pub_core_debuginfo.h \
|
|
pub_core_debuglog.h \
|
|
pub_core_demangle.h \
|
|
pub_core_dispatch.h \
|
|
pub_core_dispatch_asm.h \
|
|
pub_core_errormgr.h \
|
|
pub_core_execontext.h \
|
|
pub_core_gdbserver.h \
|
|
pub_core_guest.h \
|
|
pub_core_hashtable.h \
|
|
pub_core_initimg.h \
|
|
pub_core_inner.h \
|
|
pub_core_libcbase.h \
|
|
pub_core_libcassert.h \
|
|
pub_core_libcfile.h \
|
|
pub_core_libcprint.h \
|
|
pub_core_libcproc.h \
|
|
pub_core_libcsetjmp.h \
|
|
pub_core_libcsignal.h \
|
|
pub_core_mach.h \
|
|
pub_core_machine.h \
|
|
pub_core_mallocfree.h \
|
|
pub_core_options.h \
|
|
pub_core_oset.h \
|
|
pub_core_pathscan.h \
|
|
pub_core_poolalloc.h \
|
|
pub_core_rangemap.h \
|
|
pub_core_redir.h \
|
|
pub_core_replacemalloc.h\
|
|
pub_core_sbprofile.h \
|
|
pub_core_scheduler.h \
|
|
pub_core_seqmatch.h \
|
|
pub_core_sigframe.h \
|
|
pub_core_signals.h \
|
|
pub_core_sparsewa.h \
|
|
pub_core_stacks.h \
|
|
pub_core_stacktrace.h \
|
|
pub_core_syscall.h \
|
|
pub_core_syswrap.h \
|
|
pub_core_threadstate.h \
|
|
pub_core_tooliface.h \
|
|
pub_core_trampoline.h \
|
|
pub_core_translate.h \
|
|
pub_core_transtab.h \
|
|
pub_core_transtab_asm.h \
|
|
pub_core_ume.h \
|
|
pub_core_vki.h \
|
|
pub_core_vkiscnums.h \
|
|
pub_core_vkiscnums_asm.h\
|
|
pub_core_wordfm.h \
|
|
pub_core_xarray.h \
|
|
pub_core_xtree.h \
|
|
pub_core_xtmemory.h \
|
|
m_aspacemgr/priv_aspacemgr.h \
|
|
m_debuginfo/priv_misc.h \
|
|
m_debuginfo/priv_storage.h \
|
|
m_debuginfo/priv_tytypes.h \
|
|
m_debuginfo/priv_readpdb.h \
|
|
m_debuginfo/priv_d3basics.h \
|
|
m_debuginfo/priv_readdwarf.h \
|
|
m_debuginfo/priv_readdwarf3.h \
|
|
m_debuginfo/priv_readelf.h \
|
|
m_debuginfo/priv_readexidx.h \
|
|
m_debuginfo/priv_readmacho.h \
|
|
m_debuginfo/priv_image.h \
|
|
m_debuginfo/lzoconf.h \
|
|
m_debuginfo/lzodefs.h \
|
|
m_debuginfo/minilzo.h \
|
|
m_demangle/ansidecl.h \
|
|
m_demangle/cp-demangle.h \
|
|
m_demangle/dyn-string.h \
|
|
m_demangle/demangle.h \
|
|
m_demangle/safe-ctype.h \
|
|
m_demangle/vg_libciface.h \
|
|
m_gdbserver/regcache.h \
|
|
m_gdbserver/regdef.h \
|
|
m_gdbserver/server.h \
|
|
m_gdbserver/target.h \
|
|
m_gdbserver/valgrind_low.h \
|
|
m_gdbserver/gdb/signals.h \
|
|
m_scheduler/priv_sema.h \
|
|
m_scheduler/priv_sched-lock.h \
|
|
m_scheduler/priv_sched-lock-impl.h \
|
|
m_sigframe/priv_sigframe.h \
|
|
m_syswrap/priv_types_n_macros.h \
|
|
m_syswrap/priv_syswrap-generic.h \
|
|
m_syswrap/priv_syswrap-linux.h \
|
|
m_syswrap/priv_syswrap-linux-variants.h \
|
|
m_syswrap/priv_syswrap-freebsd.h \
|
|
m_syswrap/priv_syswrap-darwin.h \
|
|
m_syswrap/priv_syswrap-solaris.h \
|
|
m_syswrap/priv_syswrap-main.h \
|
|
m_syswrap/priv_syswrap-xen.h \
|
|
m_ume/priv_ume.h \
|
|
vgdb.h
|
|
|
|
#----------------------------------------------------------------------------
|
|
# libcoregrind-<platform>.a
|
|
#----------------------------------------------------------------------------
|
|
|
|
BUILT_SOURCES = $(mach_user_srcs)
|
|
CLEANFILES = $(mach_user_srcs) $(mach_server_srcs) $(mach_hdrs)
|
|
|
|
pkglib_LIBRARIES = libcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
pkglib_LIBRARIES += libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
|
|
endif
|
|
|
|
COREGRIND_SOURCES_COMMON = \
|
|
m_addrinfo.c \
|
|
m_cache.c \
|
|
m_commandline.c \
|
|
m_compiler.c \
|
|
m_clientstate.c \
|
|
m_cpuid.S \
|
|
m_deduppoolalloc.c \
|
|
m_debuglog.c \
|
|
m_errormgr.c \
|
|
m_execontext.c \
|
|
m_hashtable.c \
|
|
m_libcbase.c \
|
|
m_libcassert.c \
|
|
m_libcfile.c \
|
|
m_libcprint.c \
|
|
m_libcproc.c \
|
|
m_libcsignal.c \
|
|
m_machine.c \
|
|
m_mallocfree.c \
|
|
m_options.c \
|
|
m_oset.c \
|
|
m_pathscan.c \
|
|
m_poolalloc.c \
|
|
m_rangemap.c \
|
|
m_redir.c \
|
|
m_sbprofile.c \
|
|
m_seqmatch.c \
|
|
m_signals.c \
|
|
m_sparsewa.c \
|
|
m_stacks.c \
|
|
m_stacktrace.c \
|
|
m_syscall.c \
|
|
m_threadstate.c \
|
|
m_tooliface.c \
|
|
m_trampoline.S \
|
|
m_translate.c \
|
|
m_transtab.c \
|
|
m_vki.c \
|
|
m_vkiscnums.c \
|
|
m_wordfm.c \
|
|
m_xarray.c \
|
|
m_xtree.c \
|
|
m_xtmemory.c \
|
|
m_aspacehl.c \
|
|
m_aspacemgr/aspacemgr-common.c \
|
|
m_aspacemgr/aspacemgr-linux.c \
|
|
m_aspacemgr/aspacemgr-segnames.c \
|
|
m_coredump/coredump-elf.c \
|
|
m_coredump/coredump-macho.c \
|
|
m_coredump/coredump-solaris.c \
|
|
m_debuginfo/misc.c \
|
|
m_debuginfo/d3basics.c \
|
|
m_debuginfo/debuginfo.c \
|
|
m_debuginfo/image.c \
|
|
m_debuginfo/minilzo-inl.c \
|
|
m_debuginfo/readdwarf.c \
|
|
m_debuginfo/readdwarf3.c \
|
|
m_debuginfo/readelf.c \
|
|
m_debuginfo/readexidx.c \
|
|
m_debuginfo/readmacho.c \
|
|
m_debuginfo/readpdb.c \
|
|
m_debuginfo/storage.c \
|
|
m_debuginfo/tinfl.c \
|
|
m_debuginfo/tytypes.c \
|
|
m_demangle/cp-demangle.c \
|
|
m_demangle/cplus-dem.c \
|
|
m_demangle/demangle.c \
|
|
m_demangle/dyn-string.c \
|
|
m_demangle/d-demangle.c \
|
|
m_demangle/rust-demangle.c \
|
|
m_demangle/safe-ctype.c \
|
|
m_dispatch/dispatch-x86-linux.S \
|
|
m_dispatch/dispatch-amd64-linux.S \
|
|
m_dispatch/dispatch-ppc32-linux.S \
|
|
m_dispatch/dispatch-ppc64be-linux.S \
|
|
m_dispatch/dispatch-ppc64le-linux.S \
|
|
m_dispatch/dispatch-arm-linux.S \
|
|
m_dispatch/dispatch-arm64-linux.S \
|
|
m_dispatch/dispatch-s390x-linux.S \
|
|
m_dispatch/dispatch-mips32-linux.S \
|
|
m_dispatch/dispatch-mips64-linux.S \
|
|
m_dispatch/dispatch-nanomips-linux.S \
|
|
m_dispatch/dispatch-x86-freebsd.S \
|
|
m_dispatch/dispatch-amd64-freebsd.S \
|
|
m_dispatch/dispatch-x86-darwin.S \
|
|
m_dispatch/dispatch-amd64-darwin.S \
|
|
m_dispatch/dispatch-x86-solaris.S \
|
|
m_dispatch/dispatch-amd64-solaris.S \
|
|
m_gdbserver/inferiors.c \
|
|
m_gdbserver/m_gdbserver.c \
|
|
m_gdbserver/regcache.c \
|
|
m_gdbserver/remote-utils.c \
|
|
m_gdbserver/server.c \
|
|
m_gdbserver/signals.c \
|
|
m_gdbserver/target.c \
|
|
m_gdbserver/utils.c \
|
|
m_gdbserver/valgrind-low-x86.c \
|
|
m_gdbserver/valgrind-low-amd64.c \
|
|
m_gdbserver/valgrind-low-arm.c \
|
|
m_gdbserver/valgrind-low-arm64.c \
|
|
m_gdbserver/valgrind-low-ppc32.c \
|
|
m_gdbserver/valgrind-low-ppc64.c \
|
|
m_gdbserver/valgrind-low-s390x.c \
|
|
m_gdbserver/valgrind-low-mips32.c \
|
|
m_gdbserver/valgrind-low-mips64.c \
|
|
m_gdbserver/valgrind-low-nanomips.c \
|
|
m_gdbserver/version.c \
|
|
m_initimg/initimg-linux.c \
|
|
m_initimg/initimg-freebsd.c \
|
|
m_initimg/initimg-darwin.c \
|
|
m_initimg/initimg-solaris.c \
|
|
m_mach/mach_basics.c \
|
|
m_mach/mach_msg.c \
|
|
m_mach/mach_traps-x86-darwin.S \
|
|
m_mach/mach_traps-amd64-darwin.S \
|
|
m_replacemalloc/replacemalloc_core.c \
|
|
m_scheduler/sched-lock.c \
|
|
m_scheduler/sched-lock-generic.c \
|
|
m_scheduler/scheduler.c \
|
|
m_scheduler/sema.c \
|
|
m_sigframe/sigframe-common.c \
|
|
m_sigframe/sigframe-x86-linux.c \
|
|
m_sigframe/sigframe-amd64-linux.c \
|
|
m_sigframe/sigframe-x86-freebsd.c \
|
|
m_sigframe/sigframe-amd64-freebsd.c \
|
|
m_sigframe/sigframe-ppc32-linux.c \
|
|
m_sigframe/sigframe-ppc64-linux.c \
|
|
m_sigframe/sigframe-arm-linux.c \
|
|
m_sigframe/sigframe-arm64-linux.c \
|
|
m_sigframe/sigframe-s390x-linux.c \
|
|
m_sigframe/sigframe-mips32-linux.c \
|
|
m_sigframe/sigframe-mips64-linux.c \
|
|
m_sigframe/sigframe-nanomips-linux.c \
|
|
m_sigframe/sigframe-x86-darwin.c \
|
|
m_sigframe/sigframe-amd64-darwin.c \
|
|
m_sigframe/sigframe-solaris.c \
|
|
m_syswrap/syscall-x86-linux.S \
|
|
m_syswrap/syscall-amd64-linux.S \
|
|
m_syswrap/syscall-ppc32-linux.S \
|
|
m_syswrap/syscall-ppc64be-linux.S \
|
|
m_syswrap/syscall-ppc64le-linux.S \
|
|
m_syswrap/syscall-arm-linux.S \
|
|
m_syswrap/syscall-arm64-linux.S \
|
|
m_syswrap/syscall-s390x-linux.S \
|
|
m_syswrap/syscall-mips32-linux.S \
|
|
m_syswrap/syscall-mips64-linux.S \
|
|
m_syswrap/syscall-nanomips-linux.S \
|
|
m_syswrap/syscall-x86-freebsd.S \
|
|
m_syswrap/syscall-amd64-freebsd.S \
|
|
m_syswrap/syscall-x86-darwin.S \
|
|
m_syswrap/syscall-amd64-darwin.S \
|
|
m_syswrap/syscall-x86-solaris.S \
|
|
m_syswrap/syscall-amd64-solaris.S \
|
|
m_syswrap/syswrap-main.c \
|
|
m_syswrap/syswrap-generic.c \
|
|
m_syswrap/syswrap-linux.c \
|
|
m_syswrap/syswrap-linux-variants.c \
|
|
m_syswrap/syswrap-freebsd.c \
|
|
m_syswrap/syswrap-darwin.c \
|
|
m_syswrap/syswrap-solaris.c \
|
|
m_syswrap/syswrap-x86-linux.c \
|
|
m_syswrap/syswrap-amd64-linux.c \
|
|
m_syswrap/syswrap-ppc32-linux.c \
|
|
m_syswrap/syswrap-ppc64-linux.c \
|
|
m_syswrap/syswrap-x86-freebsd.c \
|
|
m_syswrap/syswrap-amd64-freebsd.c \
|
|
m_syswrap/syswrap-arm-linux.c \
|
|
m_syswrap/syswrap-arm64-linux.c \
|
|
m_syswrap/syswrap-s390x-linux.c \
|
|
m_syswrap/syswrap-mips32-linux.c \
|
|
m_syswrap/syswrap-mips64-linux.c \
|
|
m_syswrap/syswrap-nanomips-linux.c \
|
|
m_syswrap/syswrap-x86-darwin.c \
|
|
m_syswrap/syswrap-amd64-darwin.c \
|
|
m_syswrap/syswrap-xen.c \
|
|
m_syswrap/syswrap-x86-solaris.c \
|
|
m_syswrap/syswrap-amd64-solaris.c \
|
|
m_ume/elf.c \
|
|
m_ume/macho.c \
|
|
m_ume/main.c \
|
|
m_ume/script.c
|
|
|
|
# The below files cannot be compiled with lto, otherwise that gives
|
|
# undefined symbols at link time. So, define a noinst library to
|
|
# build the needed .o with specific flags.
|
|
# These objects are added to the libcoregrind library.
|
|
NOLTO_COREGRIND_SOURCES_COMMON = \
|
|
m_libcsetjmp.c \
|
|
m_main.c
|
|
noinst_LIBRARIES = libnolto_coregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
|
|
libnolto_coregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
|
|
$(NOLTO_COREGRIND_SOURCES_COMMON)
|
|
libnolto_coregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
libnolto_coregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
|
|
$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
libnolto_coregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CCASFLAGS = \
|
|
$(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
noinst_LIBRARIES += libnolto_coregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
|
|
libnolto_coregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
|
|
$(NOLTO_COREGRIND_SOURCES_COMMON)
|
|
libnolto_coregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
libnolto_coregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
|
|
$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
libnolto_coregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CCASFLAGS = \
|
|
$(AM_CCASFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
endif
|
|
|
|
|
|
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
|
|
$(COREGRIND_SOURCES_COMMON)
|
|
nodist_libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
|
|
$(BUILT_SOURCES)
|
|
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = $(LTO_CFLAGS) \
|
|
$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CCASFLAGS = \
|
|
$(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
if ENABLE_LINUX_TICKET_LOCK_PRIMARY
|
|
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES += \
|
|
m_scheduler/ticket-lock-linux.c
|
|
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS += \
|
|
-DENABLE_LINUX_TICKET_LOCK
|
|
endif
|
|
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_LIBADD = \
|
|
$(libnolto_coregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_OBJECTS)
|
|
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_DEPENDENCIES = \
|
|
libnolto_coregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
|
|
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
|
|
$(COREGRIND_SOURCES_COMMON)
|
|
nodist_libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
|
|
$(BUILT_SOURCES)
|
|
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = $(LTO_CFLAGS) \
|
|
$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CCASFLAGS = \
|
|
$(AM_CCASFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
if ENABLE_LINUX_TICKET_LOCK_SECONDARY
|
|
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES += \
|
|
m_scheduler/ticket-lock-linux.c
|
|
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS += \
|
|
-DENABLE_LINUX_TICKET_LOCK
|
|
endif
|
|
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_LIBADD = \
|
|
$(libnolto_coregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_OBJECTS)
|
|
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_DEPENDENCIES = \
|
|
libnolto_coregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# libgcc-sup-<platform>.a
|
|
# Special supplemental library for functions normally supplied by glibc
|
|
# used by libgcc.
|
|
#----------------------------------------------------------------------------
|
|
|
|
pkglib_LIBRARIES += libgcc-sup-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
pkglib_LIBRARIES += libgcc-sup-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
|
|
endif
|
|
|
|
libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
|
|
m_libgcc_sup.c
|
|
libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
|
|
$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
|
|
m_libgcc_sup.c
|
|
libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
|
|
$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# libreplacemalloc_toolpreload-<platform>.a
|
|
#----------------------------------------------------------------------------
|
|
|
|
pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
|
|
endif
|
|
|
|
libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
|
|
m_replacemalloc/vg_replace_malloc.c
|
|
libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
|
|
$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
|
|
m_replacemalloc/vg_replace_malloc.c
|
|
libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
|
|
$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# vgpreload_core-<platform>.a
|
|
#----------------------------------------------------------------------------
|
|
|
|
noinst_PROGRAMS = vgpreload_core-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
noinst_PROGRAMS += vgpreload_core-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so
|
|
endif
|
|
|
|
if VGCONF_OS_IS_DARWIN
|
|
noinst_DSYMS = $(noinst_PROGRAMS)
|
|
endif
|
|
|
|
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c
|
|
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \
|
|
$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
|
|
$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c
|
|
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \
|
|
$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \
|
|
$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \
|
|
$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
|
|
endif
|
|
|
|
if VGCONF_OS_IS_SOLARIS
|
|
# Give the vgpreload_core library a proper soname so it can be easily
|
|
# recognized during reading of debug information.
|
|
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS += \
|
|
-Wl,-soname -Wl,vgpreload_core.so.0
|
|
if VGCONF_HAVE_PLATFORM_SEC
|
|
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS += \
|
|
-Wl,-soname -Wl,vgpreload_core.so.0
|
|
endif
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# gdbserver xml target descriptions
|
|
#----------------------------------------------------------------------------
|
|
|
|
GDBSERVER_XML_FILES = \
|
|
m_gdbserver/32bit-core-valgrind-s1.xml \
|
|
m_gdbserver/32bit-core-valgrind-s2.xml \
|
|
m_gdbserver/32bit-core.xml \
|
|
m_gdbserver/32bit-linux-valgrind-s1.xml \
|
|
m_gdbserver/32bit-linux-valgrind-s2.xml \
|
|
m_gdbserver/32bit-linux.xml \
|
|
m_gdbserver/32bit-sse-valgrind-s1.xml \
|
|
m_gdbserver/32bit-sse-valgrind-s2.xml \
|
|
m_gdbserver/32bit-sse.xml \
|
|
m_gdbserver/64bit-avx-valgrind-s2.xml \
|
|
m_gdbserver/64bit-avx-valgrind-s1.xml \
|
|
m_gdbserver/64bit-avx.xml \
|
|
m_gdbserver/64bit-core-valgrind-s1.xml \
|
|
m_gdbserver/64bit-core-valgrind-s2.xml \
|
|
m_gdbserver/64bit-core.xml \
|
|
m_gdbserver/64bit-linux-valgrind-s1.xml \
|
|
m_gdbserver/64bit-linux-valgrind-s2.xml \
|
|
m_gdbserver/64bit-linux.xml \
|
|
m_gdbserver/64bit-sse-valgrind-s1.xml \
|
|
m_gdbserver/64bit-sse-valgrind-s2.xml \
|
|
m_gdbserver/64bit-sse.xml \
|
|
m_gdbserver/amd64-avx-coresse-valgrind.xml \
|
|
m_gdbserver/amd64-avx-coresse.xml \
|
|
m_gdbserver/amd64-avx-linux-valgrind.xml \
|
|
m_gdbserver/amd64-avx-linux.xml \
|
|
m_gdbserver/amd64-coresse-valgrind.xml \
|
|
m_gdbserver/amd64-linux-valgrind.xml \
|
|
m_gdbserver/arm-core-valgrind-s1.xml \
|
|
m_gdbserver/arm-core-valgrind-s2.xml \
|
|
m_gdbserver/arm-core.xml \
|
|
m_gdbserver/arm-vfpv3-valgrind-s1.xml \
|
|
m_gdbserver/arm-vfpv3-valgrind-s2.xml \
|
|
m_gdbserver/arm-vfpv3.xml \
|
|
m_gdbserver/arm-with-vfpv3-valgrind.xml \
|
|
m_gdbserver/arm-with-vfpv3.xml \
|
|
m_gdbserver/i386-coresse-valgrind.xml \
|
|
m_gdbserver/i386-linux-valgrind.xml \
|
|
m_gdbserver/power64-core-valgrind-s1.xml \
|
|
m_gdbserver/power64-core-valgrind-s2.xml \
|
|
m_gdbserver/power64-core.xml \
|
|
m_gdbserver/power64-core2-valgrind-s1.xml \
|
|
m_gdbserver/power64-core2-valgrind-s2.xml \
|
|
m_gdbserver/power64-linux-valgrind-s1.xml \
|
|
m_gdbserver/power64-linux-valgrind-s2.xml \
|
|
m_gdbserver/power64-linux.xml \
|
|
m_gdbserver/power-altivec-valgrind-s1.xml \
|
|
m_gdbserver/power-altivec-valgrind-s2.xml \
|
|
m_gdbserver/power-altivec.xml \
|
|
m_gdbserver/power-vsx-valgrind-s1.xml \
|
|
m_gdbserver/power-vsx-valgrind-s2.xml \
|
|
m_gdbserver/power-vsx.xml \
|
|
m_gdbserver/power-core-valgrind-s1.xml \
|
|
m_gdbserver/power-core-valgrind-s2.xml \
|
|
m_gdbserver/power-core.xml \
|
|
m_gdbserver/power-fpu-valgrind-s1.xml \
|
|
m_gdbserver/power-fpu-valgrind-s2.xml \
|
|
m_gdbserver/power-fpu.xml \
|
|
m_gdbserver/power-linux-valgrind-s1.xml \
|
|
m_gdbserver/power-linux-valgrind-s2.xml \
|
|
m_gdbserver/power-linux.xml \
|
|
m_gdbserver/powerpc-altivec32l-valgrind.xml \
|
|
m_gdbserver/powerpc-altivec32l.xml \
|
|
m_gdbserver/powerpc-altivec64l-valgrind.xml \
|
|
m_gdbserver/powerpc-altivec64l.xml \
|
|
m_gdbserver/s390-acr-valgrind-s1.xml \
|
|
m_gdbserver/s390-acr-valgrind-s2.xml \
|
|
m_gdbserver/s390-acr.xml \
|
|
m_gdbserver/s390-fpr-valgrind-s1.xml \
|
|
m_gdbserver/s390-fpr-valgrind-s2.xml \
|
|
m_gdbserver/s390-fpr.xml \
|
|
m_gdbserver/s390x-core64-valgrind-s1.xml \
|
|
m_gdbserver/s390x-core64-valgrind-s2.xml \
|
|
m_gdbserver/s390x-core64.xml \
|
|
m_gdbserver/s390x-generic-valgrind.xml \
|
|
m_gdbserver/s390x-generic.xml \
|
|
m_gdbserver/s390x-linux64-valgrind-s1.xml \
|
|
m_gdbserver/s390x-linux64-valgrind-s2.xml \
|
|
m_gdbserver/s390x-linux64.xml \
|
|
m_gdbserver/s390-vx-valgrind-s1.xml \
|
|
m_gdbserver/s390-vx-valgrind-s2.xml \
|
|
m_gdbserver/s390-vx.xml \
|
|
m_gdbserver/s390x-vx-linux-valgrind.xml \
|
|
m_gdbserver/s390x-vx-linux.xml \
|
|
m_gdbserver/mips-cp0-valgrind-s1.xml \
|
|
m_gdbserver/mips-cp0-valgrind-s2.xml \
|
|
m_gdbserver/mips-cp0.xml \
|
|
m_gdbserver/mips-cpu-valgrind-s1.xml \
|
|
m_gdbserver/mips-cpu-valgrind-s2.xml \
|
|
m_gdbserver/mips-cpu.xml \
|
|
m_gdbserver/mips-linux.xml \
|
|
m_gdbserver/mips-linux-valgrind.xml \
|
|
m_gdbserver/mips-fpu-valgrind-s1.xml \
|
|
m_gdbserver/mips-fpu-valgrind-s2.xml \
|
|
m_gdbserver/mips-fpu.xml \
|
|
m_gdbserver/mips64-cp0-valgrind-s1.xml \
|
|
m_gdbserver/mips64-cp0-valgrind-s2.xml \
|
|
m_gdbserver/mips64-cp0.xml \
|
|
m_gdbserver/mips64-cpu-valgrind-s1.xml \
|
|
m_gdbserver/mips64-cpu-valgrind-s2.xml \
|
|
m_gdbserver/mips64-cpu.xml \
|
|
m_gdbserver/mips64-linux.xml \
|
|
m_gdbserver/mips64-linux-valgrind.xml \
|
|
m_gdbserver/mips64-fpu-valgrind-s1.xml \
|
|
m_gdbserver/mips64-fpu-valgrind-s2.xml \
|
|
m_gdbserver/mips64-fpu.xml
|
|
|
|
# so as to make sure these get copied into the install tree
|
|
vglibdir = $(pkglibexecdir)
|
|
vglib_DATA = $(GDBSERVER_XML_FILES)
|
|
vglib_DATA += m_gdbserver/valgrind-monitor.py
|
|
vglib_DATA += m_gdbserver/valgrind-monitor-def.py
|
|
|
|
# so as to make sure these get copied into the tarball
|
|
EXTRA_DIST += $(GDBSERVER_XML_FILES)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# General stuff
|
|
#----------------------------------------------------------------------------
|
|
|
|
all-local: inplace-noinst_PROGRAMS inplace-noinst_DSYMS
|
|
mkdir -p $(inplacedir); \
|
|
for f in $(vglib_DATA); do \
|
|
rm -f $(inplacedir)/$$f; \
|
|
ln -f -s ../$(subdir)/$$f $(inplacedir); \
|
|
done
|
|
|
|
clean-local: clean-noinst_DSYMS
|
|
|
|
install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS
|
|
|
|
uninstall-local: uninstall-noinst_PROGRAMS uninstall-noinst_DSYMS
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Darwin linker kludges
|
|
#----------------------------------------------------------------------------
|
|
|
|
if VGCONF_OS_IS_DARWIN
|
|
|
|
BUILT_SOURCES += fixup_macho_loadcmds
|
|
fixup_macho_loadcmds: fixup_macho_loadcmds.c
|
|
$(CC) -I$(top_srcdir) -I$(top_builddir) -g -Wall -o $@ $<
|
|
|
|
CLEANFILES += fixup_macho_loadcmds
|
|
|
|
endif
|
|
|
|
EXTRA_DIST += fixup_macho_loadcmds.c
|