Index: helgrind/hg_main.c =================================================================== --- helgrind/hg_main.c (wersja 7034) +++ helgrind/hg_main.c (kopia robocza) @@ -1773,6 +1773,14 @@ static +void hg_new_mem_mmap( Addr a, SizeT len, Off64T offset, Bool rr, Bool ww, Bool xx ) +{ + /* Ignore the permissions, just make it readable. Seems to work... */ + make_segment_readable(a, len); +} + + +static void hg_new_mem_heap ( Addr a, SizeT len, Bool is_inited ) { if (is_inited) { @@ -3443,7 +3451,7 @@ /* stack ones not decided until hg_post_clo_init() */ VG_(track_new_mem_brk) (& make_writable); - VG_(track_new_mem_mmap) (& hg_new_mem_startup); + VG_(track_new_mem_mmap) (& hg_new_mem_mmap); VG_(track_change_mem_mprotect) (& hg_set_perms); Index: memcheck/mc_main.c =================================================================== --- memcheck/mc_main.c (wersja 7034) +++ memcheck/mc_main.c (kopia robocza) @@ -2539,7 +2539,7 @@ } static -void mc_new_mem_mmap ( Addr a, SizeT len, Bool rr, Bool ww, Bool xx ) +void mc_new_mem_mmap ( Addr a, SizeT len, Off64T o, Bool rr, Bool ww, Bool xx ) { MC_(make_mem_defined)(a, len); } Index: include/pub_tool_options.h =================================================================== --- include/pub_tool_options.h (wersja 7034) +++ include/pub_tool_options.h (kopia robocza) @@ -62,6 +62,11 @@ (qq_var) = (Word)VG_(atoll)( &qq_arg[ VG_(strlen)(qq_option)+1 ] ); \ } +#define VG_HEX_CLO(qq_arg, qq_option, qq_var) \ + if (VG_CLO_STREQN(VG_(strlen)(qq_option)+1, qq_arg, qq_option"=")) { \ + (qq_var) = (Int)VG_(strtoll)( &qq_arg[ VG_(strlen)(qq_option)+1 ], NULL, 16 ); \ + } + /* Bounded integer arg */ #define VG_BNUM_CLO(qq_arg, qq_option, qq_var, qq_lo, qq_hi) \ if (VG_CLO_STREQN(VG_(strlen)(qq_option)+1, qq_arg, qq_option"=")) { \ @@ -70,6 +75,14 @@ if ((qq_var) > (qq_hi)) (qq_var) = (qq_hi); \ } +/* Bounded integer arg, given in hex */ +#define VG_BHEX_CLO(qq_arg, qq_option, qq_var, qq_lo, qq_hi) \ + if (VG_CLO_STREQN(VG_(strlen)(qq_option)+1, qq_arg, qq_option"=")) { \ + (qq_var) = (Int)VG_(strtoll)( &qq_arg[ VG_(strlen)(qq_option)+1 ], NULL, 16 ); \ + if ((qq_var) < (qq_lo)) (qq_var) = (qq_lo); \ + if ((qq_var) > (qq_hi)) (qq_var) = (qq_hi); \ + } + /* Bool arg whose value is denoted by the exact presence of the given string. */ #define VG_XACT_CLO(qq_arg, qq_option, qq_var) \ if (VG_CLO_STREQ(qq_arg, qq_option)) { \ Index: include/pub_tool_libcbase.h =================================================================== --- include/pub_tool_libcbase.h (wersja 7034) +++ include/pub_tool_libcbase.h (kopia robocza) @@ -45,6 +45,7 @@ // Nb: atoll16 doesn't handle a "0x" prefix. extern Long VG_(atoll) ( Char* str ); // base 10 extern Long VG_(atoll16) ( Char* str ); // base 16 +extern Long VG_(strtoll) ( Char* str, Char** endptr, Int base ); extern Long VG_(atoll36) ( Char* str ); // base 36 /* --------------------------------------------------------------------- Index: include/pub_tool_tooliface.h =================================================================== --- include/pub_tool_tooliface.h (wersja 7034) +++ include/pub_tool_tooliface.h (kopia robocza) @@ -472,7 +472,7 @@ Bool rr, Bool ww, Bool xx)); void VG_(track_new_mem_stack_signal)(void(*f)(Addr a, SizeT len)); void VG_(track_new_mem_brk) (void(*f)(Addr a, SizeT len)); -void VG_(track_new_mem_mmap) (void(*f)(Addr a, SizeT len, +void VG_(track_new_mem_mmap) (void(*f)(Addr a, SizeT len, Off64T offset, Bool rr, Bool ww, Bool xx)); void VG_(track_copy_mem_remap) (void(*f)(Addr from, Addr to, SizeT len)); Index: configure.in =================================================================== --- configure.in (wersja 7034) +++ configure.in (kopia robocza) @@ -986,6 +986,9 @@ lackey/Makefile lackey/tests/Makefile lackey/docs/Makefile + mmt/Makefile + mmt/tests/Makefile + mmt/docs/Makefile none/Makefile none/tests/Makefile none/tests/amd64/Makefile Index: mmt/tests/Makefile.in =================================================================== --- mmt/tests/Makefile.in (wersja 0) +++ mmt/tests/Makefile.in (wersja 0) @@ -0,0 +1,331 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = mmt/tests +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_SUPP = @DEFAULT_SUPP@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@ +FLAG_M32 = @FLAG_M32@ +FLAG_M64 = @FLAG_M64@ +FLAG_MAIX32 = @FLAG_MAIX32@ +FLAG_MAIX64 = @FLAG_MAIX64@ +FLAG_MMMX = @FLAG_MMMX@ +FLAG_MSSE = @FLAG_MSSE@ +FLAG_WDECL_AFTER_STMT = @FLAG_WDECL_AFTER_STMT@ +GDB = @GDB@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MPI_CC = @MPI_CC@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PREFERRED_STACK_BOUNDARY = @PREFERRED_STACK_BOUNDARY@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VALT_LOAD_ADDRESS = @VALT_LOAD_ADDRESS@ +VERSION = @VERSION@ +VEX_DIR = @VEX_DIR@ +VG_ARCH = @VG_ARCH@ +VG_ARCH_ALL = @VG_ARCH_ALL@ +VG_OS = @VG_OS@ +VG_PLATFORM_PRI = @VG_PLATFORM_PRI@ +VG_PLATFORM_SEC = @VG_PLATFORM_SEC@ +XMKMF = @XMKMF@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mmt/tests/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu mmt/tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: Index: mmt/tests/Makefile.am =================================================================== Index: mmt/Makefile.in =================================================================== --- mmt/Makefile.in (wersja 0) +++ mmt/Makefile.in (wersja 0) @@ -0,0 +1,956 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# What the second for loop does: it copies libcoregrind.a and libvex.a +# into the correct (target-specific) lib dirs at install time. +# $(noinst_LIBRARIES) will look like this: +# libcoregrind_x86_linux.a libreplacemalloc_toolpreload_x86_linux.a +# libcoregrind_amd64_linux.a libreplacemalloc_toolpreload_amd64_linux.a +# The 'if expr' filters out all but the libcoregrind_ ones. +# pD and pU are the (arch,os) target pairs separated by a dash (pD) or +# an underscore (pU) respectively, eg amd64-linux (pD) and amd64_linux (pU). +# It then copies libcoregrind.a and libvex.a to the right places. + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/Makefile.all.am $(top_srcdir)/Makefile.flags.am \ + $(top_srcdir)/Makefile.install.am \ + $(top_srcdir)/Makefile.tool-flags.am \ + $(top_srcdir)/Makefile.tool-inplace.am \ + $(top_srcdir)/Makefile.tool.am +noinst_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ + $(am__EXEEXT_4) +@VGP_X86_LINUX_TRUE@am__append_1 = mmt-x86-linux +@VGP_AMD64_LINUX_TRUE@am__append_2 = mmt-amd64-linux +@VGP_PPC32_LINUX_TRUE@am__append_3 = mmt-ppc32-linux +@VGP_PPC64_LINUX_TRUE@am__append_4 = mmt-ppc64-linux +subdir = mmt +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +@VGP_X86_LINUX_TRUE@am__EXEEXT_1 = mmt-x86-linux$(EXEEXT) +@VGP_AMD64_LINUX_TRUE@am__EXEEXT_2 = mmt-amd64-linux$(EXEEXT) +@VGP_PPC32_LINUX_TRUE@am__EXEEXT_3 = mmt-ppc32-linux$(EXEEXT) +@VGP_PPC64_LINUX_TRUE@am__EXEEXT_4 = mmt-ppc64-linux$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) +am__objects_1 = mmt_amd64_linux-mmt_main.$(OBJEXT) +am_mmt_amd64_linux_OBJECTS = $(am__objects_1) +mmt_amd64_linux_OBJECTS = $(am_mmt_amd64_linux_OBJECTS) +am__DEPENDENCIES_1 = +am__DEPENDENCIES_2 = $(COREGRIND_LIBS_AMD64_LINUX) \ + $(am__DEPENDENCIES_1) +mmt_amd64_linux_LINK = $(CCLD) $(mmt_amd64_linux_CFLAGS) $(CFLAGS) \ + $(mmt_amd64_linux_LDFLAGS) $(LDFLAGS) -o $@ +am__objects_2 = mmt_ppc32_linux-mmt_main.$(OBJEXT) +am_mmt_ppc32_linux_OBJECTS = $(am__objects_2) +mmt_ppc32_linux_OBJECTS = $(am_mmt_ppc32_linux_OBJECTS) +am__DEPENDENCIES_3 = $(COREGRIND_LIBS_PPC32_LINUX) \ + $(am__DEPENDENCIES_1) +mmt_ppc32_linux_LINK = $(CCLD) $(mmt_ppc32_linux_CFLAGS) $(CFLAGS) \ + $(mmt_ppc32_linux_LDFLAGS) $(LDFLAGS) -o $@ +am__objects_3 = mmt_ppc64_linux-mmt_main.$(OBJEXT) +am_mmt_ppc64_linux_OBJECTS = $(am__objects_3) +mmt_ppc64_linux_OBJECTS = $(am_mmt_ppc64_linux_OBJECTS) +am__DEPENDENCIES_4 = $(COREGRIND_LIBS_PPC64_LINUX) \ + $(am__DEPENDENCIES_1) +mmt_ppc64_linux_LINK = $(CCLD) $(mmt_ppc64_linux_CFLAGS) $(CFLAGS) \ + $(mmt_ppc64_linux_LDFLAGS) $(LDFLAGS) -o $@ +am__objects_4 = mmt_x86_linux-mmt_main.$(OBJEXT) +am_mmt_x86_linux_OBJECTS = $(am__objects_4) +mmt_x86_linux_OBJECTS = $(am_mmt_x86_linux_OBJECTS) +am__DEPENDENCIES_5 = $(COREGRIND_LIBS_X86_LINUX) $(am__DEPENDENCIES_1) +mmt_x86_linux_LINK = $(CCLD) $(mmt_x86_linux_CFLAGS) $(CFLAGS) \ + $(mmt_x86_linux_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(mmt_amd64_linux_SOURCES) $(mmt_ppc32_linux_SOURCES) \ + $(mmt_ppc64_linux_SOURCES) $(mmt_x86_linux_SOURCES) +DIST_SOURCES = $(mmt_amd64_linux_SOURCES) $(mmt_ppc32_linux_SOURCES) \ + $(mmt_ppc64_linux_SOURCES) $(mmt_x86_linux_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_SUPP = @DEFAULT_SUPP@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@ +FLAG_M32 = @FLAG_M32@ +FLAG_M64 = @FLAG_M64@ +FLAG_MAIX32 = @FLAG_MAIX32@ +FLAG_MAIX64 = @FLAG_MAIX64@ +FLAG_MMMX = @FLAG_MMMX@ +FLAG_MSSE = @FLAG_MSSE@ +FLAG_WDECL_AFTER_STMT = @FLAG_WDECL_AFTER_STMT@ +GDB = @GDB@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MPI_CC = @MPI_CC@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PREFERRED_STACK_BOUNDARY = @PREFERRED_STACK_BOUNDARY@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VALT_LOAD_ADDRESS = @VALT_LOAD_ADDRESS@ +VERSION = @VERSION@ +VEX_DIR = @VEX_DIR@ +VG_ARCH = @VG_ARCH@ +VG_ARCH_ALL = @VG_ARCH_ALL@ +VG_OS = @VG_OS@ +VG_PLATFORM_PRI = @VG_PLATFORM_PRI@ +VG_PLATFORM_SEC = @VG_PLATFORM_SEC@ +XMKMF = @XMKMF@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = . tests docs +valdir = $(libdir)/valgrind +inplacedir = $(top_builddir)/.in_place +add_includes_x86_linux = -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVGA_x86=1 \ + -DVGO_linux=1 \ + -DVGP_x86_linux=1 + +add_includes_amd64_linux = -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVGA_amd64=1 \ + -DVGO_linux=1 \ + -DVGP_amd64_linux=1 + +add_includes_ppc32_linux = -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVGA_ppc32=1 \ + -DVGO_linux=1 \ + -DVGP_ppc32_linux=1 + +add_includes_ppc64_linux = -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVGA_ppc64=1 \ + -DVGO_linux=1 \ + -DVGP_ppc64_linux=1 + +add_includes_ppc32_aix5 = -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVGA_ppc32=1 \ + -DVGO_aix5=1 \ + -DVGP_ppc32_aix5=1 + +add_includes_ppc64_aix5 = -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVGA_ppc64=1 \ + -DVGO_aix5=1 \ + -DVGP_ppc64_aix5=1 + + +# Baseline flags for all compilations +AM_CFLAGS_BASE = -O -g -Wmissing-prototypes -Winline -Wall -Wshadow \ + -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations + +AM_CFLAGS_PIC = -fpic -fno-omit-frame-pointer + +# Flags for specific targets +AM_FLAG_M3264_X86_LINUX = @FLAG_M32@ +AM_CPPFLAGS_X86_LINUX = $(add_includes_x86_linux) +AM_CFLAGS_X86_LINUX = $(WERROR) @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \ + $(AM_CFLAGS_BASE) + +AM_CCASFLAGS_X86_LINUX = $(add_includes_x86_linux) @FLAG_M32@ -g +AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@ +AM_CPPFLAGS_AMD64_LINUX = $(add_includes_amd64_linux) +AM_CFLAGS_AMD64_LINUX = $(WERROR) @FLAG_M64@ -fomit-frame-pointer \ + @PREFERRED_STACK_BOUNDARY@ $(AM_CFLAGS_BASE) + +AM_CCASFLAGS_AMD64_LINUX = $(add_includes_amd64_linux) @FLAG_M64@ -g +AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@ +AM_CPPFLAGS_PPC32_LINUX = $(add_includes_ppc32_linux) +AM_CFLAGS_PPC32_LINUX = $(WERROR) @FLAG_M32@ $(AM_CFLAGS_BASE) +AM_CCASFLAGS_PPC32_LINUX = $(add_includes_ppc32_linux) -Wa,-maltivec @FLAG_M32@ -g +AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@ +AM_CPPFLAGS_PPC64_LINUX = $(add_includes_ppc64_linux) +AM_CFLAGS_PPC64_LINUX = $(WERROR) @FLAG_M64@ $(AM_CFLAGS_BASE) +AM_CCASFLAGS_PPC64_LINUX = $(add_includes_ppc64_linux) -Wa,-maltivec @FLAG_M64@ -g +AM_FLAG_M3264_PPC32_AIX5 = @FLAG_MAIX32@ +AM_CPPFLAGS_PPC32_AIX5 = $(add_includes_ppc32_aix5) +AM_CFLAGS_PPC32_AIX5 = $(WERROR) @FLAG_MAIX32@ -mcpu=powerpc $(AM_CFLAGS_BASE) +AM_CCASFLAGS_PPC32_AIX5 = $(add_includes_ppc32_aix5) \ + @FLAG_MAIX32@ -mcpu=powerpc -g + +AM_FLAG_M3264_PPC64_AIX5 = @FLAG_MAIX64@ +AM_CPPFLAGS_PPC64_AIX5 = $(add_includes_ppc64_aix5) +AM_CFLAGS_PPC64_AIX5 = $(WERROR) @FLAG_MAIX64@ -mcpu=powerpc64 $(AM_CFLAGS_BASE) +AM_CCASFLAGS_PPC64_AIX5 = $(add_includes_ppc64_aix5) \ + @FLAG_MAIX64@ -mcpu=powerpc64 -g + + +# Flags for the primary target. These must be used to build the +# regtests and performance tests. In fact, these must be used to +# build anything which is built only once on a dual-arch build. +# +AM_FLAG_M3264_PRI = $(AM_FLAG_M3264_@VG_PLATFORM_PRI@) +AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_@VG_PLATFORM_PRI@) +AM_CFLAGS_PRI = $(AM_CFLAGS_@VG_PLATFORM_PRI@) +AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_@VG_PLATFORM_PRI@) +@VGP_HAVE_SECONDARY_FALSE@AM_FLAG_M3264_SEC = +@VGP_HAVE_SECONDARY_TRUE@AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_@VG_PLATFORM_SEC@) + +# Baseline link flags for making dynamic shared objects. +# +PRELOAD_LDFLAGS_COMMON_LINUX = -nostdlib -shared -Wl,-z,interpose,-z,initfirst +PRELOAD_LDFLAGS_COMMON_AIX5 = -nostdlib -shared -Wl,-G -Wl,-bnogc +PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ +PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ +PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ +PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ +PRELOAD_LDFLAGS_PPC32_AIX5 = $(PRELOAD_LDFLAGS_COMMON_AIX5) @FLAG_MAIX32@ +PRELOAD_LDFLAGS_PPC64_AIX5 = $(PRELOAD_LDFLAGS_COMMON_AIX5) @FLAG_MAIX64@ +LIBREPLACEMALLOC_X86_LINUX = \ + $(top_builddir)/coregrind/libreplacemalloc_toolpreload_x86_linux.a + +LIBREPLACEMALLOC_AMD64_LINUX = \ + $(top_builddir)/coregrind/libreplacemalloc_toolpreload_amd64_linux.a + +LIBREPLACEMALLOC_PPC32_LINUX = \ + $(top_builddir)/coregrind/libreplacemalloc_toolpreload_ppc32_linux.a + +LIBREPLACEMALLOC_PPC64_LINUX = \ + $(top_builddir)/coregrind/libreplacemalloc_toolpreload_ppc64_linux.a + +LIBREPLACEMALLOC_PPC32_AIX5 = \ + $(top_builddir)/coregrind/libreplacemalloc_toolpreload_ppc32_aix5.a + +LIBREPLACEMALLOC_PPC64_AIX5 = \ + $(top_builddir)/coregrind/libreplacemalloc_toolpreload_ppc64_aix5.a + +COREGRIND_LIBS_X86_LINUX = \ + $(top_builddir)/coregrind/libcoregrind_x86_linux.a \ + @VEX_DIR@/libvex_x86_linux.a + +COREGRIND_LIBS_AMD64_LINUX = \ + $(top_builddir)/coregrind/libcoregrind_amd64_linux.a \ + @VEX_DIR@/libvex_amd64_linux.a + +COREGRIND_LIBS_PPC32_LINUX = \ + $(top_builddir)/coregrind/libcoregrind_ppc32_linux.a \ + @VEX_DIR@/libvex_ppc32_linux.a + +COREGRIND_LIBS_PPC64_LINUX = \ + $(top_builddir)/coregrind/libcoregrind_ppc64_linux.a \ + @VEX_DIR@/libvex_ppc64_linux.a + +COREGRIND_LIBS_PPC32_AIX5 = \ + $(top_builddir)/coregrind/libcoregrind_ppc32_aix5.a \ + @VEX_DIR@/libvex_ppc32_aix5.a + +COREGRIND_LIBS_PPC64_AIX5 = \ + $(top_builddir)/coregrind/libcoregrind_ppc64_aix5.a \ + @VEX_DIR@/libvex_ppc64_aix5.a + +TOOL_LDADD_COMMON = -lgcc +TOOL_LDFLAGS_COMMON_LINUX = -static \ + -Wl,-defsym,valt_load_address=@VALT_LOAD_ADDRESS@ \ + -nodefaultlibs -nostartfiles -u _start + +TOOL_LDFLAGS_COMMON_AIX5 = -static -Wl,-e_start_valgrind +TOOL_LDADD_X86_LINUX = $(COREGRIND_LIBS_X86_LINUX) $(TOOL_LDADD_COMMON) +TOOL_LDFLAGS_X86_LINUX = \ + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \ + -Wl,-T,$(top_builddir)/valt_load_address_x86_linux.lds + +TOOL_LDADD_AMD64_LINUX = $(COREGRIND_LIBS_AMD64_LINUX) $(TOOL_LDADD_COMMON) +TOOL_LDFLAGS_AMD64_LINUX = \ + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@ \ + -Wl,-T,$(top_builddir)/valt_load_address_amd64_linux.lds + +TOOL_LDADD_PPC32_LINUX = $(COREGRIND_LIBS_PPC32_LINUX) $(TOOL_LDADD_COMMON) +TOOL_LDFLAGS_PPC32_LINUX = \ + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \ + -Wl,-T,$(top_builddir)/valt_load_address_ppc32_linux.lds + +TOOL_LDADD_PPC64_LINUX = $(COREGRIND_LIBS_PPC64_LINUX) $(TOOL_LDADD_COMMON) +TOOL_LDFLAGS_PPC64_LINUX = \ + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@ \ + -Wl,-T,$(top_builddir)/valt_load_address_ppc64_linux.lds + +TOOL_LDADD_PPC32_AIX5 = $(COREGRIND_LIBS_PPC32_AIX5) $(TOOL_LDADD_COMMON) +TOOL_LDFLAGS_PPC32_AIX5 = \ + $(TOOL_LDFLAGS_COMMON_AIX5) @FLAG_MAIX32@ + +TOOL_LDADD_PPC64_AIX5 = $(COREGRIND_LIBS_PPC64_AIX5) $(TOOL_LDADD_COMMON) +TOOL_LDFLAGS_PPC64_AIX5 = \ + $(TOOL_LDFLAGS_COMMON_AIX5) @FLAG_MAIX64@ -Wl,-bbigtoc + +LIBREPLACEMALLOC_LDFLAGS_X86_LINUX = \ + -Wl,--whole-archive \ + $(LIBREPLACEMALLOC_X86_LINUX) \ + -Wl,--no-whole-archive + +LIBREPLACEMALLOC_LDFLAGS_AMD64_LINUX = \ + -Wl,--whole-archive \ + $(LIBREPLACEMALLOC_AMD64_LINUX) \ + -Wl,--no-whole-archive + +LIBREPLACEMALLOC_LDFLAGS_PPC32_LINUX = \ + -Wl,--whole-archive \ + $(LIBREPLACEMALLOC_PPC32_LINUX) \ + -Wl,--no-whole-archive + +LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \ + -Wl,--whole-archive \ + $(LIBREPLACEMALLOC_PPC64_LINUX) \ + -Wl,--no-whole-archive + +LIBREPLACEMALLOC_LDFLAGS_PPC32_AIX5 = \ + $(LIBREPLACEMALLOC_PPC32_AIX5) + +LIBREPLACEMALLOC_LDFLAGS_PPC64_AIX5 = \ + $(LIBREPLACEMALLOC_PPC64_AIX5) + +MMT_SOURCES_COMMON = mmt_main.c +mmt_x86_linux_SOURCES = $(MMT_SOURCES_COMMON) +mmt_x86_linux_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX) +mmt_x86_linux_CFLAGS = $(AM_CFLAGS_X86_LINUX) +mmt_x86_linux_DEPENDENCIES = $(COREGRIND_LIBS_X86_LINUX) +mmt_x86_linux_LDADD = $(TOOL_LDADD_X86_LINUX) +mmt_x86_linux_LDFLAGS = $(TOOL_LDFLAGS_X86_LINUX) +mmt_amd64_linux_SOURCES = $(MMT_SOURCES_COMMON) +mmt_amd64_linux_CPPFLAGS = $(AM_CPPFLAGS_AMD64_LINUX) +mmt_amd64_linux_CFLAGS = $(AM_CFLAGS_AMD64_LINUX) +mmt_amd64_linux_DEPENDENCIES = $(COREGRIND_LIBS_AMD64_LINUX) +mmt_amd64_linux_LDADD = $(TOOL_LDADD_AMD64_LINUX) +mmt_amd64_linux_LDFLAGS = $(TOOL_LDFLAGS_AMD64_LINUX) +mmt_ppc32_linux_SOURCES = $(MMT_SOURCES_COMMON) +mmt_ppc32_linux_CPPFLAGS = $(AM_CPPFLAGS_PPC32_LINUX) +mmt_ppc32_linux_CFLAGS = $(AM_CFLAGS_PPC32_LINUX) +mmt_ppc32_linux_DEPENDENCIES = $(COREGRIND_LIBS_PPC32_LINUX) +mmt_ppc32_linux_LDADD = $(TOOL_LDADD_PPC32_LINUX) +mmt_ppc32_linux_LDFLAGS = $(TOOL_LDFLAGS_PPC32_LINUX) +mmt_ppc64_linux_SOURCES = $(MMT_SOURCES_COMMON) +mmt_ppc64_linux_CPPFLAGS = $(AM_CPPFLAGS_PPC64_LINUX) +mmt_ppc64_linux_CFLAGS = $(AM_CFLAGS_PPC64_LINUX) +mmt_ppc64_linux_DEPENDENCIES = $(COREGRIND_LIBS_PPC64_LINUX) +mmt_ppc64_linux_LDADD = $(TOOL_LDADD_PPC64_LINUX) +mmt_ppc64_linux_LDFLAGS = $(TOOL_LDFLAGS_PPC64_LINUX) +mmtincludedir = $(includedir)/valgrind +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .c .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool.am $(top_srcdir)/Makefile.all.am $(top_srcdir)/Makefile.install.am $(top_srcdir)/Makefile.tool-flags.am $(top_srcdir)/Makefile.flags.am $(top_srcdir)/Makefile.tool-inplace.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mmt/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu mmt/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +mmt-amd64-linux$(EXEEXT): $(mmt_amd64_linux_OBJECTS) $(mmt_amd64_linux_DEPENDENCIES) + @rm -f mmt-amd64-linux$(EXEEXT) + $(mmt_amd64_linux_LINK) $(mmt_amd64_linux_OBJECTS) $(mmt_amd64_linux_LDADD) $(LIBS) +mmt-ppc32-linux$(EXEEXT): $(mmt_ppc32_linux_OBJECTS) $(mmt_ppc32_linux_DEPENDENCIES) + @rm -f mmt-ppc32-linux$(EXEEXT) + $(mmt_ppc32_linux_LINK) $(mmt_ppc32_linux_OBJECTS) $(mmt_ppc32_linux_LDADD) $(LIBS) +mmt-ppc64-linux$(EXEEXT): $(mmt_ppc64_linux_OBJECTS) $(mmt_ppc64_linux_DEPENDENCIES) + @rm -f mmt-ppc64-linux$(EXEEXT) + $(mmt_ppc64_linux_LINK) $(mmt_ppc64_linux_OBJECTS) $(mmt_ppc64_linux_LDADD) $(LIBS) +mmt-x86-linux$(EXEEXT): $(mmt_x86_linux_OBJECTS) $(mmt_x86_linux_DEPENDENCIES) + @rm -f mmt-x86-linux$(EXEEXT) + $(mmt_x86_linux_LINK) $(mmt_x86_linux_OBJECTS) $(mmt_x86_linux_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmt_amd64_linux-mmt_main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmt_ppc32_linux-mmt_main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmt_ppc64_linux-mmt_main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmt_x86_linux-mmt_main.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +mmt_amd64_linux-mmt_main.o: mmt_main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_amd64_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_amd64_linux_CFLAGS) $(CFLAGS) -MT mmt_amd64_linux-mmt_main.o -MD -MP -MF $(DEPDIR)/mmt_amd64_linux-mmt_main.Tpo -c -o mmt_amd64_linux-mmt_main.o `test -f 'mmt_main.c' || echo '$(srcdir)/'`mmt_main.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mmt_amd64_linux-mmt_main.Tpo $(DEPDIR)/mmt_amd64_linux-mmt_main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmt_main.c' object='mmt_amd64_linux-mmt_main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_amd64_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_amd64_linux_CFLAGS) $(CFLAGS) -c -o mmt_amd64_linux-mmt_main.o `test -f 'mmt_main.c' || echo '$(srcdir)/'`mmt_main.c + +mmt_amd64_linux-mmt_main.obj: mmt_main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_amd64_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_amd64_linux_CFLAGS) $(CFLAGS) -MT mmt_amd64_linux-mmt_main.obj -MD -MP -MF $(DEPDIR)/mmt_amd64_linux-mmt_main.Tpo -c -o mmt_amd64_linux-mmt_main.obj `if test -f 'mmt_main.c'; then $(CYGPATH_W) 'mmt_main.c'; else $(CYGPATH_W) '$(srcdir)/mmt_main.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mmt_amd64_linux-mmt_main.Tpo $(DEPDIR)/mmt_amd64_linux-mmt_main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmt_main.c' object='mmt_amd64_linux-mmt_main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_amd64_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_amd64_linux_CFLAGS) $(CFLAGS) -c -o mmt_amd64_linux-mmt_main.obj `if test -f 'mmt_main.c'; then $(CYGPATH_W) 'mmt_main.c'; else $(CYGPATH_W) '$(srcdir)/mmt_main.c'; fi` + +mmt_ppc32_linux-mmt_main.o: mmt_main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_ppc32_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_ppc32_linux_CFLAGS) $(CFLAGS) -MT mmt_ppc32_linux-mmt_main.o -MD -MP -MF $(DEPDIR)/mmt_ppc32_linux-mmt_main.Tpo -c -o mmt_ppc32_linux-mmt_main.o `test -f 'mmt_main.c' || echo '$(srcdir)/'`mmt_main.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mmt_ppc32_linux-mmt_main.Tpo $(DEPDIR)/mmt_ppc32_linux-mmt_main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmt_main.c' object='mmt_ppc32_linux-mmt_main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_ppc32_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_ppc32_linux_CFLAGS) $(CFLAGS) -c -o mmt_ppc32_linux-mmt_main.o `test -f 'mmt_main.c' || echo '$(srcdir)/'`mmt_main.c + +mmt_ppc32_linux-mmt_main.obj: mmt_main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_ppc32_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_ppc32_linux_CFLAGS) $(CFLAGS) -MT mmt_ppc32_linux-mmt_main.obj -MD -MP -MF $(DEPDIR)/mmt_ppc32_linux-mmt_main.Tpo -c -o mmt_ppc32_linux-mmt_main.obj `if test -f 'mmt_main.c'; then $(CYGPATH_W) 'mmt_main.c'; else $(CYGPATH_W) '$(srcdir)/mmt_main.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mmt_ppc32_linux-mmt_main.Tpo $(DEPDIR)/mmt_ppc32_linux-mmt_main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmt_main.c' object='mmt_ppc32_linux-mmt_main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_ppc32_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_ppc32_linux_CFLAGS) $(CFLAGS) -c -o mmt_ppc32_linux-mmt_main.obj `if test -f 'mmt_main.c'; then $(CYGPATH_W) 'mmt_main.c'; else $(CYGPATH_W) '$(srcdir)/mmt_main.c'; fi` + +mmt_ppc64_linux-mmt_main.o: mmt_main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_ppc64_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_ppc64_linux_CFLAGS) $(CFLAGS) -MT mmt_ppc64_linux-mmt_main.o -MD -MP -MF $(DEPDIR)/mmt_ppc64_linux-mmt_main.Tpo -c -o mmt_ppc64_linux-mmt_main.o `test -f 'mmt_main.c' || echo '$(srcdir)/'`mmt_main.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mmt_ppc64_linux-mmt_main.Tpo $(DEPDIR)/mmt_ppc64_linux-mmt_main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmt_main.c' object='mmt_ppc64_linux-mmt_main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_ppc64_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_ppc64_linux_CFLAGS) $(CFLAGS) -c -o mmt_ppc64_linux-mmt_main.o `test -f 'mmt_main.c' || echo '$(srcdir)/'`mmt_main.c + +mmt_ppc64_linux-mmt_main.obj: mmt_main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_ppc64_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_ppc64_linux_CFLAGS) $(CFLAGS) -MT mmt_ppc64_linux-mmt_main.obj -MD -MP -MF $(DEPDIR)/mmt_ppc64_linux-mmt_main.Tpo -c -o mmt_ppc64_linux-mmt_main.obj `if test -f 'mmt_main.c'; then $(CYGPATH_W) 'mmt_main.c'; else $(CYGPATH_W) '$(srcdir)/mmt_main.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mmt_ppc64_linux-mmt_main.Tpo $(DEPDIR)/mmt_ppc64_linux-mmt_main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmt_main.c' object='mmt_ppc64_linux-mmt_main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_ppc64_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_ppc64_linux_CFLAGS) $(CFLAGS) -c -o mmt_ppc64_linux-mmt_main.obj `if test -f 'mmt_main.c'; then $(CYGPATH_W) 'mmt_main.c'; else $(CYGPATH_W) '$(srcdir)/mmt_main.c'; fi` + +mmt_x86_linux-mmt_main.o: mmt_main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_x86_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_x86_linux_CFLAGS) $(CFLAGS) -MT mmt_x86_linux-mmt_main.o -MD -MP -MF $(DEPDIR)/mmt_x86_linux-mmt_main.Tpo -c -o mmt_x86_linux-mmt_main.o `test -f 'mmt_main.c' || echo '$(srcdir)/'`mmt_main.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mmt_x86_linux-mmt_main.Tpo $(DEPDIR)/mmt_x86_linux-mmt_main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmt_main.c' object='mmt_x86_linux-mmt_main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_x86_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_x86_linux_CFLAGS) $(CFLAGS) -c -o mmt_x86_linux-mmt_main.o `test -f 'mmt_main.c' || echo '$(srcdir)/'`mmt_main.c + +mmt_x86_linux-mmt_main.obj: mmt_main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_x86_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_x86_linux_CFLAGS) $(CFLAGS) -MT mmt_x86_linux-mmt_main.obj -MD -MP -MF $(DEPDIR)/mmt_x86_linux-mmt_main.Tpo -c -o mmt_x86_linux-mmt_main.obj `if test -f 'mmt_main.c'; then $(CYGPATH_W) 'mmt_main.c'; else $(CYGPATH_W) '$(srcdir)/mmt_main.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mmt_x86_linux-mmt_main.Tpo $(DEPDIR)/mmt_x86_linux-mmt_main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmt_main.c' object='mmt_x86_linux-mmt_main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmt_x86_linux_CPPFLAGS) $(CPPFLAGS) $(mmt_x86_linux_CFLAGS) $(CFLAGS) -c -o mmt_x86_linux-mmt_main.obj `if test -f 'mmt_main.c'; then $(CYGPATH_W) 'mmt_main.c'; else $(CYGPATH_W) '$(srcdir)/mmt_main.c'; fi` + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(PROGRAMS) all-local +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: install-exec-local + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am all-local check check-am clean clean-generic \ + clean-noinstPROGRAMS ctags ctags-recursive distclean \ + distclean-compile distclean-generic distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-exec-local install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-recursive uninstall uninstall-am + + +# The kludge that passes for vex's build system can't handle parallel +# builds. So, for the time being, serialise all Valgrind building. +# (this is equivalent to enforcing "make -j 1". +.NOTPARALLEL: + +install-exec-local: + if [ -n "$(noinst_PROGRAMS)" ] ; then \ + for f in $(noinst_PROGRAMS); do \ + p=`echo $$f | sed -e 's/^[^-]*-//' -e 's/\..*$$//'`; \ + n=`echo $$f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \ + $(mkinstalldirs) $(DESTDIR)$(valdir)/$$p; \ + $(INSTALL_PROGRAM) $$f $(DESTDIR)$(valdir)/$$p/$$n; \ + done ; \ + fi ; \ + if [ -n "$(noinst_LIBRARIES)" ] ; then \ + for f in $(noinst_LIBRARIES) expr_wont_match_me; do \ + if expr match $$f libcoregrind_ > /dev/null ; then \ + pU=`echo $$f | sed -e 's/libcoregrind_//g' -e 's/\.a//g'` ; \ + pD=`echo $$pU | sed -e 's/_/-/g'` ; \ + $(INSTALL_DATA) $$f $(DESTDIR)$(valdir)/$$pD/libcoregrind.a ; \ + $(INSTALL_DATA) @VEX_DIR@/libvex_$$pU.a $(DESTDIR)$(valdir)/$$pD/libvex.a ; \ + fi ; \ + done ; \ + fi +all-local: + for f in $(noinst_PROGRAMS); do \ + p=`echo $$f | sed -e 's/^[^-]*-//' -e 's/\..*$$//'`; \ + n=`echo $$f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \ + mkdir -p $(inplacedir)/$$p; \ + rm -f $(inplacedir)/$$p/$$n; \ + ln -f -s ../../$(subdir)/$$f $(inplacedir)/$$p/$$n; \ + done + +@VEX_DIR@/libvex_x86_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \ + libvex_x86_linux.a \ + EXTRA_CFLAGS="$(AM_CFLAGS_X86_LINUX) @FLAG_WDECL_AFTER_STMT@ \ + @FLAG_FNO_STACK_PROTECTOR@" + +@VEX_DIR@/libvex_amd64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \ + libvex_amd64_linux.a \ + EXTRA_CFLAGS="$(AM_CFLAGS_AMD64_LINUX) @FLAG_WDECL_AFTER_STMT@ \ + @FLAG_FNO_STACK_PROTECTOR@" + +@VEX_DIR@/libvex_ppc32_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \ + libvex_ppc32_linux.a \ + EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_LINUX) @FLAG_WDECL_AFTER_STMT@ \ + @FLAG_FNO_STACK_PROTECTOR@" + +@VEX_DIR@/libvex_ppc64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \ + libvex_ppc64_linux.a \ + EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_LINUX) @FLAG_WDECL_AFTER_STMT@ \ + @FLAG_FNO_STACK_PROTECTOR@" + +@VEX_DIR@/libvex_ppc32_aix5.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR) -X32" \ + libvex_ppc32_aix5.a \ + EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_AIX5) @FLAG_WDECL_AFTER_STMT@ \ + @FLAG_FNO_STACK_PROTECTOR@" + +@VEX_DIR@/libvex_ppc64_aix5.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR) -X64" \ + libvex_ppc64_aix5.a \ + EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_AIX5) @FLAG_WDECL_AFTER_STMT@ \ + @FLAG_FNO_STACK_PROTECTOR@" + +@VEX_DIR@/priv/main/vex_svnversion.h: + $(MAKE) -C @VEX_DIR@ CC="$(CC)" version +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: Index: mmt/mmt_main.c =================================================================== --- mmt/mmt_main.c (wersja 0) +++ mmt/mmt_main.c (wersja 0) @@ -0,0 +1,385 @@ +/* + * vim:sw=3 ts=3 sts=3 noexpandtab + */ + +/*--------------------------------------------------------------------*/ +/*--- mmaptrace: The mmaptracer tool. mmt_main.c ---*/ +/*--------------------------------------------------------------------*/ + +/* + Copyright (C) 2006 Dave Airlie + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307, USA. + + The GNU General Public License is contained in the file COPYING. +*/ + +#include "pub_tool_basics.h" +#include "pub_tool_libcprint.h" +#include "pub_tool_libcassert.h" +#include "pub_tool_tooliface.h" +#include "pub_tool_debuginfo.h" +#include "pub_tool_libcbase.h" +#include "pub_tool_options.h" +#include "pub_tool_machine.h" // VG_(fnptr_to_fnentry) + +#define MAX_ITEMS 100 + +static struct mmt_memmap { + Bool initialized; + Addr offset; + Addr addr; + SizeT len; +} mmt_gpu_reg[MAX_ITEMS]; + +static UInt current_item; + +static struct mmt_op { + Addr offset; + SizeT size; + UInt value; + ULong reps; + UInt store; +} last_op; + + +/* Command line options */ +UInt mmt_clo_offset = (UInt) -1; + +static struct mmt_memmap *find_mmap(Addr addr) +{ + struct mmt_memmap *ptr = NULL; + UInt i; + + for (i = 0; i < MAX_ITEMS; i++) { + ptr = &mmt_gpu_reg[i]; + + if (!ptr->initialized) { + /* since we cannot un-init entries in the array, + * we can return once we hit the first uninitialized + * item -- there can't be initialized items following it. + */ + return NULL; + } + + if ((addr > ptr->addr) && (addr < ptr->addr + ptr->len)) + return ptr; + } + + return NULL; +} + +static void +print_op(void) +{ + int i; + + if (last_op.reps > 5) { + VG_(printf)(" ... repeated %lu times total\n", last_op.reps); + } + else { + for (i = 0; i < last_op.reps; i++) { + VG_(printf)("%s: %p, %d, %p\n", last_op.store ? "store" : "load", + last_op.offset, last_op.size, last_op.value); + } + } +} + +static VG_REGPARM(2) void +trace_store(Addr addr, SizeT size, UInt value) +{ + struct mmt_memmap *ptr; + + ptr = find_mmap(addr); + if (!ptr) + return; + + if (last_op.offset != (addr - ptr->addr) || last_op.size != size || + last_op.value != value || !last_op.store) { + print_op(); + + last_op.offset = addr - ptr->addr; + last_op.size = size; + last_op.value = value; + last_op.store = 1; + last_op.reps = 1; + } + else { + last_op.reps++; + + if (last_op.reps % 1000 == 0) + VG_(printf)(" ... repeating: %d times\n", last_op.reps); + if (last_op.reps == ~0UL) + VG_(printf)(" ... overflow!\n"); + } +} + +static VG_REGPARM(2) void +trace_load(Addr addr, SizeT size) +{ + struct mmt_memmap *ptr; + UInt value; + + ptr = find_mmap(addr); + if (!ptr) + return; + + switch (size) { + case 1: + value = *(UChar*) addr; + break; + case 2: + value = *(UShort*) addr; + break; + case 4: + value = *(UInt*) addr; + break; + case 8: + value = *(ULong*) addr; + default: + return; + } + + if (last_op.offset != (addr - ptr->addr) || last_op.size != size || + last_op.value != value || last_op.store) { + print_op(); + + last_op.offset = addr - ptr->addr; + last_op.size = size; + last_op.value = value; + last_op.store = 0; + last_op.reps = 1; + } + else { + last_op.reps++; + + if (last_op.reps % 1000 == 0) + VG_(printf)(" ... repeating: %d times\n", last_op.reps); + if (last_op.reps == ~0UL) + VG_(printf)(" ... overflow!\n"); + } +} + +static void +handle_load(IRSB* bb, IRExpr* addr, Int size) +{ + IRExpr** argv = mkIRExprVec_2(addr, mkIRExpr_HWord(size)); + IRDirty* di = unsafeIRDirty_0_N(2, + "trace_load", + VG_(fnptr_to_fnentry)(trace_load), + argv); + addStmtToIRSB(bb, IRStmt_Dirty(di)); +} + +static void +handle_store(IRSB*bb, IRExpr* addr, Int size, IRExpr* data) +{ + IRExpr** argv = mkIRExprVec_3(addr, mkIRExpr_HWord(size), data); + IRDirty* di = unsafeIRDirty_0_N(2, + "trace_store", + VG_(fnptr_to_fnentry)(trace_store), + argv); + addStmtToIRSB(bb, IRStmt_Dirty(di)); +} + +static IRSB* +mmt_instrument(VgCallbackClosure* closure, + IRSB* bbIn, + VexGuestLayout* layout, + VexGuestExtents* vge, + IRType gWordTy, IRType hWordTy) +{ + IRSB* bbOut; + int i = 0; + + if (gWordTy != hWordTy) { + /* We don't currently support this case. */ + VG_(tool_panic)("host/guest word size mismatch"); + } + if (gWordTy != Ity_I32 && gWordTy != Ity_I64) { + VG_(tool_panic)("word size must be 32 or 64 bits"); + } + + /* Set up BB */ + bbOut = deepCopyIRSBExceptStmts(bbIn); + + /* Copy verbatim any IR preamble preceding the first IMark */ + while (i < bbIn->stmts_used && bbIn->stmts[i]->tag != Ist_IMark) { + addStmtToIRSB(bbOut, bbIn->stmts[i]); + i++; + } + + for (; i < bbIn->stmts_used; i++) { + IRStmt* st = bbIn->stmts[i]; + IRExpr* data_expr; + IRType arg_ty; + IRTemp t = IRTemp_INVALID; + IRStmt* cast = NULL; + + if (!st) + continue; + + if (st->tag == Ist_Store) { + arg_ty = typeOfIRExpr(bbIn->tyenv, st->Ist.Store.data); + + data_expr = st->Ist.Store.data; + + /* convert data_expr into a 64 bit value */ + switch (arg_ty) { + case Ity_I8: + if (gWordTy == Ity_I32) { + t = newIRTemp(bbOut->tyenv, Ity_I32); + cast = IRStmt_WrTmp(t, IRExpr_Unop(Iop_8Uto32, data_expr)); + } + else { + t = newIRTemp(bbOut->tyenv, Ity_I64); + cast = IRStmt_WrTmp(t, IRExpr_Unop(Iop_8Uto64, data_expr)); + } + break; + case Ity_I16: + if (gWordTy == Ity_I32) { + t = newIRTemp(bbOut->tyenv, Ity_I32); + cast = IRStmt_WrTmp(t, IRExpr_Unop(Iop_16Uto32, data_expr)); + } + else { + t = newIRTemp(bbOut->tyenv, Ity_I64); + cast = IRStmt_WrTmp(t, IRExpr_Unop(Iop_16Uto64, data_expr)); + } + break; + case Ity_I32: + if (gWordTy == Ity_I64) { + t = newIRTemp(bbOut->tyenv, Ity_I64); + cast = IRStmt_WrTmp(t, IRExpr_Unop(Iop_32Uto64, data_expr)); + } + break; + case Ity_I64: + if (gWordTy == Ity_I64) { + break; + } + default: + /* since we only support stores up to the guest word size, we + * will never have to evaluate the data_expr that this case + * generates. + */ + if (gWordTy == Ity_I32) { + t = newIRTemp(bbOut->tyenv, Ity_I32); + cast = IRStmt_WrTmp(t, IRExpr_Const (IRConst_U32 (0))); + } + else { + t = newIRTemp(bbOut->tyenv, Ity_I64); + cast = IRStmt_WrTmp(t, IRExpr_Const (IRConst_U64 (0))); + } + break; + } + + if (cast) { + addStmtToIRSB(bbOut, cast); + data_expr = IRExpr_RdTmp(t); + } + + handle_store(bbOut, st->Ist.Store.addr, + sizeofIRType(arg_ty), data_expr); + } else if (st->tag == Ist_WrTmp) { + data_expr = st->Ist.WrTmp.data; + + if (data_expr->tag == Iex_Load) { + handle_load(bbOut, data_expr->Iex.Load.addr, + sizeofIRType (data_expr->Iex.Load.ty)); + } + } + + addStmtToIRSB(bbOut, st); + } + + return bbOut; +} + +static Bool +mmt_process_cmd_line_option(Char* arg) +{ + /* FIXME: make this argument mandatory */ + VG_BHEX_CLO(arg, "--offset", mmt_clo_offset, 0, 0xffffffff) + else + return False; + + VG_(message)(Vg_UserMsg, "set offset to %lx\n", mmt_clo_offset); + + return True; +} + +static void +mmt_print_usage(void) +{ + VG_(printf)(" --offset= (number must be in decimal!)\n"); +} + +static void +mmt_print_debug_usage(void) +{ +} + +static void +mmt_new_mem_mmap(Addr a, SizeT len, Off64T offset, Bool rr, Bool ww, Bool xx) +{ + if (offset != mmt_clo_offset) + return; + + mmt_gpu_reg[current_item].offset = offset; + mmt_gpu_reg[current_item].addr = a; + mmt_gpu_reg[current_item].len = len; + mmt_gpu_reg[current_item].initialized = True; + current_item++; + + VG_(message)(Vg_UserMsg, "got new mmap for %p, len %d, offset %p\n", a, len, offset); +} + +static void +mmt_fini(Int exitcode) +{ +} + +static void mmt_post_clo_init(void) +{ +} + +static void +mmt_pre_clo_init(void) +{ + VG_(details_name) ("mmaptrace"); + VG_(details_version) (NULL); + VG_(details_description) ("an MMAP tracer"); + VG_(details_copyright_author)( + "Copyright (C) 2006, and GNU GPL'd, by Dave Airlie."); + VG_(details_bug_reports_to) (VG_BUGS_TO); + + VG_(basic_tool_funcs) (mmt_post_clo_init, + mmt_instrument, + mmt_fini); + + VG_(needs_command_line_options)(mmt_process_cmd_line_option, + mmt_print_usage, + mmt_print_debug_usage); + + VG_(track_new_mem_mmap) (mmt_new_mem_mmap); + + last_op.offset = 0; + last_op.size = 0; + last_op.value = 0; + last_op.store = 0; + last_op.reps = 0; +} + +VG_DETERMINE_INTERFACE_VERSION(mmt_pre_clo_init) Index: mmt/docs/Makefile.in =================================================================== --- mmt/docs/Makefile.in (wersja 0) +++ mmt/docs/Makefile.in (wersja 0) @@ -0,0 +1,331 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = mmt/docs +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_SUPP = @DEFAULT_SUPP@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@ +FLAG_M32 = @FLAG_M32@ +FLAG_M64 = @FLAG_M64@ +FLAG_MAIX32 = @FLAG_MAIX32@ +FLAG_MAIX64 = @FLAG_MAIX64@ +FLAG_MMMX = @FLAG_MMMX@ +FLAG_MSSE = @FLAG_MSSE@ +FLAG_WDECL_AFTER_STMT = @FLAG_WDECL_AFTER_STMT@ +GDB = @GDB@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MPI_CC = @MPI_CC@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PREFERRED_STACK_BOUNDARY = @PREFERRED_STACK_BOUNDARY@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VALT_LOAD_ADDRESS = @VALT_LOAD_ADDRESS@ +VERSION = @VERSION@ +VEX_DIR = @VEX_DIR@ +VG_ARCH = @VG_ARCH@ +VG_ARCH_ALL = @VG_ARCH_ALL@ +VG_OS = @VG_OS@ +VG_PLATFORM_PRI = @VG_PLATFORM_PRI@ +VG_PLATFORM_SEC = @VG_PLATFORM_SEC@ +XMKMF = @XMKMF@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mmt/docs/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu mmt/docs/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: Index: mmt/docs/Makefile.am =================================================================== Index: mmt/Makefile.am =================================================================== --- mmt/Makefile.am (wersja 0) +++ mmt/Makefile.am (wersja 0) @@ -0,0 +1,47 @@ +include $(top_srcdir)/Makefile.tool.am + +noinst_PROGRAMS = +if VGP_X86_LINUX +noinst_PROGRAMS += mmt-x86-linux +endif +if VGP_AMD64_LINUX +noinst_PROGRAMS += mmt-amd64-linux +endif +if VGP_PPC32_LINUX +noinst_PROGRAMS += mmt-ppc32-linux +endif +if VGP_PPC64_LINUX +noinst_PROGRAMS += mmt-ppc64-linux +endif + +MMT_SOURCES_COMMON = mmt_main.c + +mmt_x86_linux_SOURCES = $(MMT_SOURCES_COMMON) +mmt_x86_linux_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX) +mmt_x86_linux_CFLAGS = $(AM_CFLAGS_X86_LINUX) +mmt_x86_linux_DEPENDENCIES = $(COREGRIND_LIBS_X86_LINUX) +mmt_x86_linux_LDADD = $(TOOL_LDADD_X86_LINUX) +mmt_x86_linux_LDFLAGS = $(TOOL_LDFLAGS_X86_LINUX) + +mmt_amd64_linux_SOURCES = $(MMT_SOURCES_COMMON) +mmt_amd64_linux_CPPFLAGS = $(AM_CPPFLAGS_AMD64_LINUX) +mmt_amd64_linux_CFLAGS = $(AM_CFLAGS_AMD64_LINUX) +mmt_amd64_linux_DEPENDENCIES = $(COREGRIND_LIBS_AMD64_LINUX) +mmt_amd64_linux_LDADD = $(TOOL_LDADD_AMD64_LINUX) +mmt_amd64_linux_LDFLAGS = $(TOOL_LDFLAGS_AMD64_LINUX) + +mmt_ppc32_linux_SOURCES = $(MMT_SOURCES_COMMON) +mmt_ppc32_linux_CPPFLAGS = $(AM_CPPFLAGS_PPC32_LINUX) +mmt_ppc32_linux_CFLAGS = $(AM_CFLAGS_PPC32_LINUX) +mmt_ppc32_linux_DEPENDENCIES = $(COREGRIND_LIBS_PPC32_LINUX) +mmt_ppc32_linux_LDADD = $(TOOL_LDADD_PPC32_LINUX) +mmt_ppc32_linux_LDFLAGS = $(TOOL_LDFLAGS_PPC32_LINUX) + +mmt_ppc64_linux_SOURCES = $(MMT_SOURCES_COMMON) +mmt_ppc64_linux_CPPFLAGS = $(AM_CPPFLAGS_PPC64_LINUX) +mmt_ppc64_linux_CFLAGS = $(AM_CFLAGS_PPC64_LINUX) +mmt_ppc64_linux_DEPENDENCIES = $(COREGRIND_LIBS_PPC64_LINUX) +mmt_ppc64_linux_LDADD = $(TOOL_LDADD_PPC64_LINUX) +mmt_ppc64_linux_LDFLAGS = $(TOOL_LDFLAGS_PPC64_LINUX) + +mmtincludedir = $(includedir)/valgrind Index: Makefile.am =================================================================== --- Makefile.am (wersja 7034) +++ Makefile.am (kopia robocza) @@ -8,6 +8,7 @@ callgrind \ massif \ lackey \ + mmt \ none # Temporary: we want to compile Helgrind, but not regtest it. Index: coregrind/m_libcbase.c =================================================================== --- coregrind/m_libcbase.c (wersja 7034) +++ coregrind/m_libcbase.c (kopia robocza) @@ -90,6 +90,26 @@ return n; } +Long VG_(strtoll) ( Char* str, Char **endptr, Int base ) +{ + Bool neg = False; + Long n = 0; + if (*str == '-') { str++; neg = True; }; + if (base == 16 && *str == '0' && *(str + 1) == 'x') { str += 2; } + while ((*str >= '0' && *str <= '9') || (*str >= 'a' && *str <= 'f')) { + n = base * n; + if (*str <= '9') + n += (*str - '0'); + else + n += (*str - 'a' + 10); + str++; + } + if (neg) n = -n; + if (endptr) + *endptr = str; + return n; +} + Long VG_(atoll36) ( Char* str ) { Bool neg = False; Index: coregrind/m_syswrap/syswrap-generic.c =================================================================== --- coregrind/m_syswrap/syswrap-generic.c (wersja 7034) +++ coregrind/m_syswrap/syswrap-generic.c (kopia robocza) @@ -160,7 +160,7 @@ ww = toBool(prot & VKI_PROT_WRITE); xx = toBool(prot & VKI_PROT_EXEC); - VG_TRACK( new_mem_mmap, a, len, rr, ww, xx ); + VG_TRACK( new_mem_mmap, a, len, offset, rr, ww, xx ); if (d) VG_(discard_translations)( (Addr64)a, (ULong)len, @@ -303,7 +303,7 @@ VG_TRACK( copy_mem_remap, old_addr, new_addr, MIN_SIZET(old_len,new_len) ); if (new_len > old_len) - VG_TRACK( new_mem_mmap, new_addr+old_len, new_len-old_len, + VG_TRACK( new_mem_mmap, new_addr+old_len, new_len-old_len, 0, old_seg->hasR, old_seg->hasW, old_seg->hasX ); VG_TRACK(die_mem_munmap, old_addr, old_len); if (d) { @@ -345,7 +345,7 @@ if (ok && advised == needA) { ok = VG_(am_extend_map_client)( &d, (NSegment*)old_seg, needL ); if (ok) { - VG_TRACK( new_mem_mmap, needA, needL, + VG_TRACK( new_mem_mmap, needA, needL, 0, old_seg->hasR, old_seg->hasW, old_seg->hasX ); if (d) @@ -366,7 +366,7 @@ VG_TRACK( copy_mem_remap, old_addr, advised, MIN_SIZET(old_len,new_len) ); if (new_len > old_len) - VG_TRACK( new_mem_mmap, advised+old_len, new_len-old_len, + VG_TRACK( new_mem_mmap, advised+old_len, new_len-old_len, 0, old_seg->hasR, old_seg->hasW, old_seg->hasX ); VG_TRACK(die_mem_munmap, old_addr, old_len); if (d) { @@ -405,7 +405,7 @@ ok = VG_(am_extend_map_client)( &d, (NSegment*)old_seg, needL ); if (!ok) goto eNOMEM; - VG_TRACK( new_mem_mmap, needA, needL, + VG_TRACK( new_mem_mmap, needA, needL, 0, old_seg->hasR, old_seg->hasW, old_seg->hasX ); if (d) VG_(discard_translations)( needA, needL, "do_remap(6)" ); @@ -1694,7 +1694,7 @@ /* we don't distinguish whether it's read-only or * read-write -- it doesn't matter really. */ - VG_TRACK( new_mem_mmap, res, segmentSize, True, True, False ); + VG_TRACK( new_mem_mmap, res, segmentSize, 0, True, True, False ); if (d) VG_(discard_translations)( (Addr64)res, (ULong)VG_PGROUNDUP(segmentSize), Index: coregrind/m_tooliface.c =================================================================== --- coregrind/m_tooliface.c (wersja 7034) +++ coregrind/m_tooliface.c (kopia robocza) @@ -287,7 +287,7 @@ DEF(track_new_mem_startup, Addr, SizeT, Bool, Bool, Bool) DEF(track_new_mem_stack_signal, Addr, SizeT) DEF(track_new_mem_brk, Addr, SizeT) -DEF(track_new_mem_mmap, Addr, SizeT, Bool, Bool, Bool) +DEF(track_new_mem_mmap, Addr, SizeT, Off64T, Bool, Bool, Bool) DEF(track_copy_mem_remap, Addr, Addr, SizeT) DEF(track_change_mem_mprotect, Addr, SizeT, Bool, Bool, Bool) Index: coregrind/pub_core_tooliface.h =================================================================== --- coregrind/pub_core_tooliface.h (wersja 7034) +++ coregrind/pub_core_tooliface.h (kopia robocza) @@ -163,7 +163,7 @@ void (*track_new_mem_startup) (Addr, SizeT, Bool, Bool, Bool); void (*track_new_mem_stack_signal)(Addr, SizeT); void (*track_new_mem_brk) (Addr, SizeT); - void (*track_new_mem_mmap) (Addr, SizeT, Bool, Bool, Bool); + void (*track_new_mem_mmap) (Addr, SizeT, Off64T, Bool, Bool, Bool); void (*track_copy_mem_remap) (Addr src, Addr dst, SizeT); void (*track_change_mem_mprotect) (Addr, SizeT, Bool, Bool, Bool);