mirror of
https://github.com/ioacademy-jikim/debugging
synced 2026-08-30 09:19:28 +00:00
first commit
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1,986 @@
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# exp-bbv/tests/amd64-linux/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994-2013 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.
|
||||
|
||||
|
||||
|
||||
# This file is used for tool tests, and also in perf/Makefile.am.
|
||||
|
||||
# This file should be included (directly or indirectly) by every
|
||||
# Makefile.am that builds programs. And also the top-level Makefile.am.
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Global stuff
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
|
||||
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/valgrind
|
||||
pkgincludedir = $(includedir)/valgrind
|
||||
pkglibdir = $(libdir)/valgrind
|
||||
pkglibexecdir = $(libexecdir)/valgrind
|
||||
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 = i686-pc-linux-gnu
|
||||
host_triplet = i686-pc-linux-gnu
|
||||
DIST_COMMON = $(top_srcdir)/Makefile.tool-tests.am \
|
||||
$(top_srcdir)/Makefile.all.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/Makefile.am $(dist_noinst_SCRIPTS) \
|
||||
$(top_srcdir)/depcomp
|
||||
#am__append_1 = -Wno-cast-align -Wno-self-assign \
|
||||
# -Wno-tautological-compare
|
||||
|
||||
#am__append_2 = -Wl,-M,$(top_srcdir)/solaris/vgpreload-solaris.mapfile
|
||||
|
||||
# The Android toolchain includes all kinds of stdlib helpers present in
|
||||
# bionic which is bad because we are not linking with it and the Android
|
||||
# linker will panic.
|
||||
#am__append_3 = -nostdlib
|
||||
#am__append_4 = -DVGA_SEC_=1 \
|
||||
# -DVGP_SEC_x86_linux=1
|
||||
|
||||
|
||||
# Make sure that all test programs have threaded errno.
|
||||
#am__append_5 = -D_REENTRANT
|
||||
#am__append_6 = -Wno-format-extra-args \
|
||||
# -Wno-literal-range \
|
||||
# -Wno-tautological-constant-out-of-range-compare \
|
||||
# -Wno-self-assign -Wno-string-plus-int \
|
||||
# -Wno-uninitialized -Wno-unused-value # \
|
||||
# clang 3.0.0
|
||||
#am__append_7 = -Wno-unused-private-field # drd/tests/tsan_unittest.cpp
|
||||
check_PROGRAMS = million$(EXEEXT) rep_prefix$(EXEEXT) \
|
||||
fldcw_check$(EXEEXT) complex_rep$(EXEEXT) clone_test$(EXEEXT) \
|
||||
$(am__EXEEXT_1)
|
||||
|
||||
# To compile the ll testcase, the compiler needs to support -Xassembler
|
||||
# ICC does not do that
|
||||
am__append_8 = -Xassembler -I$(top_srcdir)/exp-bbv/tests
|
||||
am__append_9 = ll
|
||||
subdir = exp-bbv/tests/amd64-linux
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__EXEEXT_1 = ll$(EXEEXT)
|
||||
am_clone_test_OBJECTS = clone_test.$(OBJEXT)
|
||||
clone_test_OBJECTS = $(am_clone_test_OBJECTS)
|
||||
clone_test_LDADD = $(LDADD)
|
||||
am_complex_rep_OBJECTS = complex_rep.$(OBJEXT)
|
||||
complex_rep_OBJECTS = $(am_complex_rep_OBJECTS)
|
||||
complex_rep_LDADD = $(LDADD)
|
||||
am_fldcw_check_OBJECTS = fldcw_check.$(OBJEXT)
|
||||
fldcw_check_OBJECTS = $(am_fldcw_check_OBJECTS)
|
||||
fldcw_check_LDADD = $(LDADD)
|
||||
am__ll_SOURCES_DIST = ll.S
|
||||
am_ll_OBJECTS = ll.$(OBJEXT)
|
||||
ll_OBJECTS = $(am_ll_OBJECTS)
|
||||
ll_LDADD = $(LDADD)
|
||||
am_million_OBJECTS = million.$(OBJEXT)
|
||||
million_OBJECTS = $(am_million_OBJECTS)
|
||||
million_LDADD = $(LDADD)
|
||||
am_rep_prefix_OBJECTS = rep_prefix.$(OBJEXT)
|
||||
rep_prefix_OBJECTS = $(am_rep_prefix_OBJECTS)
|
||||
rep_prefix_LDADD = $(LDADD)
|
||||
SCRIPTS = $(dist_noinst_SCRIPTS)
|
||||
AM_V_P = $(am__v_P_$(V))
|
||||
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
|
||||
AM_V_CPPAS = $(am__v_CPPAS_$(V))
|
||||
am__v_CPPAS_ = $(am__v_CPPAS_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_CPPAS_0 = @echo " CPPAS " $@;
|
||||
am__v_CPPAS_1 =
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
AM_V_CC = $(am__v_CC_$(V))
|
||||
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_CC_0 = @echo " CC " $@;
|
||||
am__v_CC_1 =
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
AM_V_CCLD = $(am__v_CCLD_$(V))
|
||||
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||
am__v_CCLD_1 =
|
||||
SOURCES = $(clone_test_SOURCES) $(complex_rep_SOURCES) \
|
||||
$(fldcw_check_SOURCES) $(ll_SOURCES) $(million_SOURCES) \
|
||||
$(rep_prefix_SOURCES)
|
||||
DIST_SOURCES = $(clone_test_SOURCES) $(complex_rep_SOURCES) \
|
||||
$(fldcw_check_SOURCES) $(am__ll_SOURCES_DIST) \
|
||||
$(million_SOURCES) $(rep_prefix_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = ${SHELL} /root/03_day/valgrind-3.11.0/missing aclocal-1.14
|
||||
AMTAR = $${TAR-tar}
|
||||
AM_DEFAULT_VERBOSITY = 1
|
||||
AR = /usr/bin/ar
|
||||
AUTOCONF = ${SHELL} /root/03_day/valgrind-3.11.0/missing autoconf
|
||||
AUTOHEADER = ${SHELL} /root/03_day/valgrind-3.11.0/missing autoheader
|
||||
AUTOMAKE = ${SHELL} /root/03_day/valgrind-3.11.0/missing automake-1.14
|
||||
AWK = gawk
|
||||
BOOST_CFLAGS =
|
||||
BOOST_LIBS =
|
||||
CC = gcc
|
||||
CCAS = gcc
|
||||
CCASDEPMODE = depmode=gcc3
|
||||
CCASFLAGS =
|
||||
CCDEPMODE = depmode=gcc3
|
||||
CFLAGS =
|
||||
CFLAGS_MPI = -g -O -fno-omit-frame-pointer -Wall -fpic
|
||||
CPP = gcc -E
|
||||
CPPFLAGS =
|
||||
CXX = g++
|
||||
CXXDEPMODE = depmode=gcc3
|
||||
CXXFLAGS =
|
||||
CYGPATH_W = echo
|
||||
DEFAULT_SUPP = exp-sgcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.X.supp
|
||||
DEFS = -DHAVE_CONFIG_H
|
||||
DEPDIR = .deps
|
||||
DIFF = diff -u
|
||||
DIS_PATH =
|
||||
ECHO_C =
|
||||
ECHO_N = -n
|
||||
ECHO_T =
|
||||
EGREP = /bin/grep -E
|
||||
EXEEXT =
|
||||
FLAG_FNO_IPA_ICF = -fno-ipa-icf
|
||||
FLAG_FNO_STACK_PROTECTOR = -fno-stack-protector
|
||||
FLAG_FSANITIZE =
|
||||
FLAG_M32 = -m32
|
||||
FLAG_M64 = -m64
|
||||
FLAG_MIPS32 =
|
||||
FLAG_MIPS64 =
|
||||
FLAG_MLONG_DOUBLE_128 = -mlong-double-128
|
||||
FLAG_MMMX = -mmmx
|
||||
FLAG_MSSE = -msse
|
||||
FLAG_NO_BUILD_ID =
|
||||
FLAG_OCTEON =
|
||||
FLAG_OCTEON2 =
|
||||
FLAG_T_TEXT = -Ttext-segment
|
||||
FLAG_UNLIMITED_INLINE_UNIT_GROWTH = --param inline-unit-growth=900
|
||||
FLAG_W_CAST_ALIGN = -Wcast-align
|
||||
FLAG_W_CAST_QUAL = -Wcast-qual
|
||||
FLAG_W_EMPTY_BODY = -Wempty-body
|
||||
FLAG_W_EXTRA = -Wextra
|
||||
FLAG_W_FORMAT = -Wformat
|
||||
FLAG_W_FORMAT_SECURITY = -Wformat-security
|
||||
FLAG_W_FORMAT_SIGNEDNESS =
|
||||
FLAG_W_IGNORED_QUALIFIERS = -Wignored-qualifiers
|
||||
FLAG_W_MISSING_PARAMETER_TYPE = -Wmissing-parameter-type
|
||||
FLAG_W_NO_INFINITE_RECURSION =
|
||||
FLAG_W_NO_MEMSET_TRANSPOSED_ARGS = -Wno-memset-transposed-args
|
||||
FLAG_W_NO_MISMATCHED_NEW_DELETE =
|
||||
FLAG_W_NO_NONNULL = -Wno-nonnull
|
||||
FLAG_W_NO_OVERFLOW = -Wno-overflow
|
||||
FLAG_W_NO_POINTER_SIGN = -Wno-pointer-sign
|
||||
FLAG_W_NO_STATIC_LOCAL_IN_INLINE =
|
||||
FLAG_W_NO_UNINITIALIZED = -Wno-uninitialized
|
||||
FLAG_W_NO_UNUSED_FUNCTION = -Wno-unused-function
|
||||
FLAG_W_OLD_STYLE_DECLARATION = -Wold-style-declaration
|
||||
FLAG_W_WRITE_STRINGS = -Wwrite-strings
|
||||
GDB = /usr/bin/gdb
|
||||
GLIBC_VERSION = 2.21
|
||||
GREP = /bin/grep
|
||||
HWCAP_HAS_ALTIVEC =
|
||||
HWCAP_HAS_DFP =
|
||||
HWCAP_HAS_HTM =
|
||||
HWCAP_HAS_ISA_2_05 =
|
||||
HWCAP_HAS_ISA_2_06 =
|
||||
HWCAP_HAS_ISA_2_07 =
|
||||
HWCAP_HAS_VSX =
|
||||
INSTALL = /usr/bin/install -c
|
||||
INSTALL_DATA = ${INSTALL} -m 644
|
||||
INSTALL_PROGRAM = ${INSTALL}
|
||||
INSTALL_SCRIPT = ${INSTALL}
|
||||
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
|
||||
LDFLAGS = -nostartfiles -nodefaultlibs
|
||||
LDFLAGS_MPI = -fpic -shared
|
||||
LIBOBJS =
|
||||
LIBS =
|
||||
LIB_UBSAN =
|
||||
LN_S = ln -s
|
||||
LTLIBOBJS =
|
||||
MAINT = #
|
||||
MAKEINFO = ${SHELL} /root/03_day/valgrind-3.11.0/missing makeinfo
|
||||
MKDIR_P = /bin/mkdir -p
|
||||
MPI_CC = mpicc
|
||||
OBJEXT = o
|
||||
PACKAGE = valgrind
|
||||
PACKAGE_BUGREPORT = valgrind-users@lists.sourceforge.net
|
||||
PACKAGE_NAME = Valgrind
|
||||
PACKAGE_STRING = Valgrind 3.11.0
|
||||
PACKAGE_TARNAME = valgrind
|
||||
PACKAGE_URL =
|
||||
PACKAGE_VERSION = 3.11.0
|
||||
PATH_SEPARATOR = :
|
||||
PERL = /usr/bin/perl
|
||||
PREFERRED_STACK_BOUNDARY_2 = -mpreferred-stack-boundary=2
|
||||
RANLIB = ranlib
|
||||
SED = /bin/sed
|
||||
SET_MAKE =
|
||||
SHELL = /bin/bash
|
||||
STRIP =
|
||||
VALT_LOAD_ADDRESS_PRI = 0x38000000
|
||||
VALT_LOAD_ADDRESS_SEC = 0xUNSET
|
||||
VERSION = 3.11.0
|
||||
VGCONF_ARCH_PRI = x86
|
||||
VGCONF_ARCH_SEC =
|
||||
VGCONF_OS = linux
|
||||
VGCONF_PLATFORM_PRI_CAPS = X86_LINUX
|
||||
VGCONF_PLATFORM_SEC_CAPS =
|
||||
VGCONF_PLATVARIANT = vanilla
|
||||
VG_TMPDIR = /tmp
|
||||
abs_builddir = /root/03_day/valgrind-3.11.0/exp-bbv/tests/amd64-linux
|
||||
abs_srcdir = /root/03_day/valgrind-3.11.0/exp-bbv/tests/amd64-linux
|
||||
abs_top_builddir = /root/03_day/valgrind-3.11.0
|
||||
abs_top_srcdir = /root/03_day/valgrind-3.11.0
|
||||
ac_ct_CC = gcc
|
||||
ac_ct_CXX = g++
|
||||
am__include = include
|
||||
am__leading_dot = .
|
||||
am__quote =
|
||||
am__tar = $${TAR-tar} chof - "$$tardir"
|
||||
am__untar = $${TAR-tar} xf -
|
||||
bindir = ${exec_prefix}/bin
|
||||
build = i686-pc-linux-gnu
|
||||
build_alias =
|
||||
build_cpu = i686
|
||||
build_os = linux-gnu
|
||||
build_vendor = pc
|
||||
builddir = .
|
||||
datadir = ${datarootdir}
|
||||
datarootdir = ${prefix}/share
|
||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
|
||||
dvidir = ${docdir}
|
||||
exec_prefix = ${prefix}
|
||||
host = i686-pc-linux-gnu
|
||||
host_alias =
|
||||
host_cpu = i686
|
||||
host_os = linux-gnu
|
||||
host_vendor = pc
|
||||
htmldir = ${docdir}
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${datarootdir}/info
|
||||
install_sh = ${SHELL} /root/03_day/valgrind-3.11.0/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
localedir = ${datarootdir}/locale
|
||||
localstatedir = ${prefix}/var
|
||||
mandir = ${datarootdir}/man
|
||||
mkdir_p = $(MKDIR_P)
|
||||
oldincludedir = /usr/include
|
||||
pdfdir = ${docdir}
|
||||
prefix = /usr/local
|
||||
program_transform_name = s,x,x,
|
||||
psdir = ${docdir}
|
||||
sbindir = ${exec_prefix}/sbin
|
||||
sharedstatedir = ${prefix}/com
|
||||
srcdir = .
|
||||
sysconfdir = ${prefix}/etc
|
||||
target_alias =
|
||||
top_build_prefix = ../../../
|
||||
top_builddir = ../../..
|
||||
top_srcdir = ../../..
|
||||
inplacedir = $(top_builddir)/.in_place
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Flags
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# Baseline flags for all compilations. Aim here is to maximise
|
||||
# performance and get whatever useful warnings we can out of gcc.
|
||||
# -fno-builtin is important for defeating LLVM's idiom recognition
|
||||
# that somehow causes VG_(memset) to get into infinite recursion.
|
||||
AM_CFLAGS_BASE = -O2 -g -std=gnu99 -Wall -Wmissing-prototypes -Wshadow \
|
||||
-Wpointer-arith -Wstrict-prototypes -Wmissing-declarations \
|
||||
-Wcast-align -Wcast-qual -Wwrite-strings \
|
||||
-Wempty-body -Wformat \
|
||||
-Wformat-security -Wignored-qualifiers \
|
||||
-Wmissing-parameter-type -Wold-style-declaration \
|
||||
-fno-stack-protector \
|
||||
-fno-strict-aliasing -fno-builtin $(am__append_1)
|
||||
AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
|
||||
-fpic -fno-builtin -fno-ipa-icf
|
||||
|
||||
|
||||
# These flags are used for building the preload shared objects (PSOs).
|
||||
# The aim is to give reasonable performance but also to have good
|
||||
# stack traces, since users often see stack traces extending
|
||||
# into (and through) the preloads. Also, we must use any
|
||||
# -mpreferred-stack-boundary flag to build the preload shared
|
||||
# objects, since that risks misaligning the client's stack and
|
||||
# results in segfaults like (eg) #324050.
|
||||
#AM_CFLAGS_PSO_BASE = -dynamic \
|
||||
# -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
|
||||
# -fpic -fPIC -fno-builtin -fno-ipa-icf
|
||||
|
||||
|
||||
# Flags for specific targets.
|
||||
#
|
||||
# Nb: the AM_CPPFLAGS_* values are suitable for building tools and auxprogs.
|
||||
# For building the core, coregrind/Makefile.am files add some extra things.
|
||||
AM_CPPFLAGS_X86_LINUX = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/VEX/pub \
|
||||
-I$(top_builddir)/VEX/pub \
|
||||
-DVGA_x86=1 \
|
||||
-DVGO_linux=1 \
|
||||
-DVGP_x86_linux=1 \
|
||||
-DVGPV_x86_linux_vanilla=1
|
||||
|
||||
#AM_CPPFLAGS_ = \
|
||||
# -I$(top_srcdir) \
|
||||
# -I$(top_srcdir)/include \
|
||||
# -I$(top_srcdir)/VEX/pub \
|
||||
# -I$(top_builddir)/VEX/pub \
|
||||
# -DVGA_=1 \
|
||||
# -DVGO_linux=1 \
|
||||
# -DVGP__linux=1 \
|
||||
# -DVGPV__linux_vanilla=1
|
||||
|
||||
AM_FLAG_M3264_X86_LINUX = -m32
|
||||
AM_CFLAGS_X86_LINUX = -m32 -mpreferred-stack-boundary=2 \
|
||||
$(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
|
||||
AM_CFLAGS_PSO_X86_LINUX = -m32 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_X86_LINUX = -m32 -g
|
||||
AM_FLAG_M3264_AMD64_LINUX = -m64
|
||||
AM_CFLAGS_AMD64_LINUX = -m64 \
|
||||
$(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
|
||||
AM_CFLAGS_PSO_AMD64_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_AMD64_LINUX = -m64 -g
|
||||
AM_FLAG_M3264_PPC32_LINUX = -m32
|
||||
AM_CFLAGS_PPC32_LINUX = -m32 $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_PPC32_LINUX = -m32 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_PPC32_LINUX = -m32 -g
|
||||
AM_FLAG_M3264_PPC64BE_LINUX = -m64
|
||||
AM_CFLAGS_PPC64BE_LINUX = -m64 $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_PPC64BE_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_PPC64BE_LINUX = -m64 -g
|
||||
AM_FLAG_M3264_PPC64LE_LINUX = -m64
|
||||
AM_CFLAGS_PPC64LE_LINUX = -m64 $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_PPC64LE_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_PPC64LE_LINUX = -m64 -g
|
||||
AM_FLAG_M3264_ARM_LINUX = -m32
|
||||
AM_CFLAGS_ARM_LINUX = -m32 \
|
||||
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
|
||||
|
||||
AM_CFLAGS_PSO_ARM_LINUX = -m32 $(AM_CFLAGS_BASE) \
|
||||
-marm -mcpu=cortex-a8 $(AM_CFLAGS_PSO_BASE)
|
||||
|
||||
AM_CCASFLAGS_ARM_LINUX = -m32 \
|
||||
-marm -mcpu=cortex-a8 -g
|
||||
|
||||
AM_FLAG_M3264_ARM64_LINUX = -m64
|
||||
AM_CFLAGS_ARM64_LINUX = -m64 $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_ARM64_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_ARM64_LINUX = -m64 -g
|
||||
AM_FLAG_M3264_X86_DARWIN = -arch i386
|
||||
AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \
|
||||
-mmacosx-version-min=10.5 \
|
||||
-fno-stack-protector -fno-pic -fno-PIC
|
||||
|
||||
AM_CFLAGS_PSO_X86_DARWIN = $(AM_CFLAGS_X86_DARWIN) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_X86_DARWIN = -arch i386 -g
|
||||
AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64
|
||||
AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \
|
||||
-mmacosx-version-min=10.5 -fno-stack-protector
|
||||
|
||||
AM_CFLAGS_PSO_AMD64_DARWIN = $(AM_CFLAGS_AMD64_DARWIN) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_AMD64_DARWIN = -arch x86_64 -g
|
||||
AM_FLAG_M3264_S390X_LINUX = -m64
|
||||
AM_CFLAGS_S390X_LINUX = -m64 $(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
AM_CFLAGS_PSO_S390X_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_S390X_LINUX = -m64 -g -mzarch -march=z900
|
||||
AM_FLAG_M3264_MIPS32_LINUX = -m32
|
||||
AM_CFLAGS_MIPS32_LINUX = -m32 $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_MIPS32_LINUX = -m32 $(AM_CFLAGS_BASE) \
|
||||
$(AM_CFLAGS_PSO_BASE)
|
||||
|
||||
AM_CCASFLAGS_MIPS32_LINUX = -m32 -g
|
||||
AM_FLAG_M3264_MIPS64_LINUX = -m64
|
||||
AM_CFLAGS_MIPS64_LINUX = -m64 $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_MIPS64_LINUX = -m64 $(AM_CFLAGS_BASE) \
|
||||
$(AM_CFLAGS_PSO_BASE)
|
||||
|
||||
AM_CCASFLAGS_MIPS64_LINUX = -m64 -g
|
||||
AM_CFLAGS_TILEGX_LINUX = -m64 $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_TILEGX_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_FLAG_M3264_X86_SOLARIS = -m32
|
||||
AM_CFLAGS_X86_SOLARIS = -m32 -mpreferred-stack-boundary=2 \
|
||||
$(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
|
||||
AM_CFLAGS_PSO_X86_SOLARIS = -m32 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_X86_SOLARIS = -m32 -g -D_ASM
|
||||
AM_FLAG_M3264_AMD64_SOLARIS = -m64
|
||||
AM_CFLAGS_AMD64_SOLARIS = -m64 \
|
||||
$(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
|
||||
AM_CFLAGS_PSO_AMD64_SOLARIS = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_AMD64_SOLARIS = -m64 -g -D_ASM
|
||||
|
||||
# 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_X86_LINUX)
|
||||
AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_X86_LINUX)
|
||||
AM_CFLAGS_PRI = $(AM_CFLAGS_X86_LINUX)
|
||||
AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_X86_LINUX)
|
||||
AM_FLAG_M3264_SEC =
|
||||
#AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_)
|
||||
|
||||
# Baseline link flags for making vgpreload shared objects.
|
||||
#
|
||||
PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared \
|
||||
-Wl,-z,interpose,-z,initfirst $(am__append_3)
|
||||
PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load
|
||||
PRELOAD_LDFLAGS_COMMON_SOLARIS = -nodefaultlibs -shared \
|
||||
-Wl,-z,interpose,-z,initfirst $(am__append_2)
|
||||
PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m32
|
||||
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
|
||||
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m32
|
||||
PRELOAD_LDFLAGS_PPC64BE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
|
||||
PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
|
||||
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m32
|
||||
PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
|
||||
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
|
||||
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
|
||||
PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
|
||||
PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m32
|
||||
PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
|
||||
PRELOAD_LDFLAGS_TILEGX_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
|
||||
PRELOAD_LDFLAGS_X86_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) -m32
|
||||
PRELOAD_LDFLAGS_AMD64_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) -m64
|
||||
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/coregrind -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/VEX/pub -I$(top_builddir)/VEX/pub \
|
||||
-DVGA_x86=1 -DVGO_linux=1 \
|
||||
-DVGP_x86_linux=1 \
|
||||
-DVGPV_x86_linux_vanilla=1 \
|
||||
$(am__append_4)
|
||||
|
||||
# Nb: Tools need to augment these flags with an arch-selection option, such
|
||||
# as $(AM_FLAG_M3264_PRI).
|
||||
AM_CFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
|
||||
-fno-stack-protector $(am__append_5) $(am__append_6)
|
||||
AM_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
|
||||
-fno-stack-protector $(am__append_7)
|
||||
# Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
|
||||
# automake; see comments in Makefile.all.am for more detail.
|
||||
AM_CCASFLAGS = $(AM_CPPFLAGS) -ffreestanding $(am__append_8)
|
||||
#noinst_DSYMS = $(check_PROGRAMS)
|
||||
dist_noinst_SCRIPTS = filter_stderr
|
||||
EXTRA_DIST = \
|
||||
clone_test.stderr.exp \
|
||||
clone_test.post.exp \
|
||||
clone_test.vgtest \
|
||||
complex_rep.stderr.exp \
|
||||
complex_rep.vgtest \
|
||||
fldcw_check.stderr.exp \
|
||||
fldcw_check.vgtest \
|
||||
ll.stderr.exp \
|
||||
ll.stdout.exp \
|
||||
ll.post.exp \
|
||||
ll.vgtest \
|
||||
million.stderr.exp \
|
||||
million.post.exp \
|
||||
million.vgtest \
|
||||
rep_prefix.stderr.exp \
|
||||
rep_prefix.vgtest
|
||||
|
||||
clone_test_SOURCES = clone_test.S
|
||||
complex_rep_SOURCES = complex_rep.S
|
||||
fldcw_check_SOURCES = fldcw_check.S
|
||||
million_SOURCES = million.S
|
||||
rep_prefix_SOURCES = rep_prefix.S
|
||||
ll_SOURCES = ll.S
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .S .o .obj
|
||||
$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign exp-bbv/tests/amd64-linux/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign exp-bbv/tests/amd64-linux/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_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am:
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: # $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
clean-checkPROGRAMS:
|
||||
-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
|
||||
|
||||
clone_test$(EXEEXT): $(clone_test_OBJECTS) $(clone_test_DEPENDENCIES) $(EXTRA_clone_test_DEPENDENCIES)
|
||||
@rm -f clone_test$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(clone_test_OBJECTS) $(clone_test_LDADD) $(LIBS)
|
||||
|
||||
complex_rep$(EXEEXT): $(complex_rep_OBJECTS) $(complex_rep_DEPENDENCIES) $(EXTRA_complex_rep_DEPENDENCIES)
|
||||
@rm -f complex_rep$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(complex_rep_OBJECTS) $(complex_rep_LDADD) $(LIBS)
|
||||
|
||||
fldcw_check$(EXEEXT): $(fldcw_check_OBJECTS) $(fldcw_check_DEPENDENCIES) $(EXTRA_fldcw_check_DEPENDENCIES)
|
||||
@rm -f fldcw_check$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(fldcw_check_OBJECTS) $(fldcw_check_LDADD) $(LIBS)
|
||||
|
||||
ll$(EXEEXT): $(ll_OBJECTS) $(ll_DEPENDENCIES) $(EXTRA_ll_DEPENDENCIES)
|
||||
@rm -f ll$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(ll_OBJECTS) $(ll_LDADD) $(LIBS)
|
||||
|
||||
million$(EXEEXT): $(million_OBJECTS) $(million_DEPENDENCIES) $(EXTRA_million_DEPENDENCIES)
|
||||
@rm -f million$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(million_OBJECTS) $(million_LDADD) $(LIBS)
|
||||
|
||||
rep_prefix$(EXEEXT): $(rep_prefix_OBJECTS) $(rep_prefix_DEPENDENCIES) $(EXTRA_rep_prefix_DEPENDENCIES)
|
||||
@rm -f rep_prefix$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(rep_prefix_OBJECTS) $(rep_prefix_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
include ./$(DEPDIR)/clone_test.Po
|
||||
include ./$(DEPDIR)/complex_rep.Po
|
||||
include ./$(DEPDIR)/fldcw_check.Po
|
||||
include ./$(DEPDIR)/ll.Po
|
||||
include ./$(DEPDIR)/million.Po
|
||||
include ./$(DEPDIR)/rep_prefix.Po
|
||||
|
||||
.S.o:
|
||||
$(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
$(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
$(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
# $(AM_V_CPPAS)source='$<' object='$@' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CPPAS_no)$(CPPASCOMPILE) -c -o $@ $<
|
||||
|
||||
.S.obj:
|
||||
$(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||
$(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||
$(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
# $(AM_V_CPPAS)source='$<' object='$@' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CPPAS_no)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-am
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: ctags-am
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
cscopelist: cscopelist-am
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
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 "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$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
|
||||
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-local
|
||||
check: check-am
|
||||
all-am: Makefile $(SCRIPTS)
|
||||
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:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-checkPROGRAMS clean-generic clean-local mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: check-am install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
|
||||
clean-checkPROGRAMS clean-generic clean-local cscopelist-am \
|
||||
ctags ctags-am 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-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-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||
tags tags-am uninstall uninstall-am
|
||||
|
||||
|
||||
# This used to be required when Vex had a handwritten Makefile. It
|
||||
# shouldn't be needed any more, though.
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# noinst_PROGRAMS and noinst_DSYMS targets
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# On Darwin, for a program 'p', the DWARF debug info is stored in the
|
||||
# directory 'p.dSYM'. This must be generated after the executable is
|
||||
# created, with 'dsymutil p'. We could redefine LINK with a script that
|
||||
# executes 'dsymutil' after linking, but that's a pain. Instead we use this
|
||||
# hook so that every time "make check" is run, we subsequently invoke
|
||||
# 'dsymutil' on all the executables that lack a .dSYM directory, or that are
|
||||
# newer than their corresponding .dSYM directory.
|
||||
build-noinst_DSYMS: $(noinst_DSYMS)
|
||||
for f in $(noinst_DSYMS); do \
|
||||
if [ ! -e $$f.dSYM -o $$f -nt $$f.dSYM ] ; then \
|
||||
echo "dsymutil $$f"; \
|
||||
dsymutil $$f; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
# This is used by coregrind/Makefile.am and Makefile.tool.am for doing
|
||||
# "in-place" installs. It copies $(noinst_PROGRAMS) into $inplacedir.
|
||||
# It needs to be depended on by an 'all-local' rule.
|
||||
inplace-noinst_PROGRAMS: $(noinst_PROGRAMS)
|
||||
mkdir -p $(inplacedir); \
|
||||
for f in $(noinst_PROGRAMS) ; do \
|
||||
rm -f $(inplacedir)/$$f; \
|
||||
ln -f -s ../$(subdir)/$$f $(inplacedir); \
|
||||
done
|
||||
|
||||
# Similar to inplace-noinst_PROGRAMS
|
||||
inplace-noinst_DSYMS: build-noinst_DSYMS
|
||||
mkdir -p $(inplacedir); \
|
||||
for f in $(noinst_DSYMS); do \
|
||||
rm -f $(inplacedir)/$$f.dSYM; \
|
||||
ln -f -s ../$(subdir)/$$f.dSYM $(inplacedir); \
|
||||
done
|
||||
|
||||
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
|
||||
# "make install". It copies $(noinst_PROGRAMS) into $prefix/lib/valgrind/.
|
||||
# It needs to be depended on by an 'install-exec-local' rule.
|
||||
install-noinst_PROGRAMS: $(noinst_PROGRAMS)
|
||||
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
|
||||
for f in $(noinst_PROGRAMS); do \
|
||||
$(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \
|
||||
done
|
||||
|
||||
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
|
||||
# "make uninstall". It removes $(noinst_PROGRAMS) from $prefix/lib/valgrind/.
|
||||
# It needs to be depended on by an 'uninstall-local' rule.
|
||||
uninstall-noinst_PROGRAMS:
|
||||
for f in $(noinst_PROGRAMS); do \
|
||||
rm -f $(DESTDIR)$(pkglibdir)/$$f; \
|
||||
done
|
||||
|
||||
# Similar to install-noinst_PROGRAMS.
|
||||
# Nb: we don't use $(INSTALL_PROGRAM) here because it doesn't work with
|
||||
# directories. XXX: not sure whether the resulting permissions will be
|
||||
# correct when using 'cp -R'...
|
||||
install-noinst_DSYMS: build-noinst_DSYMS
|
||||
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
|
||||
for f in $(noinst_DSYMS); do \
|
||||
cp -R $$f.dSYM $(DESTDIR)$(pkglibdir); \
|
||||
done
|
||||
|
||||
# Similar to uninstall-noinst_PROGRAMS.
|
||||
uninstall-noinst_DSYMS:
|
||||
for f in $(noinst_DSYMS); do \
|
||||
rm -f $(DESTDIR)$(pkglibdir)/$$f.dSYM; \
|
||||
done
|
||||
|
||||
# This needs to be depended on by a 'clean-local' rule.
|
||||
clean-noinst_DSYMS:
|
||||
for f in $(noinst_DSYMS); do \
|
||||
rm -rf $$f.dSYM; \
|
||||
done
|
||||
|
||||
check-local: build-noinst_DSYMS
|
||||
|
||||
clean-local: clean-noinst_DSYMS
|
||||
|
||||
# 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:
|
||||
@@ -0,0 +1,42 @@
|
||||
include $(top_srcdir)/Makefile.tool-tests.am
|
||||
|
||||
dist_noinst_SCRIPTS = filter_stderr
|
||||
|
||||
check_PROGRAMS = \
|
||||
million rep_prefix fldcw_check complex_rep clone_test
|
||||
|
||||
EXTRA_DIST = \
|
||||
clone_test.stderr.exp \
|
||||
clone_test.post.exp \
|
||||
clone_test.vgtest \
|
||||
complex_rep.stderr.exp \
|
||||
complex_rep.vgtest \
|
||||
fldcw_check.stderr.exp \
|
||||
fldcw_check.vgtest \
|
||||
ll.stderr.exp \
|
||||
ll.stdout.exp \
|
||||
ll.post.exp \
|
||||
ll.vgtest \
|
||||
million.stderr.exp \
|
||||
million.post.exp \
|
||||
million.vgtest \
|
||||
rep_prefix.stderr.exp \
|
||||
rep_prefix.vgtest
|
||||
|
||||
AM_CCASFLAGS += -ffreestanding
|
||||
|
||||
LDFLAGS += -nostartfiles -nodefaultlibs
|
||||
|
||||
clone_test_SOURCES = clone_test.S
|
||||
complex_rep_SOURCES = complex_rep.S
|
||||
fldcw_check_SOURCES = fldcw_check.S
|
||||
million_SOURCES = million.S
|
||||
rep_prefix_SOURCES = rep_prefix.S
|
||||
|
||||
# To compile the ll testcase, the compiler needs to support -Xassembler
|
||||
# ICC does not do that
|
||||
if !COMPILER_IS_ICC
|
||||
AM_CCASFLAGS += -Xassembler -I$(top_srcdir)/exp-bbv/tests
|
||||
check_PROGRAMS += ll
|
||||
ll_SOURCES = ll.S
|
||||
endif
|
||||
@@ -0,0 +1,986 @@
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 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@
|
||||
|
||||
# This file is used for tool tests, and also in perf/Makefile.am.
|
||||
|
||||
# This file should be included (directly or indirectly) by every
|
||||
# Makefile.am that builds programs. And also the top-level Makefile.am.
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Global stuff
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@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 = $(top_srcdir)/Makefile.tool-tests.am \
|
||||
$(top_srcdir)/Makefile.all.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/Makefile.am $(dist_noinst_SCRIPTS) \
|
||||
$(top_srcdir)/depcomp
|
||||
@COMPILER_IS_CLANG_TRUE@am__append_1 = -Wno-cast-align -Wno-self-assign \
|
||||
@COMPILER_IS_CLANG_TRUE@ -Wno-tautological-compare
|
||||
|
||||
@SOLARIS_XPG_SYMBOLS_PRESENT_TRUE@am__append_2 = -Wl,-M,$(top_srcdir)/solaris/vgpreload-solaris.mapfile
|
||||
|
||||
# The Android toolchain includes all kinds of stdlib helpers present in
|
||||
# bionic which is bad because we are not linking with it and the Android
|
||||
# linker will panic.
|
||||
@VGCONF_PLATVARIANT_IS_ANDROID_TRUE@am__append_3 = -nostdlib
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am__append_4 = -DVGA_SEC_@VGCONF_ARCH_SEC@=1 \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGP_SEC_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1
|
||||
|
||||
|
||||
# Make sure that all test programs have threaded errno.
|
||||
@VGCONF_OS_IS_SOLARIS_TRUE@am__append_5 = -D_REENTRANT
|
||||
@COMPILER_IS_CLANG_TRUE@am__append_6 = -Wno-format-extra-args \
|
||||
@COMPILER_IS_CLANG_TRUE@ -Wno-literal-range \
|
||||
@COMPILER_IS_CLANG_TRUE@ -Wno-tautological-constant-out-of-range-compare \
|
||||
@COMPILER_IS_CLANG_TRUE@ -Wno-self-assign -Wno-string-plus-int \
|
||||
@COMPILER_IS_CLANG_TRUE@ -Wno-uninitialized -Wno-unused-value # \
|
||||
@COMPILER_IS_CLANG_TRUE@ clang 3.0.0
|
||||
@COMPILER_IS_CLANG_TRUE@am__append_7 = -Wno-unused-private-field # drd/tests/tsan_unittest.cpp
|
||||
check_PROGRAMS = million$(EXEEXT) rep_prefix$(EXEEXT) \
|
||||
fldcw_check$(EXEEXT) complex_rep$(EXEEXT) clone_test$(EXEEXT) \
|
||||
$(am__EXEEXT_1)
|
||||
|
||||
# To compile the ll testcase, the compiler needs to support -Xassembler
|
||||
# ICC does not do that
|
||||
@COMPILER_IS_ICC_FALSE@am__append_8 = -Xassembler -I$(top_srcdir)/exp-bbv/tests
|
||||
@COMPILER_IS_ICC_FALSE@am__append_9 = ll
|
||||
subdir = exp-bbv/tests/amd64-linux
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
@COMPILER_IS_ICC_FALSE@am__EXEEXT_1 = ll$(EXEEXT)
|
||||
am_clone_test_OBJECTS = clone_test.$(OBJEXT)
|
||||
clone_test_OBJECTS = $(am_clone_test_OBJECTS)
|
||||
clone_test_LDADD = $(LDADD)
|
||||
am_complex_rep_OBJECTS = complex_rep.$(OBJEXT)
|
||||
complex_rep_OBJECTS = $(am_complex_rep_OBJECTS)
|
||||
complex_rep_LDADD = $(LDADD)
|
||||
am_fldcw_check_OBJECTS = fldcw_check.$(OBJEXT)
|
||||
fldcw_check_OBJECTS = $(am_fldcw_check_OBJECTS)
|
||||
fldcw_check_LDADD = $(LDADD)
|
||||
am__ll_SOURCES_DIST = ll.S
|
||||
@COMPILER_IS_ICC_FALSE@am_ll_OBJECTS = ll.$(OBJEXT)
|
||||
ll_OBJECTS = $(am_ll_OBJECTS)
|
||||
ll_LDADD = $(LDADD)
|
||||
am_million_OBJECTS = million.$(OBJEXT)
|
||||
million_OBJECTS = $(am_million_OBJECTS)
|
||||
million_LDADD = $(LDADD)
|
||||
am_rep_prefix_OBJECTS = rep_prefix.$(OBJEXT)
|
||||
rep_prefix_OBJECTS = $(am_rep_prefix_OBJECTS)
|
||||
rep_prefix_LDADD = $(LDADD)
|
||||
SCRIPTS = $(dist_noinst_SCRIPTS)
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
|
||||
AM_V_CPPAS = $(am__v_CPPAS_@AM_V@)
|
||||
am__v_CPPAS_ = $(am__v_CPPAS_@AM_DEFAULT_V@)
|
||||
am__v_CPPAS_0 = @echo " CPPAS " $@;
|
||||
am__v_CPPAS_1 =
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
AM_V_CC = $(am__v_CC_@AM_V@)
|
||||
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
|
||||
am__v_CC_0 = @echo " CC " $@;
|
||||
am__v_CC_1 =
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
||||
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||
am__v_CCLD_1 =
|
||||
SOURCES = $(clone_test_SOURCES) $(complex_rep_SOURCES) \
|
||||
$(fldcw_check_SOURCES) $(ll_SOURCES) $(million_SOURCES) \
|
||||
$(rep_prefix_SOURCES)
|
||||
DIST_SOURCES = $(clone_test_SOURCES) $(complex_rep_SOURCES) \
|
||||
$(fldcw_check_SOURCES) $(am__ll_SOURCES_DIST) \
|
||||
$(million_SOURCES) $(rep_prefix_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BOOST_CFLAGS = @BOOST_CFLAGS@
|
||||
BOOST_LIBS = @BOOST_LIBS@
|
||||
CC = @CC@
|
||||
CCAS = @CCAS@
|
||||
CCASDEPMODE = @CCASDEPMODE@
|
||||
CCASFLAGS = @CCASFLAGS@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAGS_MPI = @CFLAGS_MPI@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_SUPP = @DEFAULT_SUPP@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIFF = @DIFF@
|
||||
DIS_PATH = @DIS_PATH@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
|
||||
FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
|
||||
FLAG_FSANITIZE = @FLAG_FSANITIZE@
|
||||
FLAG_M32 = @FLAG_M32@
|
||||
FLAG_M64 = @FLAG_M64@
|
||||
FLAG_MIPS32 = @FLAG_MIPS32@
|
||||
FLAG_MIPS64 = @FLAG_MIPS64@
|
||||
FLAG_MLONG_DOUBLE_128 = @FLAG_MLONG_DOUBLE_128@
|
||||
FLAG_MMMX = @FLAG_MMMX@
|
||||
FLAG_MSSE = @FLAG_MSSE@
|
||||
FLAG_NO_BUILD_ID = @FLAG_NO_BUILD_ID@
|
||||
FLAG_OCTEON = @FLAG_OCTEON@
|
||||
FLAG_OCTEON2 = @FLAG_OCTEON2@
|
||||
FLAG_T_TEXT = @FLAG_T_TEXT@
|
||||
FLAG_UNLIMITED_INLINE_UNIT_GROWTH = @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@
|
||||
FLAG_W_CAST_ALIGN = @FLAG_W_CAST_ALIGN@
|
||||
FLAG_W_CAST_QUAL = @FLAG_W_CAST_QUAL@
|
||||
FLAG_W_EMPTY_BODY = @FLAG_W_EMPTY_BODY@
|
||||
FLAG_W_EXTRA = @FLAG_W_EXTRA@
|
||||
FLAG_W_FORMAT = @FLAG_W_FORMAT@
|
||||
FLAG_W_FORMAT_SECURITY = @FLAG_W_FORMAT_SECURITY@
|
||||
FLAG_W_FORMAT_SIGNEDNESS = @FLAG_W_FORMAT_SIGNEDNESS@
|
||||
FLAG_W_IGNORED_QUALIFIERS = @FLAG_W_IGNORED_QUALIFIERS@
|
||||
FLAG_W_MISSING_PARAMETER_TYPE = @FLAG_W_MISSING_PARAMETER_TYPE@
|
||||
FLAG_W_NO_INFINITE_RECURSION = @FLAG_W_NO_INFINITE_RECURSION@
|
||||
FLAG_W_NO_MEMSET_TRANSPOSED_ARGS = @FLAG_W_NO_MEMSET_TRANSPOSED_ARGS@
|
||||
FLAG_W_NO_MISMATCHED_NEW_DELETE = @FLAG_W_NO_MISMATCHED_NEW_DELETE@
|
||||
FLAG_W_NO_NONNULL = @FLAG_W_NO_NONNULL@
|
||||
FLAG_W_NO_OVERFLOW = @FLAG_W_NO_OVERFLOW@
|
||||
FLAG_W_NO_POINTER_SIGN = @FLAG_W_NO_POINTER_SIGN@
|
||||
FLAG_W_NO_STATIC_LOCAL_IN_INLINE = @FLAG_W_NO_STATIC_LOCAL_IN_INLINE@
|
||||
FLAG_W_NO_UNINITIALIZED = @FLAG_W_NO_UNINITIALIZED@
|
||||
FLAG_W_NO_UNUSED_FUNCTION = @FLAG_W_NO_UNUSED_FUNCTION@
|
||||
FLAG_W_OLD_STYLE_DECLARATION = @FLAG_W_OLD_STYLE_DECLARATION@
|
||||
FLAG_W_WRITE_STRINGS = @FLAG_W_WRITE_STRINGS@
|
||||
GDB = @GDB@
|
||||
GLIBC_VERSION = @GLIBC_VERSION@
|
||||
GREP = @GREP@
|
||||
HWCAP_HAS_ALTIVEC = @HWCAP_HAS_ALTIVEC@
|
||||
HWCAP_HAS_DFP = @HWCAP_HAS_DFP@
|
||||
HWCAP_HAS_HTM = @HWCAP_HAS_HTM@
|
||||
HWCAP_HAS_ISA_2_05 = @HWCAP_HAS_ISA_2_05@
|
||||
HWCAP_HAS_ISA_2_06 = @HWCAP_HAS_ISA_2_06@
|
||||
HWCAP_HAS_ISA_2_07 = @HWCAP_HAS_ISA_2_07@
|
||||
HWCAP_HAS_VSX = @HWCAP_HAS_VSX@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@ -nostartfiles -nodefaultlibs
|
||||
LDFLAGS_MPI = @LDFLAGS_MPI@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIB_UBSAN = @LIB_UBSAN@
|
||||
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_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
PREFERRED_STACK_BOUNDARY_2 = @PREFERRED_STACK_BOUNDARY_2@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VALT_LOAD_ADDRESS_PRI = @VALT_LOAD_ADDRESS_PRI@
|
||||
VALT_LOAD_ADDRESS_SEC = @VALT_LOAD_ADDRESS_SEC@
|
||||
VERSION = @VERSION@
|
||||
VGCONF_ARCH_PRI = @VGCONF_ARCH_PRI@
|
||||
VGCONF_ARCH_SEC = @VGCONF_ARCH_SEC@
|
||||
VGCONF_OS = @VGCONF_OS@
|
||||
VGCONF_PLATFORM_PRI_CAPS = @VGCONF_PLATFORM_PRI_CAPS@
|
||||
VGCONF_PLATFORM_SEC_CAPS = @VGCONF_PLATFORM_SEC_CAPS@
|
||||
VGCONF_PLATVARIANT = @VGCONF_PLATVARIANT@
|
||||
VG_TMPDIR = @VG_TMPDIR@
|
||||
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_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
inplacedir = $(top_builddir)/.in_place
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Flags
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# Baseline flags for all compilations. Aim here is to maximise
|
||||
# performance and get whatever useful warnings we can out of gcc.
|
||||
# -fno-builtin is important for defeating LLVM's idiom recognition
|
||||
# that somehow causes VG_(memset) to get into infinite recursion.
|
||||
AM_CFLAGS_BASE = -O2 -g -std=gnu99 -Wall -Wmissing-prototypes -Wshadow \
|
||||
-Wpointer-arith -Wstrict-prototypes -Wmissing-declarations \
|
||||
@FLAG_W_CAST_ALIGN@ @FLAG_W_CAST_QUAL@ @FLAG_W_WRITE_STRINGS@ \
|
||||
@FLAG_W_EMPTY_BODY@ @FLAG_W_FORMAT@ @FLAG_W_FORMAT_SIGNEDNESS@ \
|
||||
@FLAG_W_FORMAT_SECURITY@ @FLAG_W_IGNORED_QUALIFIERS@ \
|
||||
@FLAG_W_MISSING_PARAMETER_TYPE@ @FLAG_W_OLD_STYLE_DECLARATION@ \
|
||||
@FLAG_FNO_STACK_PROTECTOR@ @FLAG_FSANITIZE@ \
|
||||
-fno-strict-aliasing -fno-builtin $(am__append_1)
|
||||
@VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
|
||||
@VGCONF_OS_IS_DARWIN_FALSE@ -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
|
||||
|
||||
|
||||
# These flags are used for building the preload shared objects (PSOs).
|
||||
# The aim is to give reasonable performance but also to have good
|
||||
# stack traces, since users often see stack traces extending
|
||||
# into (and through) the preloads. Also, we must use any
|
||||
# -mpreferred-stack-boundary flag to build the preload shared
|
||||
# objects, since that risks misaligning the client's stack and
|
||||
# results in segfaults like (eg) #324050.
|
||||
@VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
|
||||
@VGCONF_OS_IS_DARWIN_TRUE@ -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
|
||||
@VGCONF_OS_IS_DARWIN_TRUE@ -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
|
||||
|
||||
|
||||
# Flags for specific targets.
|
||||
#
|
||||
# Nb: the AM_CPPFLAGS_* values are suitable for building tools and auxprogs.
|
||||
# For building the core, coregrind/Makefile.am files add some extra things.
|
||||
AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/VEX/pub \
|
||||
-I$(top_builddir)/VEX/pub \
|
||||
-DVGA_@VGCONF_ARCH_PRI@=1 \
|
||||
-DVGO_@VGCONF_OS@=1 \
|
||||
-DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \
|
||||
-DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1
|
||||
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ = \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir) \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir)/include \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir)/VEX/pub \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_builddir)/VEX/pub \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGA_@VGCONF_ARCH_SEC@=1 \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGO_@VGCONF_OS@=1 \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGP_@VGCONF_ARCH_SEC@_@VGCONF_OS@=1 \
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGPV_@VGCONF_ARCH_SEC@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1
|
||||
|
||||
AM_FLAG_M3264_X86_LINUX = @FLAG_M32@
|
||||
AM_CFLAGS_X86_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY_2@ \
|
||||
$(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
|
||||
AM_CFLAGS_PSO_X86_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_X86_LINUX = @FLAG_M32@ -g
|
||||
AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@
|
||||
AM_CFLAGS_AMD64_LINUX = @FLAG_M64@ \
|
||||
$(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
|
||||
AM_CFLAGS_PSO_AMD64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_AMD64_LINUX = @FLAG_M64@ -g
|
||||
AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@
|
||||
AM_CFLAGS_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
|
||||
AM_FLAG_M3264_PPC64BE_LINUX = @FLAG_M64@
|
||||
AM_CFLAGS_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_PPC64BE_LINUX = @FLAG_M64@ -g
|
||||
AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
|
||||
AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
|
||||
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
|
||||
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ \
|
||||
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
|
||||
|
||||
AM_CFLAGS_PSO_ARM_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) \
|
||||
-marm -mcpu=cortex-a8 $(AM_CFLAGS_PSO_BASE)
|
||||
|
||||
AM_CCASFLAGS_ARM_LINUX = @FLAG_M32@ \
|
||||
-marm -mcpu=cortex-a8 -g
|
||||
|
||||
AM_FLAG_M3264_ARM64_LINUX = @FLAG_M64@
|
||||
AM_CFLAGS_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_ARM64_LINUX = @FLAG_M64@ -g
|
||||
AM_FLAG_M3264_X86_DARWIN = -arch i386
|
||||
AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \
|
||||
-mmacosx-version-min=10.5 \
|
||||
-fno-stack-protector -fno-pic -fno-PIC
|
||||
|
||||
AM_CFLAGS_PSO_X86_DARWIN = $(AM_CFLAGS_X86_DARWIN) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_X86_DARWIN = -arch i386 -g
|
||||
AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64
|
||||
AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \
|
||||
-mmacosx-version-min=10.5 -fno-stack-protector
|
||||
|
||||
AM_CFLAGS_PSO_AMD64_DARWIN = $(AM_CFLAGS_AMD64_DARWIN) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_AMD64_DARWIN = -arch x86_64 -g
|
||||
AM_FLAG_M3264_S390X_LINUX = @FLAG_M64@
|
||||
AM_CFLAGS_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
AM_CFLAGS_PSO_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_S390X_LINUX = @FLAG_M64@ -g -mzarch -march=z900
|
||||
AM_FLAG_M3264_MIPS32_LINUX = @FLAG_M32@
|
||||
AM_CFLAGS_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) @FLAG_MIPS32@
|
||||
AM_CFLAGS_PSO_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) @FLAG_MIPS32@ \
|
||||
$(AM_CFLAGS_PSO_BASE)
|
||||
|
||||
AM_CCASFLAGS_MIPS32_LINUX = @FLAG_M32@ -g @FLAG_MIPS32@
|
||||
AM_FLAG_M3264_MIPS64_LINUX = @FLAG_M64@
|
||||
AM_CFLAGS_MIPS64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) @FLAG_MIPS64@
|
||||
AM_CFLAGS_PSO_MIPS64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) @FLAG_MIPS64@ \
|
||||
$(AM_CFLAGS_PSO_BASE)
|
||||
|
||||
AM_CCASFLAGS_MIPS64_LINUX = @FLAG_M64@ -g @FLAG_MIPS64@
|
||||
AM_CFLAGS_TILEGX_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
|
||||
AM_CFLAGS_PSO_TILEGX_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_FLAG_M3264_X86_SOLARIS = @FLAG_M32@
|
||||
AM_CFLAGS_X86_SOLARIS = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY_2@ \
|
||||
$(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
|
||||
AM_CFLAGS_PSO_X86_SOLARIS = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_X86_SOLARIS = @FLAG_M32@ -g -D_ASM
|
||||
AM_FLAG_M3264_AMD64_SOLARIS = @FLAG_M64@
|
||||
AM_CFLAGS_AMD64_SOLARIS = @FLAG_M64@ \
|
||||
$(AM_CFLAGS_BASE) -fomit-frame-pointer
|
||||
|
||||
AM_CFLAGS_PSO_AMD64_SOLARIS = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
|
||||
AM_CCASFLAGS_AMD64_SOLARIS = @FLAG_M64@ -g -D_ASM
|
||||
|
||||
# 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_@VGCONF_PLATFORM_PRI_CAPS@)
|
||||
AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
||||
AM_CFLAGS_PRI = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
||||
AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
|
||||
@VGCONF_HAVE_PLATFORM_SEC_FALSE@AM_FLAG_M3264_SEC =
|
||||
@VGCONF_HAVE_PLATFORM_SEC_TRUE@AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_@VGCONF_PLATFORM_SEC_CAPS@)
|
||||
|
||||
# Baseline link flags for making vgpreload shared objects.
|
||||
#
|
||||
PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared \
|
||||
-Wl,-z,interpose,-z,initfirst $(am__append_3)
|
||||
PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load
|
||||
PRELOAD_LDFLAGS_COMMON_SOLARIS = -nodefaultlibs -shared \
|
||||
-Wl,-z,interpose,-z,initfirst $(am__append_2)
|
||||
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_PPC64BE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
|
||||
PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
|
||||
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
|
||||
PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
|
||||
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
|
||||
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
|
||||
PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
|
||||
PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
|
||||
PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
|
||||
PRELOAD_LDFLAGS_TILEGX_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
|
||||
PRELOAD_LDFLAGS_X86_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) @FLAG_M32@
|
||||
PRELOAD_LDFLAGS_AMD64_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) @FLAG_M64@
|
||||
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/coregrind -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/VEX/pub -I$(top_builddir)/VEX/pub \
|
||||
-DVGA_@VGCONF_ARCH_PRI@=1 -DVGO_@VGCONF_OS@=1 \
|
||||
-DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \
|
||||
-DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1 \
|
||||
$(am__append_4)
|
||||
|
||||
# Nb: Tools need to augment these flags with an arch-selection option, such
|
||||
# as $(AM_FLAG_M3264_PRI).
|
||||
AM_CFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
|
||||
@FLAG_FNO_STACK_PROTECTOR@ $(am__append_5) $(am__append_6)
|
||||
AM_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
|
||||
@FLAG_FNO_STACK_PROTECTOR@ $(am__append_7)
|
||||
# Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
|
||||
# automake; see comments in Makefile.all.am for more detail.
|
||||
AM_CCASFLAGS = $(AM_CPPFLAGS) -ffreestanding $(am__append_8)
|
||||
@VGCONF_OS_IS_DARWIN_TRUE@noinst_DSYMS = $(check_PROGRAMS)
|
||||
dist_noinst_SCRIPTS = filter_stderr
|
||||
EXTRA_DIST = \
|
||||
clone_test.stderr.exp \
|
||||
clone_test.post.exp \
|
||||
clone_test.vgtest \
|
||||
complex_rep.stderr.exp \
|
||||
complex_rep.vgtest \
|
||||
fldcw_check.stderr.exp \
|
||||
fldcw_check.vgtest \
|
||||
ll.stderr.exp \
|
||||
ll.stdout.exp \
|
||||
ll.post.exp \
|
||||
ll.vgtest \
|
||||
million.stderr.exp \
|
||||
million.post.exp \
|
||||
million.vgtest \
|
||||
rep_prefix.stderr.exp \
|
||||
rep_prefix.vgtest
|
||||
|
||||
clone_test_SOURCES = clone_test.S
|
||||
complex_rep_SOURCES = complex_rep.S
|
||||
fldcw_check_SOURCES = fldcw_check.S
|
||||
million_SOURCES = million.S
|
||||
rep_prefix_SOURCES = rep_prefix.S
|
||||
@COMPILER_IS_ICC_FALSE@ll_SOURCES = ll.S
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .S .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign exp-bbv/tests/amd64-linux/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign exp-bbv/tests/amd64-linux/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_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am:
|
||||
|
||||
$(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
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
clean-checkPROGRAMS:
|
||||
-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
|
||||
|
||||
clone_test$(EXEEXT): $(clone_test_OBJECTS) $(clone_test_DEPENDENCIES) $(EXTRA_clone_test_DEPENDENCIES)
|
||||
@rm -f clone_test$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(clone_test_OBJECTS) $(clone_test_LDADD) $(LIBS)
|
||||
|
||||
complex_rep$(EXEEXT): $(complex_rep_OBJECTS) $(complex_rep_DEPENDENCIES) $(EXTRA_complex_rep_DEPENDENCIES)
|
||||
@rm -f complex_rep$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(complex_rep_OBJECTS) $(complex_rep_LDADD) $(LIBS)
|
||||
|
||||
fldcw_check$(EXEEXT): $(fldcw_check_OBJECTS) $(fldcw_check_DEPENDENCIES) $(EXTRA_fldcw_check_DEPENDENCIES)
|
||||
@rm -f fldcw_check$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(fldcw_check_OBJECTS) $(fldcw_check_LDADD) $(LIBS)
|
||||
|
||||
ll$(EXEEXT): $(ll_OBJECTS) $(ll_DEPENDENCIES) $(EXTRA_ll_DEPENDENCIES)
|
||||
@rm -f ll$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(ll_OBJECTS) $(ll_LDADD) $(LIBS)
|
||||
|
||||
million$(EXEEXT): $(million_OBJECTS) $(million_DEPENDENCIES) $(EXTRA_million_DEPENDENCIES)
|
||||
@rm -f million$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(million_OBJECTS) $(million_LDADD) $(LIBS)
|
||||
|
||||
rep_prefix$(EXEEXT): $(rep_prefix_OBJECTS) $(rep_prefix_DEPENDENCIES) $(EXTRA_rep_prefix_DEPENDENCIES)
|
||||
@rm -f rep_prefix$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(rep_prefix_OBJECTS) $(rep_prefix_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_test.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/complex_rep.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fldcw_check.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ll.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/million.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rep_prefix.Po@am__quote@
|
||||
|
||||
.S.o:
|
||||
@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
@am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
@am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ $<
|
||||
|
||||
.S.obj:
|
||||
@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||
@am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||
@am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-am
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: ctags-am
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
cscopelist: cscopelist-am
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
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 "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$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
|
||||
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-local
|
||||
check: check-am
|
||||
all-am: Makefile $(SCRIPTS)
|
||||
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:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-checkPROGRAMS clean-generic clean-local mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: check-am install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
|
||||
clean-checkPROGRAMS clean-generic clean-local cscopelist-am \
|
||||
ctags ctags-am 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-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-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||
tags tags-am uninstall uninstall-am
|
||||
|
||||
|
||||
# This used to be required when Vex had a handwritten Makefile. It
|
||||
# shouldn't be needed any more, though.
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# noinst_PROGRAMS and noinst_DSYMS targets
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# On Darwin, for a program 'p', the DWARF debug info is stored in the
|
||||
# directory 'p.dSYM'. This must be generated after the executable is
|
||||
# created, with 'dsymutil p'. We could redefine LINK with a script that
|
||||
# executes 'dsymutil' after linking, but that's a pain. Instead we use this
|
||||
# hook so that every time "make check" is run, we subsequently invoke
|
||||
# 'dsymutil' on all the executables that lack a .dSYM directory, or that are
|
||||
# newer than their corresponding .dSYM directory.
|
||||
build-noinst_DSYMS: $(noinst_DSYMS)
|
||||
for f in $(noinst_DSYMS); do \
|
||||
if [ ! -e $$f.dSYM -o $$f -nt $$f.dSYM ] ; then \
|
||||
echo "dsymutil $$f"; \
|
||||
dsymutil $$f; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
# This is used by coregrind/Makefile.am and Makefile.tool.am for doing
|
||||
# "in-place" installs. It copies $(noinst_PROGRAMS) into $inplacedir.
|
||||
# It needs to be depended on by an 'all-local' rule.
|
||||
inplace-noinst_PROGRAMS: $(noinst_PROGRAMS)
|
||||
mkdir -p $(inplacedir); \
|
||||
for f in $(noinst_PROGRAMS) ; do \
|
||||
rm -f $(inplacedir)/$$f; \
|
||||
ln -f -s ../$(subdir)/$$f $(inplacedir); \
|
||||
done
|
||||
|
||||
# Similar to inplace-noinst_PROGRAMS
|
||||
inplace-noinst_DSYMS: build-noinst_DSYMS
|
||||
mkdir -p $(inplacedir); \
|
||||
for f in $(noinst_DSYMS); do \
|
||||
rm -f $(inplacedir)/$$f.dSYM; \
|
||||
ln -f -s ../$(subdir)/$$f.dSYM $(inplacedir); \
|
||||
done
|
||||
|
||||
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
|
||||
# "make install". It copies $(noinst_PROGRAMS) into $prefix/lib/valgrind/.
|
||||
# It needs to be depended on by an 'install-exec-local' rule.
|
||||
install-noinst_PROGRAMS: $(noinst_PROGRAMS)
|
||||
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
|
||||
for f in $(noinst_PROGRAMS); do \
|
||||
$(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \
|
||||
done
|
||||
|
||||
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
|
||||
# "make uninstall". It removes $(noinst_PROGRAMS) from $prefix/lib/valgrind/.
|
||||
# It needs to be depended on by an 'uninstall-local' rule.
|
||||
uninstall-noinst_PROGRAMS:
|
||||
for f in $(noinst_PROGRAMS); do \
|
||||
rm -f $(DESTDIR)$(pkglibdir)/$$f; \
|
||||
done
|
||||
|
||||
# Similar to install-noinst_PROGRAMS.
|
||||
# Nb: we don't use $(INSTALL_PROGRAM) here because it doesn't work with
|
||||
# directories. XXX: not sure whether the resulting permissions will be
|
||||
# correct when using 'cp -R'...
|
||||
install-noinst_DSYMS: build-noinst_DSYMS
|
||||
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
|
||||
for f in $(noinst_DSYMS); do \
|
||||
cp -R $$f.dSYM $(DESTDIR)$(pkglibdir); \
|
||||
done
|
||||
|
||||
# Similar to uninstall-noinst_PROGRAMS.
|
||||
uninstall-noinst_DSYMS:
|
||||
for f in $(noinst_DSYMS); do \
|
||||
rm -f $(DESTDIR)$(pkglibdir)/$$f.dSYM; \
|
||||
done
|
||||
|
||||
# This needs to be depended on by a 'clean-local' rule.
|
||||
clean-noinst_DSYMS:
|
||||
for f in $(noinst_DSYMS); do \
|
||||
rm -rf $$f.dSYM; \
|
||||
done
|
||||
|
||||
check-local: build-noinst_DSYMS
|
||||
|
||||
clean-local: clean-noinst_DSYMS
|
||||
|
||||
# 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:
|
||||
@@ -0,0 +1,95 @@
|
||||
# count for ~1 million instructions thread 1
|
||||
# count for ~2 million instructions thread 2
|
||||
# count for additional 500 million each before exit
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
|
||||
#################################################
|
||||
# 1000 cycles in initial thread #
|
||||
#################################################
|
||||
|
||||
xor %rax,%rax
|
||||
mov $499,%rcx # load counter
|
||||
initial_loop:
|
||||
dec %rcx # repeat count times
|
||||
jnz initial_loop
|
||||
|
||||
|
||||
#####################################################
|
||||
# Spawn a thread! #
|
||||
#####################################################
|
||||
clone:
|
||||
mov $56,%rax # clone syscall
|
||||
|
||||
# Note, clone syscall is different than the glibc implementation
|
||||
|
||||
# int clone (flags, stack_pointer,parent_tidptr,child_tidptr,tls)
|
||||
|
||||
|
||||
# Flags in
|
||||
#/usr/include/bits/sched.h
|
||||
# CLONE_THREAD 0x10000
|
||||
# CLONE_SIGHAND 0x800
|
||||
# CLONE_VM 0x100
|
||||
# above must be called together
|
||||
# Below required for Valgrind
|
||||
# CLONE_FS 0x200
|
||||
# CLONE_FILES 0x400
|
||||
|
||||
mov $0x10f00,%rdi
|
||||
|
||||
|
||||
mov $(new_stack+4096),%rsi # new stack
|
||||
|
||||
|
||||
|
||||
mov $0,%rdx # args (none)
|
||||
|
||||
syscall
|
||||
|
||||
cmp $0,%rax # are we in new thread?
|
||||
jz thread2 # if so, jump to thrad2
|
||||
|
||||
|
||||
###############################################
|
||||
# thread1 #
|
||||
###############################################
|
||||
|
||||
thread1:
|
||||
|
||||
mov $499997,%rcx # load counter
|
||||
thread1_loop:
|
||||
dec %rcx # repeat count times
|
||||
jnz thread1_loop
|
||||
|
||||
xor %rdi,%rdi # we return 0
|
||||
jmp exit
|
||||
|
||||
thread2:
|
||||
mov $999997,%rcx # load counter
|
||||
thread2_loop:
|
||||
dec %rcx # repeat count times
|
||||
jnz thread2_loop
|
||||
|
||||
mov $5,%rdi # we return 5
|
||||
|
||||
|
||||
#================================
|
||||
# Exit
|
||||
#================================
|
||||
exit:
|
||||
|
||||
# count an additional 500 million
|
||||
|
||||
mov $250000,%rcx # load counter
|
||||
exit_loop:
|
||||
dec %rcx # repeat count times
|
||||
jnz exit_loop
|
||||
|
||||
actual_exit:
|
||||
mov $60,%rax # put exit syscall number (60) in rax
|
||||
syscall
|
||||
|
||||
.bss
|
||||
.lcomm new_stack,4096
|
||||
@@ -0,0 +1,58 @@
|
||||
T 4 996 5 2 3 98991
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 1001 2 3 98994
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
|
||||
|
||||
# Thread 1
|
||||
# Total intervals: 15 (Interval Size 100000)
|
||||
# Total instructions: 1501007
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 0
|
||||
|
||||
T 2 3 99996
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 99996 4
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 100000
|
||||
T 99998 2
|
||||
|
||||
|
||||
# Thread 2
|
||||
# Total intervals: 25 (Interval Size 100000)
|
||||
# Total instructions: 2500001
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 0
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# Thread 1
|
||||
# Total intervals: 15 (Interval Size 100000)
|
||||
# Total instructions: 1501007
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 0
|
||||
# Thread 2
|
||||
# Total intervals: 25 (Interval Size 100000)
|
||||
# Total instructions: 2500001
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 0
|
||||
@@ -0,0 +1,5 @@
|
||||
prog: clone_test
|
||||
vgopts: --interval-size=100000 --bb-out-file=clone_test.out.bb --pc-out-file=clone_test.out.pc
|
||||
post: cat clone_test.out.bb clone_test.out.bb.2 | ../filter_bb
|
||||
cleanup: rm clone_test.out.bb
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
# When trying (and failing) to instrument at the basic block level
|
||||
# I thought up a lot of corner-cases in the rep code. This tries
|
||||
# to catch some of them
|
||||
|
||||
# Performance counters give us 8207 insns
|
||||
# 11 + 8*1024 + 3 = 8206
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
cld # we want these to happen forward
|
||||
|
||||
mov $0xfeb131978,%rax # value to store
|
||||
|
||||
# test back-to-back rep/stosb's
|
||||
|
||||
mov $1024,%rcx
|
||||
mov $buffer1, %rdi # set destination
|
||||
rep stosb # store 1024 times
|
||||
rep stosb # should store 0 times
|
||||
rep stosb # should store 0 times
|
||||
|
||||
|
||||
# test stosb where cx is 0
|
||||
|
||||
xor %rcx,%rcx
|
||||
mov $buffer1, %rdi # set destination
|
||||
rep stosb # should not load at all
|
||||
|
||||
# test rep inside of a loop
|
||||
|
||||
mov $1024, %rbx
|
||||
rep_loop:
|
||||
|
||||
mov $1024,%rcx
|
||||
mov $buffer1, %rdi # set destination
|
||||
rep stosb
|
||||
|
||||
mov $1024,%rcx
|
||||
mov $buffer1, %rdi # set destination
|
||||
rep stosb
|
||||
|
||||
dec %rbx
|
||||
jnz rep_loop
|
||||
|
||||
|
||||
#================================
|
||||
# Exit
|
||||
#================================
|
||||
exit:
|
||||
mov $60,%rax
|
||||
xor %rdi,%rdi # we return 0
|
||||
syscall # and exit
|
||||
|
||||
|
||||
.bss
|
||||
|
||||
.lcomm buffer1, 16384
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Thread 1
|
||||
# Total intervals: 0 (Interval Size 100000)
|
||||
# Total instructions: 8206
|
||||
# Total reps: 2100228
|
||||
# Unique reps: 2052
|
||||
# Total fldcw instructions: 0
|
||||
@@ -0,0 +1,4 @@
|
||||
prog: complex_rep
|
||||
vgopts: --interval-size=100000 --bb-out-file=complex_rep.out.bb
|
||||
cleanup: rm complex_rep.out.bb
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#! /bin/sh
|
||||
|
||||
../filter_stderr
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
|
||||
.globl _start
|
||||
|
||||
_start:
|
||||
# This code tests for the fldcw "load floating point command word"
|
||||
# instruction. On most x86 processors the retired_instruction
|
||||
# performance counter counts this as one instruction. However,
|
||||
# on Pentium 4 systems it counts as two. Therefore this can
|
||||
# affect BBV results on such a system.
|
||||
# fldcw is most often used to set the rouding mode when doing
|
||||
# floating point to integer conversions
|
||||
|
||||
# It is encoded as "d9 /5" which means
|
||||
# 1101 1001 xx10 1yyy
|
||||
# Where xx is the "mod" which will be 00, 01, or 10 indicating offset
|
||||
# and yyy is the register field
|
||||
|
||||
# these are instructions with similar encodings to fldcw
|
||||
# that can cause false positives if the test isn't explicit enough
|
||||
similar:
|
||||
fld1 # d9 e8
|
||||
fldl2t # d9 e9
|
||||
fldl2e # d9 ea
|
||||
fldpi # d9 eb
|
||||
fldlg2 # d9 ec
|
||||
fldln2 # d9 ed
|
||||
fldz # d9 ee
|
||||
|
||||
# check some varied ways of calling fldcw
|
||||
|
||||
# offset on stack
|
||||
stack:
|
||||
sub $8,%rsp # allocate space on stack
|
||||
fnstcw 2(%rsp)
|
||||
fldcw 2(%rsp)
|
||||
add $8,%rsp # restore stack
|
||||
|
||||
# 64-bit register
|
||||
sixtyfour_reg:
|
||||
fnstcw cw
|
||||
mov $cw,%rax
|
||||
fldcw 0(%rax) # rax
|
||||
mov $cw,%rbx
|
||||
fldcw 0(%rbx) # rbx
|
||||
mov $cw,%rcx
|
||||
fldcw 0(%rcx) # rcx
|
||||
mov $cw,%rdx
|
||||
fldcw 0(%rdx) # rdx
|
||||
|
||||
# 32-bit register
|
||||
|
||||
# Note! The assembler that comes with SuSE 9.1
|
||||
# cannot assemble 32-bit fldcw on 64-bit systems
|
||||
# Hence the need to hand-code them
|
||||
|
||||
|
||||
thirtytwo_reg:
|
||||
fnstcw cw
|
||||
mov $cw,%eax
|
||||
|
||||
# fldcw 0(%eax) # eax
|
||||
.byte 0x67,0xd9,0x28
|
||||
|
||||
mov $cw,%ebx
|
||||
|
||||
# fldcw 0(%ebx) # ebx
|
||||
.byte 0x67,0xd9,0x2b
|
||||
|
||||
mov $cw,%ecx
|
||||
|
||||
# fldcw 0(%ecx) # ecx
|
||||
.byte 0x67,0xd9,0x29
|
||||
|
||||
mov $cw,%edx
|
||||
|
||||
# fldcw 0(%edx) # edx
|
||||
.byte 0x67,0xd9,0x2a
|
||||
|
||||
# register + 8-bit offset
|
||||
eight_bit:
|
||||
mov $cw,%eax
|
||||
sub $32,%eax
|
||||
|
||||
# fldcw 32(%eax) # eax + 8 bit offset
|
||||
.byte 0x67,0xd9,0x68,0x20
|
||||
|
||||
mov %eax,%ebx
|
||||
# fldcw 32(%ebx) # ebx + 8 bit offset
|
||||
.byte 0x67,0xd9,0x6b,0x20
|
||||
|
||||
mov %eax,%ecx
|
||||
|
||||
# fldcw 32(%ecx) # ecx + 8 bit offset
|
||||
.byte 0x67,0xd9,0x69,0x20
|
||||
|
||||
mov %eax,%edx
|
||||
|
||||
# fldcw 32(%edx) # edx + 8 bit offset
|
||||
.byte 0x67,0xd9,0x6a,0x20
|
||||
|
||||
|
||||
# register + 32-bit offset
|
||||
thirtytwo_bit:
|
||||
mov $cw,%eax
|
||||
sub $30000,%eax
|
||||
|
||||
# fldcw 30000(%eax) # eax + 16 bit offset
|
||||
.byte 0x67,0xd9,0xa8,0x30,0x75,0x00,0x00
|
||||
|
||||
mov %eax,%ebx
|
||||
|
||||
# fldcw 30000(%ebx) # ebx + 16 bit offset
|
||||
.byte 0x67,0xd9,0xab,0x30,0x75,0x00,0x00
|
||||
|
||||
mov %eax,%ecx
|
||||
|
||||
# fldcw 30000(%ecx) # ecx + 16 bit offset
|
||||
.byte 0x67,0xd9,0xa9,0x30,0x75,0x00,0x00
|
||||
|
||||
mov %eax,%edx
|
||||
|
||||
# fldcw 30000(%edx) # edx + 16 bit offset
|
||||
.byte 0x67,0xd9,0xaa,0x30,0x75,0x00,0x00
|
||||
|
||||
# check an fp/integer conversion
|
||||
# in a loop to give a bigger count
|
||||
|
||||
mov $1024,%rcx
|
||||
big_loop:
|
||||
|
||||
fldl three # load value onto fp stack
|
||||
fnstcw saved_cw # store control word to mem
|
||||
movzwl saved_cw, %eax # load cw from mem, zero extending
|
||||
movb $12, %ah # set cw for "round to zero"
|
||||
movw %ax, cw # store back to memory
|
||||
fldcw cw # save new rounding mode
|
||||
fistpl result # save stack value as integer to mem
|
||||
fldcw saved_cw # restore old cw
|
||||
|
||||
loop big_loop # loop to make the count more obvious
|
||||
|
||||
movl result, %ebx # sanity check to see if the
|
||||
cmp $3,%rbx # result is the expected one
|
||||
je exit
|
||||
|
||||
print_error:
|
||||
mov $1,%rax # write syscall
|
||||
mov $1,%rdi # stdout
|
||||
mov $error,%rsi # string
|
||||
mov $22,%rdx # length of string
|
||||
syscall
|
||||
|
||||
exit:
|
||||
xor %rdi, %rdi # return 0
|
||||
mov $60, %rax # SYSCALL_EXIT
|
||||
syscall
|
||||
|
||||
|
||||
|
||||
.data
|
||||
saved_cw: .long 0
|
||||
cw: .long 0
|
||||
result: .long 0
|
||||
three: .long 0 # a floating point 3.0
|
||||
.long 1074266112
|
||||
error: .asciz "Error! Wrong result!\n"
|
||||
@@ -0,0 +1,6 @@
|
||||
# Thread 1
|
||||
# Total intervals: 0 (Interval Size 10000)
|
||||
# Total instructions: 9270
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 2053
|
||||
@@ -0,0 +1,4 @@
|
||||
prog: fldcw_check
|
||||
vgopts: --interval-size=10000 --bb-out-file=fldcw_check.out.bb
|
||||
cleanup: rm fldcw_check.out.bb
|
||||
|
||||
@@ -0,0 +1,648 @@
|
||||
#
|
||||
# linux_logo in x86_64 assembly language
|
||||
# based on the code from ll_asm-0.36
|
||||
#
|
||||
# By Vince Weaver <vince _at_ deater.net>
|
||||
#
|
||||
# Modified to remove non-deterministic system calls
|
||||
# And to avoid reading from /proc
|
||||
#
|
||||
|
||||
|
||||
.include "logo.include"
|
||||
|
||||
# offsets into the results returned by the uname syscall
|
||||
.equ U_SYSNAME,0
|
||||
.equ U_NODENAME,65
|
||||
.equ U_RELEASE,65*2
|
||||
.equ U_VERSION,(65*3)
|
||||
.equ U_MACHINE,(65*4)
|
||||
.equ U_DOMAINNAME,65*5
|
||||
|
||||
# offset into the results returned by the sysinfo syscall
|
||||
.equ S_TOTALRAM,32
|
||||
|
||||
# Sycscalls
|
||||
.equ SYSCALL_EXIT, 60
|
||||
.equ SYSCALL_READ, 0
|
||||
.equ SYSCALL_WRITE, 1
|
||||
.equ SYSCALL_OPEN, 2
|
||||
.equ SYSCALL_CLOSE, 3
|
||||
.equ SYSCALL_SYSINFO, 99
|
||||
.equ SYSCALL_UNAME, 63
|
||||
|
||||
#
|
||||
.equ STDIN,0
|
||||
.equ STDOUT,1
|
||||
.equ STDERR,2
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
#=========================
|
||||
# PRINT LOGO
|
||||
#=========================
|
||||
|
||||
# LZSS decompression algorithm implementation
|
||||
# by Stephan Walter 2002, based on LZSS.C by Haruhiko Okumura 1989
|
||||
# optimized some more by Vince Weaver
|
||||
|
||||
# we used to fill the buffer with FREQUENT_CHAR
|
||||
# but, that only gains us one byte of space in the lzss image.
|
||||
# the lzss algorithm does automatic RLE... pretty clever
|
||||
# so we compress with NUL as FREQUENT_CHAR and it is pre-done for us
|
||||
|
||||
mov $(N-F), %ebp # R
|
||||
|
||||
mov $logo, %esi # %esi points to logo (for lodsb)
|
||||
|
||||
mov $out_buffer, %edi # point to out_buffer
|
||||
push %rdi # save this value for later
|
||||
|
||||
xor %ecx, %ecx
|
||||
|
||||
decompression_loop:
|
||||
lodsb # load in a byte
|
||||
|
||||
mov $0xff, %bh # re-load top as a hackish 8-bit counter
|
||||
mov %al, %bl # move in the flags
|
||||
|
||||
test_flags:
|
||||
cmp $logo_end, %esi # have we reached the end?
|
||||
je done_logo # ! if so, exit
|
||||
|
||||
shr $1, %ebx # shift bottom bit into carry flag
|
||||
jc discrete_char # ! if set, we jump to discrete char
|
||||
|
||||
offset_length:
|
||||
lodsw # get match_length and match_position
|
||||
mov %eax,%edx # copy to edx
|
||||
# no need to mask dx, as we do it
|
||||
# by default in output_loop
|
||||
|
||||
shr $(P_BITS),%eax
|
||||
add $(THRESHOLD+1),%al
|
||||
mov %al,%cl # cl = (ax >> P_BITS) + THRESHOLD + 1
|
||||
# (=match_length)
|
||||
|
||||
output_loop:
|
||||
and $POSITION_MASK,%dh # mask it
|
||||
mov text_buf(%rdx), %al # load byte from text_buf[]
|
||||
inc %edx # advance pointer in text_buf
|
||||
store_byte:
|
||||
stosb # store it
|
||||
|
||||
mov %al, text_buf(%rbp) # store also to text_buf[r]
|
||||
inc %ebp # r++
|
||||
and $(N-1), %bp # mask r
|
||||
|
||||
loop output_loop # repeat until k>j
|
||||
|
||||
or %bh,%bh # ! if 0 we shifted through 8 and must
|
||||
jnz test_flags # re-load flags
|
||||
|
||||
jmp decompression_loop
|
||||
|
||||
discrete_char:
|
||||
lodsb # load a byte
|
||||
inc %ecx # we set ecx to one so byte
|
||||
# will be output once
|
||||
# (how do we know ecx is zero?)
|
||||
|
||||
jmp store_byte # and cleverly store it
|
||||
|
||||
|
||||
# end of LZSS code
|
||||
|
||||
done_logo:
|
||||
|
||||
pop %rbp # get out_buffer and keep in bp
|
||||
mov %ebp,%ecx # move out_buffer to ecx
|
||||
|
||||
call write_stdout # print the logo
|
||||
|
||||
#
|
||||
# Setup
|
||||
#
|
||||
setup:
|
||||
mov $strcat,%edx # use rdx as call pointer (smaller op)
|
||||
|
||||
|
||||
#==========================
|
||||
# PRINT VERSION
|
||||
#==========================
|
||||
|
||||
# push $SYSCALL_UNAME # uname syscall
|
||||
# pop %rax # in 3 bytes
|
||||
mov $uname_info,%edi # uname struct (0 extend address)
|
||||
# syscall # do syscall
|
||||
|
||||
mov %ebp,%edi # point %edi to out_buffer
|
||||
|
||||
mov $(uname_info+U_SYSNAME),%esi # os-name from uname "Linux"
|
||||
call *%rdx # call strcat
|
||||
|
||||
mov $ver_string,%esi # source is " Version "
|
||||
call *%rdx # call strcat
|
||||
push %rsi # save our .txt pointer
|
||||
|
||||
mov $(uname_info+U_RELEASE),%esi # version from uname "2.4.1"
|
||||
call *%rdx # call strcat
|
||||
|
||||
pop %rsi # restore .txt pointer
|
||||
# source is ", Compiled "
|
||||
call *%rdx # call strcat
|
||||
push %rsi # store for later
|
||||
|
||||
mov $(uname_info+U_VERSION),%esi # compiled date
|
||||
call *%rdx # call strcat
|
||||
|
||||
mov %ebp,%ecx # move out_buffer to ecx
|
||||
|
||||
mov $0xa,%ax # store linefeed on end
|
||||
stosw # and zero
|
||||
|
||||
call *%rdx # call strcat
|
||||
|
||||
call center_and_print # center and print
|
||||
|
||||
#===============================
|
||||
# Middle-Line
|
||||
#===============================
|
||||
middle_line:
|
||||
#=========
|
||||
# Load /proc/cpuinfo into buffer
|
||||
#=========
|
||||
|
||||
push %rdx # save call pointer
|
||||
|
||||
# push $SYSCALL_OPEN # load 5 [ open() ]
|
||||
# pop %rax # in 3 bytes
|
||||
|
||||
# mov $cpuinfo,%edi # '/proc/cpuinfo'
|
||||
# xor %esi,%esi # 0 = O_RDONLY <bits/fcntl.h>
|
||||
# cdq # clear edx in clever way
|
||||
# syscall # syscall. fd in eax.
|
||||
# we should check that eax>=0
|
||||
|
||||
# mov %eax,%edi # save our fd
|
||||
|
||||
# xor %eax,%eax # SYSCALL_READ make== 0
|
||||
|
||||
mov $disk_buffer,%esi
|
||||
|
||||
# mov $16,%dh # 4096 is maximum size of proc file #)
|
||||
# we load sneakily by knowing
|
||||
# 16<<8 = 4096. be sure edx clear
|
||||
|
||||
# syscall
|
||||
|
||||
# push $SYSCALL_CLOSE # close (to be correct)
|
||||
# pop %rax
|
||||
# syscall
|
||||
|
||||
#=============
|
||||
# Number of CPUs
|
||||
#=============
|
||||
number_of_cpus:
|
||||
|
||||
xor %ebx,%ebx # chip count
|
||||
|
||||
# $disk_buffer still in %rsi
|
||||
bogo_loop:
|
||||
mov (%rsi), %eax # load 4 bytes into eax
|
||||
inc %esi # increment pointer
|
||||
|
||||
cmp $0,%al # check for end of file
|
||||
je done_bogo
|
||||
|
||||
# Grrr, due to a bug in binutils 2.18.50.0.9
|
||||
# (which unfortunately shipped with Fedora 10)
|
||||
# http://sourceware.org/bugzilla/show_bug.cgi?id=6878
|
||||
# We can't use the apostrophe character
|
||||
|
||||
# cmp $('o'<<24+'g'<<16+'o'<<8+'b'),%eax
|
||||
cmp $(0x6f<<24+0x67<<16+0x6f<<8+0x62),%eax
|
||||
# "bogo" in little-endian
|
||||
|
||||
jne bogo_loop # ! if not equal, keep going
|
||||
add $2,%ebx # otherwise, we have a bogo
|
||||
# 2 times too for future magic
|
||||
jmp bogo_loop
|
||||
|
||||
done_bogo:
|
||||
lea one-6(%rbx,%rbx,2), %esi
|
||||
# Load into esi
|
||||
# [one]+(num_cpus*6)
|
||||
#
|
||||
# the above multiplies by three
|
||||
# esi = (ebx+(ebx*2))
|
||||
# and we double-incremented ebx
|
||||
# earlier
|
||||
|
||||
mov %ebp,%edi # move output buffer to edi
|
||||
|
||||
pop %rdx # restore call pointer
|
||||
call *%rdx # copy it (call strcat)
|
||||
|
||||
# mov $' ',%al # print a space
|
||||
mov $0x20,%al # print a space
|
||||
|
||||
stosb
|
||||
|
||||
push %rbx
|
||||
push %rdx # store strcat pointer
|
||||
|
||||
#=========
|
||||
# MHz
|
||||
#=========
|
||||
print_mhz:
|
||||
# mov $('z'<<24+'H'<<16+'M'<<8+' '),%ebx
|
||||
mov $(0x7a<<24+0x48<<16+0x4d<<8+0x20),%ebx
|
||||
# find ' MHz' and grab up to .
|
||||
# we are little endian
|
||||
# mov $'.',%ah
|
||||
mov $0x2e,%ah
|
||||
|
||||
# below is same as "sub $(strcat-find_string),%edx
|
||||
# gas won't let us force the one-byte constant
|
||||
.byte 0x83,0xEA,strcat-find_string
|
||||
|
||||
call *%rdx # call find string
|
||||
|
||||
mov %ebx,%eax # clever way to get MHz in, sadly
|
||||
ror $8,%eax # not any smaller than a mov
|
||||
stosl
|
||||
|
||||
#=========
|
||||
# Chip Name
|
||||
#=========
|
||||
chip_name:
|
||||
# mov $('e'<<24+'m'<<16+'a'<<8+'n'),%ebx
|
||||
mov $(0x65<<24+0x6d<<16+0x61<<8+0x6e),%ebx
|
||||
# find 'name\t: ' and grab up to \n
|
||||
# we are little endian
|
||||
# mov $' ',%ah
|
||||
mov $0x20,%ah
|
||||
call *%rdx # call find_string
|
||||
stosb
|
||||
call skip_spaces
|
||||
|
||||
pop %rdx
|
||||
pop %rbx # restore chip count
|
||||
pop %rsi
|
||||
|
||||
call *%rdx # ' Processor'
|
||||
cmpb $2,%bl
|
||||
jne print_s
|
||||
inc %rsi # ! if singular, skip the s
|
||||
print_s:
|
||||
call *%rdx # 's, '
|
||||
|
||||
push %rsi # restore the values
|
||||
push %rdx
|
||||
|
||||
#========
|
||||
# RAM
|
||||
#========
|
||||
|
||||
# push %rdi
|
||||
# push $SYSCALL_SYSINFO # sysinfo() syscall
|
||||
# pop %rax
|
||||
# mov $sysinfo_buff,%edi
|
||||
# syscall
|
||||
# pop %rdi
|
||||
|
||||
# The following has to be a 64 bit load, to support
|
||||
# Ram > 4GB
|
||||
mov (sysinfo_buff+S_TOTALRAM),%rax # size in bytes of RAM
|
||||
shr $20,%rax # divide by 1024*1024 to get M
|
||||
adc $0, %eax # round
|
||||
|
||||
call num_to_ascii
|
||||
|
||||
pop %rdx # restore strcat pointer
|
||||
|
||||
pop %rsi # print 'M RAM, '
|
||||
call *%rdx # call strcat
|
||||
|
||||
push %rsi
|
||||
|
||||
#========
|
||||
# Bogomips
|
||||
#========
|
||||
|
||||
# mov $('s'<<24+'p'<<16+'i'<<8+'m'),%ebx
|
||||
mov $(0x73<<24+0x70<<16+0x69<<8+0x6d),%ebx
|
||||
# find 'mips\t: ' and grab up to \n
|
||||
mov $0xa,%ah
|
||||
call find_string
|
||||
|
||||
pop %rsi # bogo total follows RAM
|
||||
|
||||
call *%rdx # call strcat
|
||||
|
||||
push %rsi
|
||||
|
||||
mov %ebp,%ecx # point ecx to out_buffer
|
||||
|
||||
push %rcx
|
||||
call center_and_print # center and print
|
||||
|
||||
#=================================
|
||||
# Print Host Name
|
||||
#=================================
|
||||
last_line:
|
||||
mov %ebp,%edi # point to output_buffer
|
||||
|
||||
mov $(uname_info+U_NODENAME),%esi # host name from uname()
|
||||
call *%rdx # call strcat
|
||||
|
||||
pop %rcx # ecx is unchanged
|
||||
call center_and_print # center and print
|
||||
|
||||
pop %rcx # (.txt) pointer to default_colors
|
||||
|
||||
call write_stdout
|
||||
|
||||
#================================
|
||||
# Exit
|
||||
#================================
|
||||
exit:
|
||||
push $SYSCALL_EXIT # Put exit syscall in rax
|
||||
pop %rax
|
||||
|
||||
xor %edi,%edi # Make return value $0
|
||||
syscall
|
||||
|
||||
|
||||
#=================================
|
||||
# FIND_STRING
|
||||
#=================================
|
||||
# ah is char to end at
|
||||
# ebx is 4-char ascii string to look for
|
||||
# edi points at output buffer
|
||||
|
||||
find_string:
|
||||
|
||||
mov $disk_buffer-1,%esi # look in cpuinfo buffer
|
||||
find_loop:
|
||||
inc %esi
|
||||
cmpb $0, (%rsi) # are we at EOF?
|
||||
je done # ! if so, done
|
||||
|
||||
cmp (%rsi), %ebx # do the strings match?
|
||||
jne find_loop # ! if not, loop
|
||||
|
||||
# ! if we get this far, we matched
|
||||
|
||||
find_colon:
|
||||
lodsb # repeat till we find colon
|
||||
cmp $0,%al
|
||||
je done
|
||||
# cmp $':',%al
|
||||
cmp $0x3a,%al
|
||||
jne find_colon
|
||||
|
||||
skip_spaces:
|
||||
lodsb # skip spaces
|
||||
cmp $0x20,%al # Loser new intel chips have lots??
|
||||
je skip_spaces
|
||||
|
||||
store_loop:
|
||||
cmp $0,%al
|
||||
je done
|
||||
cmp %ah,%al # is it end string?
|
||||
je almost_done # ! if so, finish
|
||||
# cmp $'\n',%al
|
||||
cmp $0xa,%al
|
||||
je almost_done
|
||||
stosb # ! if not store and continue
|
||||
lodsb
|
||||
|
||||
jmp store_loop
|
||||
|
||||
almost_done:
|
||||
movb $0, (%rdi) # replace last value with NUL
|
||||
done:
|
||||
ret
|
||||
|
||||
|
||||
#================================
|
||||
# strcat
|
||||
#================================
|
||||
|
||||
strcat:
|
||||
lodsb # load a byte from [ds:esi]
|
||||
stosb # store a byte to [es:edi]
|
||||
cmp $0,%al # is it zero?
|
||||
jne strcat # ! if not loop
|
||||
dec %edi # point to one less than null
|
||||
ret # return
|
||||
|
||||
#==============================
|
||||
# center_and_print
|
||||
#==============================
|
||||
# string to center in ecx
|
||||
|
||||
center_and_print:
|
||||
push %rdx # save strcat pointer
|
||||
push %rcx # save the string pointer
|
||||
inc %edi # move to a clear buffer
|
||||
push %rdi # save for later
|
||||
|
||||
# mov $('['<<8+27),%ax # we want to output ^[[
|
||||
mov $(0x5b<<8+27),%ax # we want to output ^[[
|
||||
stosw
|
||||
|
||||
cdq # clear dx
|
||||
|
||||
str_loop2: # find end of string
|
||||
inc %edx
|
||||
cmpb $0,(%rcx,%rdx) # repeat till we find zero
|
||||
jne str_loop2
|
||||
|
||||
push $81 # one added to cheat, we don't
|
||||
# count the trailing '\n'
|
||||
pop %rax
|
||||
|
||||
cmp %eax,%edx # see if we are >=80
|
||||
jl not_too_big # ! if so, don't center
|
||||
push $80
|
||||
pop %rdx
|
||||
|
||||
not_too_big:
|
||||
sub %edx,%eax # subtract size from 80
|
||||
|
||||
shr %eax # then divide by 2
|
||||
|
||||
call num_to_ascii # print number of spaces
|
||||
# mov $'C',%al # tack a 'C' on the end
|
||||
mov $0x43,%al # tack a 'C' on the end
|
||||
# ah is zero from num_to_ascii
|
||||
stosw # store C and a NULL
|
||||
pop %rcx # pop the pointer to ^[[xC
|
||||
|
||||
call write_stdout # write to the screen
|
||||
|
||||
done_center:
|
||||
pop %rcx # restore string pointer
|
||||
# and trickily print the real string
|
||||
|
||||
pop %rdx # restore strcat pointer
|
||||
|
||||
#================================
|
||||
# WRITE_STDOUT
|
||||
#================================
|
||||
# ecx has string
|
||||
# eax,ebx,ecx,edx trashed
|
||||
write_stdout:
|
||||
push %rdx
|
||||
push $SYSCALL_WRITE # put 4 in eax (write syscall)
|
||||
pop %rax # in 3 bytes of code
|
||||
|
||||
cdq # clear edx
|
||||
|
||||
lea 1(%rdx),%edi # put 1 in ebx (stdout)
|
||||
# in 3 bytes of code
|
||||
|
||||
mov %ecx,%esi
|
||||
|
||||
str_loop1:
|
||||
inc %edx
|
||||
cmpb $0,(%rcx,%rdx) # repeat till zero
|
||||
jne str_loop1
|
||||
|
||||
syscall # run the syscall
|
||||
pop %rdx
|
||||
ret
|
||||
|
||||
##############################
|
||||
# num_to_ascii
|
||||
##############################
|
||||
# ax = value to print
|
||||
# edi points to where we want it
|
||||
|
||||
num_to_ascii:
|
||||
push $10
|
||||
pop %rbx
|
||||
xor %ecx,%ecx # clear ecx
|
||||
div_by_10:
|
||||
cdq # clear edx
|
||||
div %ebx # divide
|
||||
push %rdx # save for later
|
||||
inc %ecx # add to length counter
|
||||
or %eax,%eax # was Q zero?
|
||||
jnz div_by_10 # ! if not divide again
|
||||
|
||||
write_out:
|
||||
pop %rax # restore in reverse order
|
||||
add $0x30, %al # convert to ASCII
|
||||
stosb # save digit
|
||||
loop write_out # loop till done
|
||||
ret
|
||||
|
||||
#===========================================================================
|
||||
# section .data
|
||||
#===========================================================================
|
||||
.data
|
||||
|
||||
ver_string: .ascii " Version \0"
|
||||
compiled_string: .ascii ", Compiled \0"
|
||||
processor: .ascii " Processor\0"
|
||||
s_comma: .ascii "s, \0"
|
||||
ram_comma: .ascii "M RAM, \0"
|
||||
bogo_total: .ascii " Bogomips Total\n\0"
|
||||
|
||||
default_colors: .ascii "\033[0m\n\n\0"
|
||||
|
||||
cpuinfo: .ascii "/proc/cpuinfo\0"
|
||||
|
||||
|
||||
one: .ascii "One\0\0\0"
|
||||
two: .ascii "Two\0\0\0"
|
||||
three: .ascii "Three\0"
|
||||
four: .ascii "Four\0"
|
||||
|
||||
.include "logo.lzss_new"
|
||||
|
||||
disk_buffer:
|
||||
.ascii "processor : 0\n"
|
||||
.ascii "vendor_id : GenuineIntel\n"
|
||||
.ascii "cpu family : 15\n"
|
||||
.ascii "model : 6\n"
|
||||
.ascii "model name : Intel(R) Xeon(TM) CPU 3.46GHz\n"
|
||||
.ascii "stepping : 4\n"
|
||||
.ascii "cpu MHz : 3200.000\n"
|
||||
.ascii "cache size : 2048 KB\n"
|
||||
.ascii "physical id : 0\n"
|
||||
.ascii "siblings : 2\n"
|
||||
.ascii "core id : 0\n"
|
||||
.ascii "cpu cores : 2\n"
|
||||
.ascii "apicid : 0\n"
|
||||
.ascii "initial apicid : 0\n"
|
||||
.ascii "fpu : yes\n"
|
||||
.ascii "fpu_exception : yes\n"
|
||||
.ascii "cpuid level : 6\n"
|
||||
.ascii "wp : yes\n"
|
||||
.ascii "flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl vmx est cid cx16 xtpr pdcm lahf_lm tpr_shadow\n"
|
||||
.ascii "bogomips : 6934.38\n"
|
||||
.ascii "clflush size : 64\n"
|
||||
.ascii "cache_alignment : 128\n"
|
||||
.ascii "address sizes : 36 bits physical, 48 bits virtual\n"
|
||||
.ascii "power management:\n"
|
||||
.ascii "\n"
|
||||
.ascii "processor : 1\n"
|
||||
.ascii "vendor_id : GenuineIntel\n"
|
||||
.ascii "cpu family : 15\n"
|
||||
.ascii "model : 6\n"
|
||||
.ascii "model name : Intel(R) Xeon(TM) CPU 3.46GHz\n"
|
||||
.ascii "stepping : 4\n"
|
||||
.ascii "cpu MHz : 3200.000\n"
|
||||
.ascii "cache size : 2048 KB\n"
|
||||
.ascii "physical id : 1\n"
|
||||
.ascii "siblings : 2\n"
|
||||
.ascii "core id : 0\n"
|
||||
.ascii "cpu cores : 2\n"
|
||||
.ascii "apicid : 4\n"
|
||||
.ascii "initial apicid : 4\n"
|
||||
.ascii "fpu : yes\n"
|
||||
.ascii "fpu_exception : yes\n"
|
||||
.ascii "cpuid level : 6\n"
|
||||
.ascii "wp : yes\n"
|
||||
.ascii "flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl vmx est cid cx16 xtpr pdcm lahf_lm tpr_shadow\n"
|
||||
.ascii "bogomips : 6934.13\n"
|
||||
.ascii "clflush size : 64\n"
|
||||
.ascii "cache_alignment : 128\n"
|
||||
.ascii "address sizes : 36 bits physical, 48 bits virtual\n"
|
||||
.ascii "power management:\n\0"
|
||||
|
||||
uname_info:
|
||||
.ascii "Linux\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
|
||||
.ascii "domori\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
|
||||
.ascii "2.6.29\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
|
||||
.ascii "#1 SMP Mon May 4 09:51:54 EDT 2009\0\0"
|
||||
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
|
||||
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
|
||||
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
|
||||
sysinfo_buff:
|
||||
.long 0,0,0,0,0,0,0,0,2048*1024*1024,0,0,0,0,0,0,0
|
||||
|
||||
|
||||
#============================================================================
|
||||
# section .bss
|
||||
#============================================================================
|
||||
.bss
|
||||
|
||||
.lcomm text_buf, (N+F-1)
|
||||
.lcomm out_buffer,16384
|
||||
@@ -0,0 +1,54 @@
|
||||
T:1:10 :7:10 :5:38 :2:44 :8:65 :9:662 :4:119 :6:2 :3:51
|
||||
T:7:5 :5:16 :2:18 :8:52 :9:858 :4:35 :6:1 :3:15
|
||||
T:7:5 :5:16 :2:18 :8:52 :9:858 :4:35 :6:1 :3:15
|
||||
T:7:5 :5:14 :2:16 :8:91 :9:863 :4:7 :6:1 :3:3
|
||||
T:7:5 :5:12 :2:14 :8:78 :9:880 :4:7 :6:1 :3:3
|
||||
T:7:5 :5:6 :2:8 :8:52 :9:928 :6:1
|
||||
T:7:5 :5:10 :2:10 :8:65 :9:909 :6:1
|
||||
T:7:5 :5:14 :2:18 :8:117 :9:845 :6:1
|
||||
T:5:8 :2:8 :8:52 :9:932
|
||||
T:7:5 :5:8 :2:10 :8:65 :9:911 :6:1
|
||||
T:5:8 :2:8 :8:52 :9:932
|
||||
T:7:5 :5:6 :2:8 :8:52 :9:928 :6:1
|
||||
T:5:6 :2:6 :8:39 :9:949
|
||||
T:7:5 :5:6 :2:8 :8:52 :9:928 :6:1
|
||||
T:5:4 :2:4 :8:26 :9:966
|
||||
T:7:5 :5:12 :2:14 :8:78 :9:880 :4:7 :6:1 :3:3
|
||||
T:5:6 :2:6 :8:39 :9:949
|
||||
T:7:5 :5:8 :2:10 :8:65 :9:911 :6:1
|
||||
T:7:5 :5:14 :2:16 :8:91 :9:863 :4:7 :6:1 :3:3
|
||||
T:5:8 :2:8 :8:52 :9:932
|
||||
T:7:5 :5:10 :2:12 :8:78 :9:894 :6:1
|
||||
T:7:5 :5:10 :2:12 :8:74 :9:898 :6:1
|
||||
T:5:12 :2:12 :8:82 :9:894
|
||||
T:7:5 :5:8 :2:8 :8:39 :9:390 :4:7 :6:1 :3:3 :10:3 :11:9 :12:527
|
||||
T:12:1000
|
||||
T:12:1000
|
||||
T:12:1000
|
||||
T:12:1000
|
||||
T:12:1000
|
||||
T:12:1000
|
||||
T:12:1000
|
||||
T:15:5 :18:2 :19:3 :20:2 :21:3 :22:4 :16:281 :17:10 :12:687 :13:1 :14:2
|
||||
T:23:1 :32:7 :34:351 :33:176 :16:3 :17:2 :24:10 :25:195 :26:4 :27:3 :30:4 :31:11 :11:9 :12:204 :13:2 :14:4 :28:9 :29:5
|
||||
T:34:666 :33:334
|
||||
T:34:667 :33:333
|
||||
T:34:665 :33:333 :35:2
|
||||
T:34:667 :33:333
|
||||
T:34:667 :33:333
|
||||
T:34:666 :33:334
|
||||
T:34:666 :33:332 :35:2
|
||||
T:34:357 :33:178 :36:4 :37:8 :38:4 :40:258 :39:173 :16:16 :17:2
|
||||
T:49:6 :50:2 :51:4 :52:2 :53:1 :54:6 :56:3 :38:4 :40:333 :39:225 :41:39 :42:26 :43:15 :44:46 :45:46 :46:40 :47:60 :48:6 :16:88 :17:4 :28:9 :55:18 :29:17
|
||||
T:57:4 :38:4 :40:591 :39:395 :16:4 :17:2
|
||||
T:40:600 :39:400
|
||||
T:58:2 :59:4 :40:453 :39:303 :41:18 :42:12 :43:6 :44:16 :45:16 :46:14 :47:21 :48:2 :16:68 :17:2 :24:10 :25:53
|
||||
|
||||
|
||||
# Thread 1
|
||||
# Total intervals: 45 (Interval Size 1000)
|
||||
# Total instructions: 45639
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 0
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Thread 1
|
||||
# Total intervals: 45 (Interval Size 1000)
|
||||
# Total instructions: 45639
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 0
|
||||
@@ -0,0 +1,17 @@
|
||||
[0;1;37;47m#################################################################[0;30;47m#####[1;37m#########[1;37;40m
|
||||
[0;1;37;47m################################################################[0;30;47m#######[1;37m########[1;37;40m
|
||||
[0;1;37;47m###################[31m#[37m############################################[0;30;47m##[1;37mO[0;30;47m#[1;37mO[0;30;47m##[1;37m########[1;37;40m
|
||||
[0;1;37;47m##[0;30;47m######[1;37m##########[31m##[0;30;47m#[1;37m###########################################[0;30;47m#[1;33m#####[0;30;47m#[1;37m########[1;37;40m
|
||||
[0;1;37;47m####[0;30;47m##[1;37m#############[0;30;47m#[1;37m##########################################[0;30;47m##[1;37m##[33m###[37m##[0;30;47m##[1;37m######[1;37;40m
|
||||
[0;1;37;47m####[0;30;47m##[1;37m#########[31m###[37m###[0;30;47m###[1;37m#[0;30;47m####[1;37m###[0;30;47m###[1;37m####[0;30;47m###[1;37m##[0;30;47m#####[1;37m#[0;30;47m######[1;37m#####[0;30;47m#[1;37m##########[0;30;47m##[1;37m#####[1;37;40m
|
||||
[0;1;37;47m####[0;30;47m##[1;37m########[31m#[37m##[31m#[0;30;47m#[1;37m###[0;30;47m###[1;37m####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m####[0;30;47m##[1;37m###[0;30;47m##[1;37m#######[0;30;47m#[1;37m############[0;30;47m##[1;37m####[1;37;40m
|
||||
[0;1;37;47m####[0;30;47m##[1;37m#######[31m#[37m###[31m#[0;30;47m#[1;37m###[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m######[0;30;47m###[1;37m#########[0;30;47m#[1;37m############[0;30;47m###[1;37m###[1;37;40m
|
||||
[0;1;37;47m####[0;30;47m##[1;37m##########[31m##[0;30;47m#[1;37m###[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m######[0;30;47m###[1;37m########[33m##[0;30;47m#[1;37m###########[0;30;47m##[1;33m#[37m###[1;37;40m
|
||||
[0;1;37;47m####[0;30;47m##[1;37m#######[0;30;47m#[1;37m#[31m##[0;30;47m#[1;37m####[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m#####[0;30;47m##[1;37m#[0;30;47m##[1;37m#####[33m######[0;30;47m#[1;37m#######[30m#[33m######[37m#[1;37;40m
|
||||
[0;1;37;47m####[0;30;47m##[1;37m######[0;30;47m##[1;37m#[31m##[0;30;47m#[1;37m#[0;30;47m#[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m###[1;37m###[0;30;47m###[1;37m####[0;30;47m##[1;37m###[0;30;47m##[1;37m####[33m#######[0;30;47m#[1;37m#####[0;30;47m#[1;33m#######[37m#[1;37;40m
|
||||
[0;1;37;47m##[0;30;47m############[1;37m##[0;30;47m###[1;37m##[0;30;47m####[1;37m###[0;30;47m####[1;37m###[0;30;47m####[1;37m#[0;30;47m###[1;37m#[0;30;47m#####[1;37m#[0;30;47m######[1;37m###[33m#####[30m#[0;30;47m#####[1m#[33m#####[37m###[1;37;40m
|
||||
|
||||
[7CLinux Version 2.6.29, Compiled #1 SMP Mon May 4 09:51:54 EDT 2009
|
||||
[2CTwo 3200MHz Intel(R) Xeon(TM) Processors, 2048M RAM, 6934.38 Bogomips Total
|
||||
[37Cdomori[0m
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
prog: ll
|
||||
prereq: test -x ll
|
||||
vgopts: --interval-size=1000 --bb-out-file=ll.out.bb
|
||||
post: cat ll.out.bb
|
||||
cleanup: rm ll.out.bb
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
# count for 1 million instructions
|
||||
# total is 2 + 1 + 499997*2 + 3
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
xor %rcx,%rcx # not needed, pads total to 1M
|
||||
xor %rax,%rax # not needed, pads total to 1M
|
||||
|
||||
mov $499997,%rcx # load counter
|
||||
test_loop:
|
||||
dec %rcx # repeat count times
|
||||
jnz test_loop
|
||||
|
||||
#================================
|
||||
# Exit
|
||||
#================================
|
||||
exit:
|
||||
xor %rdi,%rdi # we return 0
|
||||
mov $60,%rax # put exit syscall number (60) in rax
|
||||
syscall
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
T:1:5 :2:99996
|
||||
T:2:100000
|
||||
T:2:100000
|
||||
T:2:100000
|
||||
T:2:100000
|
||||
T:2:100000
|
||||
T:2:100000
|
||||
T:2:100000
|
||||
T:2:100000
|
||||
|
||||
|
||||
# Thread 1
|
||||
# Total intervals: 10 (Interval Size 100000)
|
||||
# Total instructions: 1000000
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 0
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Thread 1
|
||||
# Total intervals: 10 (Interval Size 100000)
|
||||
# Total instructions: 1000000
|
||||
# Total reps: 0
|
||||
# Unique reps: 0
|
||||
# Total fldcw instructions: 0
|
||||
@@ -0,0 +1,5 @@
|
||||
prog: million
|
||||
vgopts: --interval-size=100000 --bb-out-file=million.out.bb
|
||||
post: cat million.out.bb
|
||||
cleanup: rm million.out.bb
|
||||
|
||||
@@ -0,0 +1,347 @@
|
||||
#
|
||||
# rep, repe (repz) and repne (repnz) prefixed string instructions
|
||||
# only count as one instruction, even though they repeat many times
|
||||
# This test makes sure the bbv plugin counts these instructions properly
|
||||
# The answer is validated to hw perf counters.
|
||||
#
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
cld # we want these to happen forward
|
||||
|
||||
|
||||
#===============================================
|
||||
# Some SSE2 instructions start with 0xf2 or 0xf3
|
||||
# Check for them, to make sure our rep detection
|
||||
# handles things properly.
|
||||
# We should check this on x86 too, but then we'd
|
||||
# have to check for SSE2 capability somehow?
|
||||
#===================================
|
||||
false_positives:
|
||||
|
||||
movdqu %xmm1,%xmm2
|
||||
movdqu %xmm2,%xmm1
|
||||
addsd %xmm1,%xmm2
|
||||
pause
|
||||
|
||||
#===================================
|
||||
# Check varied order of the size prefix
|
||||
# with the rep prefix. Older binutils
|
||||
# did this one way, newer binutils the other
|
||||
#===================================
|
||||
|
||||
size_prefix:
|
||||
# test 16-bit load
|
||||
|
||||
mov $8192, %rcx
|
||||
mov $buffer1, %rsi # set source
|
||||
.byte 0x66, 0xf3, 0xad # lodsw
|
||||
|
||||
mov $8192, %rcx
|
||||
mov $buffer1, %rsi # set source
|
||||
.byte 0xf3, 0x66, 0xad # lodsw
|
||||
|
||||
|
||||
|
||||
|
||||
#===================================
|
||||
# Load and Store Instructions
|
||||
#===================================
|
||||
loadstore:
|
||||
xor %rax, %rax
|
||||
mov $0xd, %al # set eax to d
|
||||
|
||||
# test 8-bit store
|
||||
|
||||
mov $16384, %rcx
|
||||
mov $buffer1, %rdi # set destination
|
||||
rep stosb # store d 16384 times, auto-increment
|
||||
|
||||
# test 8-bit load
|
||||
|
||||
mov $16384, %rcx
|
||||
mov $buffer1, %rsi # set source
|
||||
rep lodsb # load byte 16384 times, auto-increment
|
||||
|
||||
cmp $0xd,%al # if we loaded wrong value
|
||||
jne print_error # print an error
|
||||
|
||||
# test 16-bit store
|
||||
|
||||
mov $0x020d,%ax # store 0x020d
|
||||
|
||||
mov $8192, %rcx
|
||||
mov $buffer1, %rdi # set destination
|
||||
rep stosw # store 8192 times, auto-increment
|
||||
|
||||
# test 16-bit load
|
||||
|
||||
mov $8192, %rcx
|
||||
mov $buffer1, %rsi # set source
|
||||
rep lodsw # load 8192 times, auto-increment
|
||||
|
||||
cmp $0x020d,%ax # if we loaded wrong value
|
||||
jne print_error # print an error
|
||||
|
||||
# test 32-bit store
|
||||
|
||||
mov $0x0feb1378,%eax # store 0x0feb1378
|
||||
|
||||
mov $4096, %rcx
|
||||
mov $buffer1, %rdi # set destination
|
||||
rep stosl # store 4096 times, auto-increment
|
||||
|
||||
# test 32-bit load
|
||||
|
||||
mov $4096, %rcx
|
||||
mov $buffer1, %rsi # set source
|
||||
rep lodsl # load 4096 times, auto-increment
|
||||
|
||||
cmp $0x0feb1378,%eax # if we loaded wrong value
|
||||
jne print_error # print an error
|
||||
|
||||
# test 64-bit store
|
||||
|
||||
mov $0xfeb131978a5a5a5a,%rax
|
||||
|
||||
mov $2048, %rcx
|
||||
mov $buffer1, %rdi # set destination
|
||||
rep stosq # store 2048 times, auto-increment
|
||||
|
||||
# test 64-bit load
|
||||
|
||||
mov $2048, %rcx
|
||||
mov $buffer1, %rsi # set source
|
||||
rep lodsq # load 2048 times, auto-increment
|
||||
|
||||
cmp $0x8a5a5a5a,%eax
|
||||
# !if we loaded wrong value
|
||||
jne print_error # print an error
|
||||
|
||||
|
||||
#=============================
|
||||
# Move instructions
|
||||
#=============================
|
||||
moves:
|
||||
# test 8-bit move
|
||||
|
||||
mov $16384, %rcx
|
||||
mov $buffer1, %rsi
|
||||
mov $buffer2, %rdi
|
||||
rep movsb
|
||||
|
||||
# test 16-bit move
|
||||
|
||||
mov $8192, %rcx
|
||||
mov $buffer2, %rsi
|
||||
mov $buffer1, %rdi
|
||||
rep movsw
|
||||
|
||||
# test 32-bit move
|
||||
|
||||
mov $4096, %rcx
|
||||
mov $buffer1, %rsi
|
||||
mov $buffer2, %rdi
|
||||
rep movsl
|
||||
|
||||
# test 64-bit move
|
||||
|
||||
mov $2048, %rcx
|
||||
mov $buffer1, %rsi
|
||||
mov $buffer2, %rdi
|
||||
rep movsq
|
||||
|
||||
|
||||
#==================================
|
||||
# Compare equal instructions
|
||||
#==================================
|
||||
compare_equal:
|
||||
# first set up the areas to compare
|
||||
|
||||
mov $0xa5a5a5a5,%eax
|
||||
mov $buffer1, %rdi
|
||||
mov $4096, %rcx
|
||||
rep stosl
|
||||
|
||||
mov $0xa5a5a5a5,%eax
|
||||
mov $buffer2, %rdi
|
||||
mov $4096, %rcx
|
||||
rep stosl
|
||||
|
||||
|
||||
# test 8-bit
|
||||
|
||||
mov $buffer1,%rsi
|
||||
mov $buffer2,%rdi
|
||||
mov $16384, %rcx
|
||||
repe cmpsb
|
||||
jnz print_error
|
||||
|
||||
# test 16-bit
|
||||
|
||||
mov $buffer1,%rsi
|
||||
mov $buffer2,%rdi
|
||||
mov $8192, %rcx
|
||||
repe cmpsw
|
||||
jnz print_error
|
||||
|
||||
# test 32-bit
|
||||
|
||||
mov $buffer1,%rsi
|
||||
mov $buffer2,%rdi
|
||||
mov $4096, %rcx
|
||||
repe cmpsl
|
||||
jnz print_error
|
||||
|
||||
# test 64-bit
|
||||
|
||||
mov $buffer1,%rsi
|
||||
mov $buffer2,%rdi
|
||||
mov $2048, %rcx
|
||||
repe cmpsq
|
||||
jnz print_error
|
||||
|
||||
|
||||
|
||||
#==================================
|
||||
# Compare not equal instructions
|
||||
#==================================
|
||||
compare_noteq:
|
||||
# change second buffer
|
||||
|
||||
mov $0x5a5a5a5a,%eax
|
||||
mov $buffer2, %rdi
|
||||
mov $4096, %rcx
|
||||
rep stosl
|
||||
|
||||
# test 8-bit
|
||||
|
||||
mov $buffer1,%rsi
|
||||
mov $buffer2,%rdi
|
||||
mov $16384, %rcx
|
||||
# repne cmpsb FIXME! Not implemented valgrind
|
||||
# je print_error
|
||||
|
||||
# test 16-bit
|
||||
|
||||
mov $buffer1,%rsi
|
||||
mov $buffer2,%rdi
|
||||
mov $8192, %rcx
|
||||
# repne cmpsw FIXME! Not implemented valgrind
|
||||
# je print_error
|
||||
|
||||
# test 32-bit
|
||||
|
||||
mov $buffer1,%rsi
|
||||
mov $buffer2,%rdi
|
||||
mov $4096, %rcx
|
||||
# repne cmpsl FIXME! Not implemented valgrind
|
||||
# je print_error
|
||||
|
||||
# test 64-bit
|
||||
|
||||
mov $buffer1,%rsi
|
||||
mov $buffer2,%rdi
|
||||
mov $2048, %rcx
|
||||
# repne cmpsq FIXME! Not implemented valgrind
|
||||
# je print_error
|
||||
|
||||
#====================================
|
||||
# Check scan equal instruction
|
||||
#====================================
|
||||
scan_eq:
|
||||
# test 8-bit
|
||||
|
||||
mov $0xa5,%al
|
||||
mov $buffer1,%rdi
|
||||
mov $16384, %rcx
|
||||
repe scasb
|
||||
jnz print_error
|
||||
|
||||
# test 16-bit
|
||||
|
||||
mov $0xa5a5,%ax
|
||||
mov $buffer1,%rdi
|
||||
mov $8192, %rcx
|
||||
repe scasw
|
||||
jnz print_error
|
||||
|
||||
# test 32-bit
|
||||
|
||||
mov $0xa5a5a5a5,%eax
|
||||
mov $buffer1,%rdi
|
||||
mov $4096, %rcx
|
||||
repe scasl
|
||||
jnz print_error
|
||||
|
||||
# test 64-bit
|
||||
|
||||
mov $0xa5a5a5a5a5a5a5a5,%rax
|
||||
mov $buffer1,%rdi
|
||||
mov $2048, %rcx
|
||||
repe scasq
|
||||
jnz print_error
|
||||
|
||||
|
||||
#====================================
|
||||
# Check scan not-equal instruction
|
||||
#====================================
|
||||
|
||||
# test 8-bit
|
||||
scan_ne:
|
||||
mov $0xa5,%al
|
||||
mov $buffer2,%rdi
|
||||
mov $16384, %rcx
|
||||
repne scasb
|
||||
jz print_error
|
||||
|
||||
# test 16-bit
|
||||
|
||||
mov $0xa5a5,%ax
|
||||
mov $buffer2,%rdi
|
||||
mov $8192, %rcx
|
||||
repne scasw
|
||||
jz print_error
|
||||
|
||||
# test 32-bit
|
||||
|
||||
mov $0xa5a5a5a5,%eax
|
||||
mov $buffer2,%rdi
|
||||
mov $4096, %rcx
|
||||
repne scasl
|
||||
jz print_error
|
||||
|
||||
# test 64-bit
|
||||
|
||||
mov $0xa5a5a5a5a5a5a5a5,%rax
|
||||
mov $buffer2,%rdi
|
||||
mov $2048, %rcx
|
||||
repne scasq
|
||||
jz print_error
|
||||
|
||||
jmp exit # no error, skip to exit
|
||||
|
||||
print_error:
|
||||
|
||||
mov $1, %rax # Write syscall
|
||||
mov $1, %rdi # print to stdout
|
||||
mov $error_string, %rsi # string to print
|
||||
mov $16, %edx # strlen
|
||||
syscall # call syscall
|
||||
|
||||
#================================
|
||||
# Exit
|
||||
#================================
|
||||
exit:
|
||||
mov $60,%rax
|
||||
xor %rdi,%rdi # we return 0
|
||||
syscall # and exit
|
||||
|
||||
|
||||
.data
|
||||
error_string: .asciz "Error detected!\n"
|
||||
|
||||
.bss
|
||||
|
||||
.lcomm buffer1, 16384
|
||||
.lcomm buffer2, 16384
|
||||
@@ -0,0 +1,6 @@
|
||||
# Thread 1
|
||||
# Total intervals: 0 (Interval Size 100000)
|
||||
# Total instructions: 152
|
||||
# Total reps: 165917
|
||||
# Unique reps: 29
|
||||
# Total fldcw instructions: 0
|
||||
@@ -0,0 +1,4 @@
|
||||
prog: rep_prefix
|
||||
vgopts: --interval-size=100000 --bb-out-file=rep_prefix.out.bb
|
||||
cleanup: rm rep_prefix.out.bb
|
||||
|
||||
Reference in New Issue
Block a user