mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-04 02:18:37 +00:00
- vg_cachesim.c
- vg_cachesim_{I1,D1,L2}.c
- vg_annotate.in
- vg_cachegen.in
Changes to existing files:
- valgrind/valgrind.in, added option:
--cachesim=no|yes [no]
- Makefile/Makefile.am:
* added vg_cachesim.c to valgrind_so_SOURCES var
* added vg_cachesim_I1.c, vg_cachesim_D1.c, vg_cachesim_L2.c to
noinst_HEADERS var
* added vg_annotate, vg_cachegen to 'bin_SCRIPTS' var, and added empty
targets for them
- vg_main.c:
* added two offsets for cache sim functions (put in positions 17a,17b)
* added option handling (detection of --cachesim=yes which turns off of
--instrument);
* added calls to cachesim initialisation/finalisation functions
- vg_mylibc: added some system call wrappers (for chmod, open_write, etc) for
file writing
- vg_symtab2.c:
* allow it to read symbols if either of --instrument or --cachesim is
used
* made vg_symtab2.c:vg_what_{line,fn}_is_this extern, renaming it as
VG_(what_line_is_this) (and added to vg_include.h)
* completely rewrote the read loop in vg_read_lib_symbols, fixing
several bugs. Much better now, although probably not perfect. It's
also relatively fragile -- I'm using the "die immediately if anything
unexpected happens" approach.
- vg_to_ucode.c:
* in VG_(disBB), patching in x86 instruction size into extra4b field of
JMP instructions at the end of basic blocks if --cachesim=yes.
Shifted things around to do this; also had to fiddle around with
single-step stuff to get this to work, by not sticking extra JMPs on
the end of the single-instruction block if there was already one
there (to avoid breaking an assertion in vg_cachesim.c). Did a
similar thing to avoid an extra JMP on huge basic blocks that are
split.
- vg_translate.c:
* if --cachesim=yes call the cachesim instrumentation phase
* made some functions extern and renamed:
allocCodeBlock() --> VG_(allocCodeBlock)()
freeCodeBlock() --> VG_(freeCodeBlock)()
copyUInstr() --> VG_(copyUInstr)()
(added to vg_include.h too)
- vg_include.c: declared
* cachesim offsets
* exports of vg_cachesim.c
* added four new profiling events (increasing VGP_M_CCS to 24 -- I kept
the spare ones)
* added comment about UInstr.extra4b field being used for instr size in
JMPs for cache simulation
- docs/manual.html:
* Added --cachesim option to section 2.5.
* Added cache profiling stuff as section 7.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@168
108 lines
2.4 KiB
Makefile
108 lines
2.4 KiB
Makefile
SUBDIRS = demangle . docs tests
|
|
|
|
CFLAGS = $(WERROR) -Winline -Wall -Wshadow -O -fomit-frame-pointer -g
|
|
|
|
valdir = $(libdir)/valgrind
|
|
|
|
LDFLAGS = -Wl,-z -Wl,initfirst
|
|
|
|
INCLUDES = -I$(srcdir)/demangle
|
|
|
|
bin_SCRIPTS = valgrind vg_annotate vg_cachegen
|
|
|
|
SUPP_FILES = glibc-2.1.supp glibc-2.2.supp xfree-3.supp xfree-4.supp
|
|
|
|
val_DATA = $(SUPP_FILES) default.supp
|
|
|
|
BUILT_SOURCES = default.supp
|
|
|
|
default.supp: $(SUPP_FILES)
|
|
|
|
bzdist: dist
|
|
gunzip -c $(PACKAGE)-$(VERSION).tar.gz | bzip2 > $(PACKAGE)-$(VERSION).tar.bz2
|
|
|
|
EXTRA_DIST = $(val_DATA) \
|
|
PATCHES_APPLIED ACKNOWLEDGEMENTS \
|
|
README_KDE3_FOLKS \
|
|
README_MISSING_SYSCALL_OR_IOCTL TODO dosyms
|
|
|
|
val_PROGRAMS = valgrind.so valgrinq.so libpthread.so
|
|
|
|
libpthread_so_SOURCES = vg_libpthread.c vg_libpthread_unimp.c
|
|
|
|
valgrinq_so_SOURCES = vg_valgrinq_dummy.c
|
|
|
|
valgrind_so_SOURCES = \
|
|
vg_clientfuncs.c \
|
|
vg_scheduler.c \
|
|
vg_cachesim.c \
|
|
vg_clientmalloc.c \
|
|
vg_clientperms.c \
|
|
vg_demangle.c \
|
|
vg_dispatch.S \
|
|
vg_errcontext.c \
|
|
vg_execontext.c \
|
|
vg_from_ucode.c \
|
|
vg_helpers.S \
|
|
vg_main.c \
|
|
vg_malloc2.c \
|
|
vg_memory.c \
|
|
vg_messages.c \
|
|
vg_mylibc.c \
|
|
vg_procselfmaps.c \
|
|
vg_profile.c \
|
|
vg_signals.c \
|
|
vg_startup.S \
|
|
vg_symtab2.c \
|
|
vg_syscall_mem.c \
|
|
vg_syscall.S \
|
|
vg_to_ucode.c \
|
|
vg_translate.c \
|
|
vg_transtab.c \
|
|
vg_vtagops.c
|
|
|
|
valgrind_so_LDADD = \
|
|
demangle/cp-demangle.o \
|
|
demangle/cplus-dem.o \
|
|
demangle/dyn-string.o \
|
|
demangle/safe-ctype.o
|
|
|
|
include_HEADERS = valgrind.h
|
|
|
|
noinst_HEADERS = \
|
|
vg_cachesim_I1.c \
|
|
vg_cachesim_D1.c \
|
|
vg_cachesim_L2.c \
|
|
vg_kerneliface.h \
|
|
vg_include.h \
|
|
vg_constants.h \
|
|
vg_unsafe.h
|
|
|
|
MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS)
|
|
|
|
vg_annotate:
|
|
|
|
vg_cachegen:
|
|
|
|
vg_memory.o: vg_memory.c $(MANUAL_DEPS)
|
|
$(COMPILE) -O2 @PREFERRED_STACK_BOUNDARY@ -c $<
|
|
|
|
vg_clientfuncs.o: vg_clientfuncs.c $(MANUAL_DEPS)
|
|
$(COMPILE) -fno-omit-frame-pointer -c $<
|
|
|
|
valgrind.so$(EXEEXT): $(valgrind_so_OBJECTS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -shared -o valgrind.so \
|
|
$(valgrind_so_OBJECTS) $(valgrind_so_LDADD)
|
|
|
|
valgrinq.so$(EXEEXT): $(valgrinq_so_OBJECTS)
|
|
$(CC) $(CFLAGS) -shared -o valgrinq.so $(valgrinq_so_OBJECTS)
|
|
|
|
libpthread.so$(EXEEXT): $(libpthread_so_OBJECTS)
|
|
$(CC) -Wall -Werror -g -O -shared -fpic -o libpthread.so \
|
|
$(libpthread_so_OBJECTS)
|
|
|
|
install-exec-hook:
|
|
$(mkinstalldirs) $(DESTDIR)$(valdir)
|
|
rm -f $(DESTDIR)$(valdir)/libpthread.so.0
|
|
$(LN_S) libpthread.so $(DESTDIR)$(valdir)/libpthread.so.0
|