mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-19 09:05:17 +08:00
02e32295b2
Add a new check-simd target to the testsuite. The new target creates a subdirectory, generates the necessary Makefiles, and spawns submakes to build and run the tests. Running this testsuite with defaults on my machine takes half of the time the dejagnu testsuite required to only determine whether to run tests. Since the simd testsuite integrated in dejagnu increased the time of the whole libstdc++ testsuite by ~100% this approach is a compromise for speed while not sacrificing coverage too much. Since the test driver is invoked individually per test executable from a Makefile, make's jobserver (-j) trivially parallelizes testing. Testing different flags and with simulator (or remote execution) is possible. E.g. `make check-simd DRIVEROPTS=-q target_list="unix{-m64,-m32}{-march=sandybridge,-march=skylake-avx512}{,- ffast-math}"` runs the testsuite 8 times in different subdirectories, using 8 different combinations of compiler flags, only outputs failing tests (-q), and prints all summaries at the end. It skips most ABI tags by default unless --run-expensive is passed to DRIVEROPTS or GCC_TEST_RUN_EXPENSIVE is not empty. To use a simulator, the CHECK_SIMD_CONFIG variable needs to point to a shell script which calls `define_target <name> <flags> <simulator>` and set target_list as needed. E.g.: case "$target_triplet" in x86_64-*) target_list="unix{-march=sandybridge,-march=skylake-avx512} ;; powerpc64le-*) define_target power8 "-static -mcpu=power8" "/usr/bin/qemu-ppc64le -cpu power8" define_target power9 -mcpu=power9 "$HOME/bin/run_on_gcc135" target_list="power8 power9{,-ffast-math}" ;; esac libstdc++-v3/ChangeLog: * scripts/check_simd: New file. This script is called from the the check-simd target. It determines a set of compiler flags and simulator setups for calling generate_makefile.sh and passes the information back to the check-simd target, which recurses to the generated Makefiles. * scripts/create_testsuite_files: Remove files below simd/tests/ from testsuite_files and place them in testsuite_files_simd. * testsuite/Makefile.am: Add testsuite_files_simd. Add check-simd target. * testsuite/Makefile.in: Regenerate. * testsuite/experimental/simd/driver.sh: New file. This script compiles and runs a given simd test, logging its output and status. It uses the timeout command to implement compile and test timeouts. * testsuite/experimental/simd/generate_makefile.sh: New file. This script generates a Makefile which uses driver.sh to compile and run the tests and collect the logs into a single log file. * testsuite/experimental/simd/tests/abs.cc: New file. Tests abs(simd). * testsuite/experimental/simd/tests/algorithms.cc: New file. Tests min/max(simd, simd). * testsuite/experimental/simd/tests/bits/conversions.h: New file. Contains functions to support tests involving conversions. * testsuite/experimental/simd/tests/bits/make_vec.h: New file. Support functions make_mask and make_vec. * testsuite/experimental/simd/tests/bits/mathreference.h: New file. Support functions to supply precomputed math function reference data. * testsuite/experimental/simd/tests/bits/metahelpers.h: New file. Support code for SFINAE testing. * testsuite/experimental/simd/tests/bits/simd_view.h: New file. * testsuite/experimental/simd/tests/bits/test_values.h: New file. Test functions to easily drive a test with simd objects initialized from a given list of values and a range of random values. * testsuite/experimental/simd/tests/bits/ulp.h: New file. Support code to determine the ULP distance of simd objects. * testsuite/experimental/simd/tests/bits/verify.h: New file. Test framework for COMPARE'ing simd objects and instantiating the test templates with value_type and ABI tag. * testsuite/experimental/simd/tests/broadcast.cc: New file. Test simd broadcasts. * testsuite/experimental/simd/tests/casts.cc: New file. Test simd casts. * testsuite/experimental/simd/tests/fpclassify.cc: New file. Test floating-point classification functions. * testsuite/experimental/simd/tests/frexp.cc: New file. Test frexp(simd). * testsuite/experimental/simd/tests/generator.cc: New file. Test simd generator constructor. * testsuite/experimental/simd/tests/hypot3_fma.cc: New file. Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim). * testsuite/experimental/simd/tests/integer_operators.cc: New file. Test integer operators. * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and modf(simd). * testsuite/experimental/simd/tests/loadstore.cc: New file. Test (converting) simd loads and stores. * testsuite/experimental/simd/tests/logarithm.cc: New file. Test log*(simd). * testsuite/experimental/simd/tests/mask_broadcast.cc: New file. Test simd_mask broadcasts. * testsuite/experimental/simd/tests/mask_conversions.cc: New file. Test simd_mask conversions. * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New file. Test simd_mask implicit conversions. * testsuite/experimental/simd/tests/mask_loadstore.cc: New file. Test simd_mask loads and stores. * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New file. Test simd_mask operators convert as specified. * testsuite/experimental/simd/tests/mask_operators.cc: New file. Test simd_mask compares, subscripts, and negation. * testsuite/experimental/simd/tests/mask_reductions.cc: New file. Test simd_mask reductions. * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test 1-arg math functions on simd. * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test 2-arg math functions on simd. * testsuite/experimental/simd/tests/operator_cvt.cc: New file. Test implicit conversions on simd binary operators behave as specified. * testsuite/experimental/simd/tests/operators.cc: New file. Test simd compares, subscripts, not, unary minus, plus, minus, multiplies, divides, increment, and decrement. * testsuite/experimental/simd/tests/reductions.cc: New file. Test reduce(simd). * testsuite/experimental/simd/tests/remqo.cc: New file. Test remqo(simd). * testsuite/experimental/simd/tests/simd.cc: New file. Basic sanity checks of simd types. * testsuite/experimental/simd/tests/sincos.cc: New file. Test sin(simd) and cos(simd). * testsuite/experimental/simd/tests/split_concat.cc: New file. Test split(simd) and concat(simd, simd). * testsuite/experimental/simd/tests/splits.cc: New file. Test split(simd_mask). * testsuite/experimental/simd/tests/trigonometric.cc: New file. Test remaining trigonometric functions on simd. * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New file. Test trunc(simd), ceil(simd), and floor(simd). * testsuite/experimental/simd/tests/where.cc: New file. Test masked operations using where.
764 lines
24 KiB
Makefile
764 lines
24 KiB
Makefile
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
|
# @configure_input@
|
|
|
|
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
|
|
|
# This Makefile.in is free software; the Free Software Foundation
|
|
# gives unlimited permission to copy and/or distribute it,
|
|
# with or without modifications, as long as this notice is preserved.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
# PARTICULAR PURPOSE.
|
|
|
|
@SET_MAKE@
|
|
VPATH = @srcdir@
|
|
am__is_gnu_make = { \
|
|
if test -z '$(MAKELEVEL)'; then \
|
|
false; \
|
|
elif test -n '$(MAKE_HOST)'; then \
|
|
true; \
|
|
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
|
true; \
|
|
else \
|
|
false; \
|
|
fi; \
|
|
}
|
|
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@
|
|
target_triplet = @target@
|
|
subdir = testsuite
|
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
|
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
|
|
$(top_srcdir)/../config/enable.m4 \
|
|
$(top_srcdir)/../config/futex.m4 \
|
|
$(top_srcdir)/../config/hwcaps.m4 \
|
|
$(top_srcdir)/../config/iconv.m4 \
|
|
$(top_srcdir)/../config/lead-dot.m4 \
|
|
$(top_srcdir)/../config/lib-ld.m4 \
|
|
$(top_srcdir)/../config/lib-link.m4 \
|
|
$(top_srcdir)/../config/lib-prefix.m4 \
|
|
$(top_srcdir)/../config/lthostflags.m4 \
|
|
$(top_srcdir)/../config/multi.m4 \
|
|
$(top_srcdir)/../config/no-executables.m4 \
|
|
$(top_srcdir)/../config/override.m4 \
|
|
$(top_srcdir)/../config/stdint.m4 \
|
|
$(top_srcdir)/../config/toolexeclibdir.m4 \
|
|
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
|
$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
|
|
$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
|
|
$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \
|
|
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
|
|
$(top_srcdir)/../config/gc++filt.m4 \
|
|
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
|
|
$(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
|
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
$(ACLOCAL_M4)
|
|
DIST_COMMON = $(srcdir)/Makefile.am
|
|
CONFIG_HEADER = $(top_builddir)/config.h
|
|
CONFIG_CLEAN_FILES =
|
|
CONFIG_CLEAN_VPATH_FILES =
|
|
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 =
|
|
depcomp =
|
|
am__depfiles_maybe =
|
|
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)
|
|
ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
|
|
ACLOCAL = @ACLOCAL@
|
|
ALLOCATOR_H = @ALLOCATOR_H@
|
|
ALLOCATOR_NAME = @ALLOCATOR_NAME@
|
|
AMTAR = @AMTAR@
|
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
|
AR = @AR@
|
|
AS = @AS@
|
|
ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@
|
|
ATOMIC_FLAGS = @ATOMIC_FLAGS@
|
|
ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@
|
|
AUTOCONF = @AUTOCONF@
|
|
AUTOHEADER = @AUTOHEADER@
|
|
AUTOMAKE = @AUTOMAKE@
|
|
AWK = @AWK@
|
|
BASIC_FILE_CC = @BASIC_FILE_CC@
|
|
BASIC_FILE_H = @BASIC_FILE_H@
|
|
CC = @CC@
|
|
CCODECVT_CC = @CCODECVT_CC@
|
|
CCOLLATE_CC = @CCOLLATE_CC@
|
|
CCTYPE_CC = @CCTYPE_CC@
|
|
CFLAGS = @CFLAGS@
|
|
CLOCALE_CC = @CLOCALE_CC@
|
|
CLOCALE_H = @CLOCALE_H@
|
|
CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
|
|
CMESSAGES_CC = @CMESSAGES_CC@
|
|
CMESSAGES_H = @CMESSAGES_H@
|
|
CMONEY_CC = @CMONEY_CC@
|
|
CNUMERIC_CC = @CNUMERIC_CC@
|
|
CPP = @CPP@
|
|
CPPFLAGS = @CPPFLAGS@
|
|
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
|
|
CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@
|
|
CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
|
|
CSTDIO_H = @CSTDIO_H@
|
|
CTIME_CC = @CTIME_CC@
|
|
CTIME_H = @CTIME_H@
|
|
CXX = @CXX@
|
|
CXXCPP = @CXXCPP@
|
|
CXXFILT = @CXXFILT@
|
|
CXXFLAGS = @CXXFLAGS@
|
|
CYGPATH_W = @CYGPATH_W@
|
|
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
|
DBLATEX = @DBLATEX@
|
|
DEBUG_FLAGS = @DEBUG_FLAGS@
|
|
DEFS = @DEFS@
|
|
DOT = @DOT@
|
|
DOXYGEN = @DOXYGEN@
|
|
DSYMUTIL = @DSYMUTIL@
|
|
DUMPBIN = @DUMPBIN@
|
|
ECHO_C = @ECHO_C@
|
|
ECHO_N = @ECHO_N@
|
|
ECHO_T = @ECHO_T@
|
|
EGREP = @EGREP@
|
|
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
|
|
EXEEXT = @EXEEXT@
|
|
EXTRA_CFLAGS = @EXTRA_CFLAGS@
|
|
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
|
FGREP = @FGREP@
|
|
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
|
|
GLIBCXX_LIBS = @GLIBCXX_LIBS@
|
|
GREP = @GREP@
|
|
HWCAP_CFLAGS = @HWCAP_CFLAGS@
|
|
INSTALL = @INSTALL@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
|
LD = @LD@
|
|
LDFLAGS = @LDFLAGS@
|
|
LIBICONV = @LIBICONV@
|
|
LIBOBJS = @LIBOBJS@
|
|
LIBS = @LIBS@
|
|
LIBTOOL = @LIBTOOL@
|
|
LIPO = @LIPO@
|
|
LN_S = @LN_S@
|
|
LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
|
|
LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
|
|
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
|
|
LTLIBICONV = @LTLIBICONV@
|
|
LTLIBOBJS = @LTLIBOBJS@
|
|
MAINT = @MAINT@
|
|
MAKEINFO = @MAKEINFO@
|
|
MKDIR_P = @MKDIR_P@
|
|
NM = @NM@
|
|
NMEDIT = @NMEDIT@
|
|
OBJDUMP = @OBJDUMP@
|
|
OBJEXT = @OBJEXT@
|
|
OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
|
|
OPT_LDFLAGS = @OPT_LDFLAGS@
|
|
OS_INC_SRCDIR = @OS_INC_SRCDIR@
|
|
OTOOL = @OTOOL@
|
|
OTOOL64 = @OTOOL64@
|
|
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@
|
|
PDFLATEX = @PDFLATEX@
|
|
RANLIB = @RANLIB@
|
|
SECTION_FLAGS = @SECTION_FLAGS@
|
|
SECTION_LDFLAGS = @SECTION_LDFLAGS@
|
|
SED = @SED@
|
|
SET_MAKE = @SET_MAKE@
|
|
SHELL = @SHELL@
|
|
STRIP = @STRIP@
|
|
SYMVER_FILE = @SYMVER_FILE@
|
|
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
|
|
USE_NLS = @USE_NLS@
|
|
VERSION = @VERSION@
|
|
VTV_CXXFLAGS = @VTV_CXXFLAGS@
|
|
VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
|
|
VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
|
|
WARN_FLAGS = @WARN_FLAGS@
|
|
XMLCATALOG = @XMLCATALOG@
|
|
XMLLINT = @XMLLINT@
|
|
XSLTPROC = @XSLTPROC@
|
|
XSL_STYLE_DIR = @XSL_STYLE_DIR@
|
|
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@
|
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
|
am__leading_dot = @am__leading_dot@
|
|
am__tar = @am__tar@
|
|
am__untar = @am__untar@
|
|
baseline_dir = @baseline_dir@
|
|
baseline_subdir_switch = @baseline_subdir_switch@
|
|
bindir = @bindir@
|
|
build = @build@
|
|
build_alias = @build_alias@
|
|
build_cpu = @build_cpu@
|
|
build_os = @build_os@
|
|
build_vendor = @build_vendor@
|
|
builddir = @builddir@
|
|
check_msgfmt = @check_msgfmt@
|
|
datadir = @datadir@
|
|
datarootdir = @datarootdir@
|
|
docdir = @docdir@
|
|
dvidir = @dvidir@
|
|
enable_shared = @enable_shared@
|
|
enable_static = @enable_static@
|
|
exec_prefix = @exec_prefix@
|
|
get_gcc_base_ver = @get_gcc_base_ver@
|
|
glibcxx_MOFILES = @glibcxx_MOFILES@
|
|
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
|
|
glibcxx_POFILES = @glibcxx_POFILES@
|
|
glibcxx_builddir = @glibcxx_builddir@
|
|
glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
|
|
glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
|
|
glibcxx_cxx98_abi = @glibcxx_cxx98_abi@
|
|
glibcxx_localedir = @glibcxx_localedir@
|
|
glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
|
|
glibcxx_prefixdir = @glibcxx_prefixdir@
|
|
glibcxx_srcdir = @glibcxx_srcdir@
|
|
glibcxx_toolexecdir = @glibcxx_toolexecdir@
|
|
glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@
|
|
gxx_include_dir = @gxx_include_dir@
|
|
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@
|
|
libtool_VERSION = @libtool_VERSION@
|
|
localedir = @localedir@
|
|
localstatedir = @localstatedir@
|
|
lt_host_flags = @lt_host_flags@
|
|
mandir = @mandir@
|
|
mkdir_p = @mkdir_p@
|
|
multi_basedir = @multi_basedir@
|
|
oldincludedir = @oldincludedir@
|
|
pdfdir = @pdfdir@
|
|
port_specific_symbol_files = @port_specific_symbol_files@
|
|
prefix = @prefix@
|
|
program_transform_name = @program_transform_name@
|
|
psdir = @psdir@
|
|
python_mod_dir = @python_mod_dir@
|
|
sbindir = @sbindir@
|
|
sharedstatedir = @sharedstatedir@
|
|
srcdir = @srcdir@
|
|
sysconfdir = @sysconfdir@
|
|
target = @target@
|
|
target_alias = @target_alias@
|
|
target_cpu = @target_cpu@
|
|
target_os = @target_os@
|
|
target_vendor = @target_vendor@
|
|
thread_header = @thread_header@
|
|
tmake_file = @tmake_file@
|
|
top_build_prefix = @top_build_prefix@
|
|
top_builddir = @top_builddir@
|
|
top_srcdir = @top_srcdir@
|
|
toplevel_builddir = @toplevel_builddir@
|
|
toplevel_srcdir = @toplevel_srcdir@
|
|
AUTOMAKE_OPTIONS = nostdinc
|
|
RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
|
|
EXPECT = expect
|
|
|
|
# May be used by various substitution variables.
|
|
gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
|
|
MAINT_CHARSET = latin1
|
|
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
|
|
PWD_COMMAND = $${PWDCMD-pwd}
|
|
STAMP = echo timestamp >
|
|
toolexecdir = $(glibcxx_toolexecdir)
|
|
toolexeclibdir = $(glibcxx_toolexeclibdir)
|
|
@ENABLE_WERROR_FALSE@WERROR_FLAG =
|
|
@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror
|
|
@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS =
|
|
@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
|
|
@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS =
|
|
@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS)
|
|
|
|
# These bits are all figured out from configure. Look in acinclude.m4
|
|
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
|
|
CONFIG_CXXFLAGS = \
|
|
$(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS)
|
|
|
|
WARN_CXXFLAGS = \
|
|
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
|
|
|
|
|
|
# -I/-D flags to pass when compiling.
|
|
AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
|
|
|
|
# Generated lists of files to run. All of these names are valid make
|
|
# targets, if you wish to generate a list manually.
|
|
lists_of_files = \
|
|
testsuite_files \
|
|
testsuite_files_interactive \
|
|
testsuite_files_performance \
|
|
testsuite_files_simd
|
|
|
|
extract_symvers = $(glibcxx_builddir)/scripts/extract_symvers
|
|
baseline_subdir := $(shell $(CXX) $(baseline_subdir_switch))
|
|
check_p_numbers0 := 1 2 3 4 5 6 7 8 9
|
|
check_p_numbers1 := 0 $(check_p_numbers0)
|
|
check_p_numbers2 := $(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers1)))
|
|
check_p_numbers3 := $(addprefix 0,$(check_p_numbers1)) $(check_p_numbers2)
|
|
check_p_numbers4 := $(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers3)))
|
|
check_p_numbers5 := $(addprefix 0,$(check_p_numbers3)) $(check_p_numbers4)
|
|
check_p_numbers6 := $(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers5)))
|
|
check_p_numbers := $(check_p_numbers0) $(check_p_numbers2) $(check_p_numbers4) $(check_p_numbers6)
|
|
check_p_subdirs = $(wordlist 1,$(if $(GCC_TEST_PARALLEL_SLOTS),$(GCC_TEST_PARALLEL_SLOTS),128),$(check_p_numbers))
|
|
check_DEJAGNU_normal_targets = $(addprefix check-DEJAGNUnormal,$(check_p_subdirs))
|
|
|
|
# Runs the testsuite, but in compile only mode.
|
|
# Can be used to test sources with non-GNU FE's at various warning
|
|
# levels and for checking compile time across releases.
|
|
# See script.
|
|
compile_script = ${glibcxx_srcdir}/scripts/check_compile
|
|
|
|
# Runs the testsuite/performance tests.
|
|
# Some of these tests create large (~75MB) files, allocate huge
|
|
# ammounts of memory, or otherwise tie up machine resources. Thus,
|
|
# running this is off by default.
|
|
# XXX Need to add dependency on libtestc++.a
|
|
check_performance_script = ${glibcxx_srcdir}/scripts/check_performance
|
|
|
|
# Runs the testsuite in debug mode.
|
|
debug_flags = "unix/-D_GLIBCXX_DEBUG"
|
|
|
|
# Runs the testsuite in parallel mode.
|
|
libgomp_dir = ${glibcxx_builddir}/../libgomp
|
|
libgomp_flags = -B${glibcxx_builddir}/../libgomp \
|
|
-I${glibcxx_builddir}/../libgomp \
|
|
-L${glibcxx_builddir}/../libgomp/.libs -lgomp
|
|
|
|
atomic_flags = $(ATOMIC_FLAGS)
|
|
parallel_flags = "unix/-D_GLIBCXX_PARALLEL/-fopenmp"
|
|
|
|
# By adding these files here, automake will remove them for 'make clean'
|
|
CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \
|
|
testsuite_* site.exp abi_check baseline_symbols *TEST* *.dat \
|
|
*.ii *.s *.o *.cc *.x *.a *.so *.xml *.raw *.out *.gdb
|
|
|
|
all: all-am
|
|
|
|
.SUFFIXES:
|
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.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 --ignore-deps testsuite/Makefile'; \
|
|
$(am__cd) $(top_srcdir) && \
|
|
$(AUTOMAKE) --foreign --ignore-deps testsuite/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)/fragment.am $(am__empty):
|
|
|
|
$(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):
|
|
|
|
mostlyclean-libtool:
|
|
-rm -f *.lo
|
|
|
|
clean-libtool:
|
|
-rm -rf .libs _libs
|
|
tags TAGS:
|
|
|
|
ctags CTAGS:
|
|
|
|
cscope cscopelist:
|
|
|
|
check-am: all-am
|
|
check: check-am
|
|
all-am: Makefile
|
|
installdirs:
|
|
install: install-am
|
|
install-exec: install-exec-am
|
|
install-data: install-data-am
|
|
uninstall: uninstall-am
|
|
|
|
install-am: all-am
|
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
|
|
|
installcheck: installcheck-am
|
|
install-strip:
|
|
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:
|
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
|
|
|
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-generic clean-libtool clean-local mostlyclean-am
|
|
|
|
distclean: distclean-am
|
|
-rm -f Makefile
|
|
distclean-am: clean-am distclean-generic
|
|
|
|
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 -f Makefile
|
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
|
|
|
mostlyclean: mostlyclean-am
|
|
|
|
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
|
|
|
pdf: pdf-am
|
|
|
|
pdf-am:
|
|
|
|
ps: ps-am
|
|
|
|
ps-am:
|
|
|
|
uninstall-am:
|
|
|
|
.MAKE: install-am install-strip
|
|
|
|
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
|
clean-local cscopelist-am ctags-am distclean distclean-generic \
|
|
distclean-libtool dvi dvi-am html html-am info info-am install \
|
|
install-am install-data install-data-am install-dvi \
|
|
install-dvi-am install-exec install-exec-am install-html \
|
|
install-html-am install-info install-info-am install-man \
|
|
install-pdf install-pdf-am install-ps install-ps-am \
|
|
install-strip installcheck installcheck-am installdirs \
|
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
|
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
|
tags-am uninstall uninstall-am
|
|
|
|
.PRECIOUS: Makefile
|
|
|
|
|
|
# This rule generates all of the testsuite_files* lists at once.
|
|
${lists_of_files}:
|
|
${glibcxx_srcdir}/scripts/create_testsuite_files \
|
|
${glibcxx_srcdir}/testsuite `${PWD_COMMAND}`
|
|
|
|
# We need more things in site.exp, but automake completely controls the
|
|
# creation of that file; there's no way to append to it without messing up
|
|
# the dependancy chains. So we overrule automake. This rule is exactly
|
|
# what it would have generated, plus our own additions.
|
|
site.exp: Makefile
|
|
@echo 'Making a new site.exp file...'
|
|
@echo '## these variables are automatically generated by make ##' >site.tmp
|
|
@echo '# Do not edit here. If you wish to override these values' >>site.tmp
|
|
@echo '# edit the last section' >>site.tmp
|
|
@echo 'set tool libstdc++' >>site.tmp
|
|
@echo 'set srcdir $(srcdir)' >>site.tmp
|
|
@echo "set objdir `pwd`" >>site.tmp
|
|
@echo 'set build_alias "$(build_alias)"' >>site.tmp
|
|
@echo 'set build_triplet $(build_triplet)' >>site.tmp
|
|
@echo 'set host_alias "$(host_alias)"' >>site.tmp
|
|
@echo 'set host_triplet $(host_triplet)' >>site.tmp
|
|
@echo 'set target_alias "$(target_alias)"' >>site.tmp
|
|
@echo 'set target_triplet $(target_triplet)' >>site.tmp
|
|
@echo 'set libiconv "$(LIBICONV)"' >>site.tmp
|
|
@echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp
|
|
@echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp
|
|
@echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp
|
|
@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
|
|
@test ! -f site.exp || \
|
|
sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
|
|
@-rm -f site.bak
|
|
@test ! -f site.exp || mv site.exp site.bak
|
|
@mv site.tmp site.exp
|
|
|
|
baseline_symbols:
|
|
-@(output=${baseline_dir}/${baseline_subdir}/baseline_symbols.txt; \
|
|
if test ! -f $${output}; then \
|
|
echo "Baseline file doesn't exist."; \
|
|
echo "Try 'make new-abi-baseline' to create it."; \
|
|
exit 1; \
|
|
fi; true)
|
|
|
|
new-abi-baseline:
|
|
-@$(mkinstalldirs) ${baseline_dir}/${baseline_subdir}
|
|
-@(output=${baseline_dir}/${baseline_subdir}/baseline_symbols.txt; \
|
|
if test -f $${output}; then \
|
|
output=$${output}.new; \
|
|
t=`echo $${output} | sed 's=.*config/abi/=='`; \
|
|
echo "Baseline file already exists, writing to $${t} instead."; \
|
|
fi; \
|
|
${extract_symvers} ../src/.libs/libstdc++.so $${output})
|
|
|
|
%/site.exp: site.exp
|
|
-@test -d $* || mkdir $*
|
|
@srcdir=`cd $(srcdir); ${PWD_COMMAND}`;
|
|
@objdir=`${PWD_COMMAND}`/$*; \
|
|
sed -e "s|^set srcdir .*$$|set srcdir $$srcdir|" \
|
|
-e "s|^set objdir .*$$|set objdir $$objdir|" \
|
|
site.exp > $*/site.exp.tmp
|
|
@-rm -f $*/site.bak
|
|
@test ! -f $*/site.exp || mv $*/site.exp $*/site.bak
|
|
@mv $*/site.exp.tmp $*/site.exp
|
|
$(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: normal%/site.exp
|
|
|
|
# Run the testsuite in normal mode.
|
|
check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp
|
|
$(if $*,@)AR="$(AR)"; export AR; \
|
|
RANLIB="$(RANLIB)"; export RANLIB; \
|
|
if [ -z "$*" ] && [ -n "$(filter -j%, $(MFLAGS))" ]; then \
|
|
rm -rf normal-parallel || true; \
|
|
mkdir normal-parallel; \
|
|
$(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_normal_targets); \
|
|
rm -rf normal-parallel || true; \
|
|
for idx in $(check_p_subdirs); do \
|
|
if [ -d normal$$idx ]; then \
|
|
mv -f normal$$idx/libstdc++.sum normal$$idx/libstdc++.sum.sep; \
|
|
mv -f normal$$idx/libstdc++.log normal$$idx/libstdc++.log.sep; \
|
|
fi; \
|
|
done; \
|
|
$(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
|
|
normal[0-9]*/libstdc++.sum.sep > libstdc++.sum; \
|
|
$(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \
|
|
normal[0-9]*/libstdc++.log.sep > libstdc++.log; \
|
|
exit 0; \
|
|
fi; \
|
|
srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
|
|
EXPECT=$(EXPECT); export EXPECT; \
|
|
runtest=$(RUNTEST); \
|
|
if [ -z "$$runtest" ]; then runtest=runtest; fi; \
|
|
tool=libstdc++; \
|
|
if [ -n "$*" ]; then \
|
|
if [ -f normal-parallel/finished ]; then rm -rf "$*"; exit 0; fi; \
|
|
GCC_RUNTEST_PARALLELIZE_DIR=`${PWD_COMMAND}`/normal-parallel; \
|
|
export GCC_RUNTEST_PARALLELIZE_DIR; \
|
|
cd "$*"; \
|
|
fi; \
|
|
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
|
|
$$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \
|
|
$(RUNTESTFLAGS); \
|
|
if [ -n "$*" ]; then \
|
|
touch $$GCC_RUNTEST_PARALLELIZE_DIR/finished; \
|
|
fi; \
|
|
else \
|
|
echo "WARNING: could not find \`runtest'" 1>&2; :;\
|
|
fi
|
|
|
|
check-am:
|
|
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
|
|
.PHONY: check-DEJAGNU
|
|
|
|
# Use 'new-abi-baseline' to create an initial symbol file. Then run
|
|
# 'check-abi' to test for changes against that file.
|
|
check-abi: site.exp baseline_symbols
|
|
-@runtest $(AM_RUNTESTFLAGS) --tool libstdc++ $(RUNTESTFLAGS) abi.exp
|
|
check-compile: testsuite_files ${compile_script}
|
|
-@(chmod + ${compile_script}; \
|
|
${compile_script} ${glibcxx_srcdir} ${glibcxx_builddir})
|
|
check-performance: testsuite_files_performance ${performance_script}
|
|
-@(chmod + ${check_performance_script}; \
|
|
CXXFLAGS='$(CXXFLAGS)'; export CXXFLAGS; \
|
|
${check_performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
|
|
|
|
# Runs the simd tests.
|
|
check-simd: $(srcdir)/experimental/simd/generate_makefile.sh \
|
|
${glibcxx_srcdir}/scripts/check_simd \
|
|
testsuite_files_simd \
|
|
${glibcxx_builddir}/scripts/testsuite_flags
|
|
${glibcxx_srcdir}/scripts/check_simd "${glibcxx_srcdir}" "${glibcxx_builddir}" "$(CXXFLAGS)" | \
|
|
while read subdir; do \
|
|
$(MAKE) -C "$${subdir}"; \
|
|
tail -n20 $${subdir}/simd_testsuite.sum | \
|
|
grep -A20 -B1 'Summary ===' >> .simd.summary; \
|
|
done; \
|
|
cat .simd.summary && rm .simd.summary
|
|
|
|
check-debug: site.exp
|
|
outputdir=debug; export outputdir; \
|
|
if test ! -d $${outputdir}; then \
|
|
mkdir $${outputdir}; \
|
|
fi; \
|
|
srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
|
|
EXPECT=$(EXPECT); export EXPECT; \
|
|
$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) conformance.exp --outdir $${outputdir} --objdir $${outputdir} --target_board=$(debug_flags)" check-DEJAGNU;
|
|
|
|
check-parallel: site.exp
|
|
-@(if test ! -d $${libgomp_dir}; then \
|
|
echo "Testing parallel mode failed as libgomp not present."; \
|
|
exit 1; \
|
|
fi; \
|
|
outputdir=parallel; export outputdir; \
|
|
if test ! -d $${outputdir}; then \
|
|
mkdir $${outputdir}; \
|
|
fi; \
|
|
srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
|
|
EXPECT=$(EXPECT); export EXPECT; \
|
|
$(MAKE) CXXFLAGS="$(atomic_flags) $(libgomp_flags)" RUNTESTFLAGS="$(RUNTESTFLAGS) conformance.exp --outdir $${outputdir} --objdir $${outputdir} --target_board=$(parallel_flags)" check-DEJAGNU; )
|
|
|
|
check-performance-parallel: testsuite_files_performance ${performance_script}
|
|
-@(chmod + ${check_performance_script}; \
|
|
CXXFLAGS="-D_GLIBCXX_PARALLEL -fopenmp $(atomic_flags) $(libgomp_flags)"; export CXXFLAGS; \
|
|
${check_performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
|
|
|
|
.PHONY: baseline_symbols new-abi-baseline \
|
|
check-abi check-compile check-performance check-parallel
|
|
|
|
# To remove directories.
|
|
clean-local:
|
|
rm -rf de fr debug parallel binaries normal* simd
|
|
|
|
# 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:
|