Commit 07d3b5c8 by Richard Henderson Committed by Richard Henderson

Detect assembler support for RTM

	* acinclude.m4 (LIBITM_CHECK_AS_RTM): New.
	* configure.ac: Use it.
	* config.h.in, configure: Rebuild.
	* testsuite/Makefile.in: Rebuild.

From-SVN: r193017
parent d0a54439
2012-10-31 Richard Henderson <rth@redhat.com>
* acinclude.m4 (LIBITM_CHECK_AS_RTM): New.
* configure.ac: Use it.
* config.h.in, configure: Rebuild.
* testsuite/Makefile.in: Rebuild.
2012-10-24 Torvald Riegel <triegel@redhat.com> 2012-10-24 Torvald Riegel <triegel@redhat.com>
* libitm.texi: Clarify ABI requirements for data-logging functions. * libitm.texi: Clarify ABI requirements for data-logging functions.
......
...@@ -109,6 +109,20 @@ i[[34567]]86 | x86_64) ...@@ -109,6 +109,20 @@ i[[34567]]86 | x86_64)
;; ;;
esac]) esac])
dnl Check if as supports RTM instructions.
AC_DEFUN([LIBITM_CHECK_AS_RTM], [
case "${target_cpu}" in
i[[34567]]86 | x86_64)
AC_CACHE_CHECK([if the assembler supports RTM], libitm_cv_as_rtm, [
AC_TRY_COMPILE([], [asm("1: xbegin 1b; xend");],
[libitm_cv_as_rtm=yes], [libitm_cv_as_rtm=no])
])
if test x$libitm_cv_as_rtm = xyes; then
AC_DEFINE(HAVE_AS_RTM, 1, [Define to 1 if the assembler supports RTM.])
fi
;;
esac])
sinclude(../libtool.m4) sinclude(../libtool.m4)
dnl The lines below arrange for aclocal not to bring an installed dnl The lines below arrange for aclocal not to bring an installed
dnl libtool.m4 into aclocal.m4, while still arranging for automake to dnl libtool.m4 into aclocal.m4, while still arranging for automake to
......
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
/* Define if your assembler supports .cfi_* directives. */ /* Define if your assembler supports .cfi_* directives. */
#undef HAVE_AS_CFI_PSEUDO_OP #undef HAVE_AS_CFI_PSEUDO_OP
/* Define to 1 if the assembler supports RTM. */
#undef HAVE_AS_RTM
/* Define to 1 if the target supports __attribute__((alias(...))). */ /* Define to 1 if the target supports __attribute__((alias(...))). */
#undef HAVE_ATTRIBUTE_ALIAS #undef HAVE_ATTRIBUTE_ALIAS
......
...@@ -667,6 +667,7 @@ CXX ...@@ -667,6 +667,7 @@ CXX
am__fastdepCC_FALSE am__fastdepCC_FALSE
am__fastdepCC_TRUE am__fastdepCC_TRUE
CCDEPMODE CCDEPMODE
am__nodep
AMDEPBACKSLASH AMDEPBACKSLASH
AMDEP_FALSE AMDEP_FALSE
AMDEP_TRUE AMDEP_TRUE
...@@ -3318,11 +3319,11 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} ...@@ -3318,11 +3319,11 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# We need awk for the "check" target. The system "awk" is bad on # We need awk for the "check" target. The system "awk" is bad on
# some platforms. # some platforms.
# Always define AMTAR for backward compatibility. # Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
...@@ -4220,6 +4221,7 @@ fi ...@@ -4220,6 +4221,7 @@ fi
if test "x$enable_dependency_tracking" != xno; then if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp" am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\' AMDEPBACKSLASH='\'
am__nodep='_no'
fi fi
if test "x$enable_dependency_tracking" != xno; then if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE= AMDEP_TRUE=
...@@ -4244,6 +4246,7 @@ else ...@@ -4244,6 +4246,7 @@ else
# instance it was reported that on HP-UX the gcc test will end up # instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output # making a dummy file named `D' -- because `-MD' means `put the output
# in D'. # in D'.
rm -rf conftest.dir
mkdir conftest.dir mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're # Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory. # using a relative directory.
...@@ -4303,7 +4306,7 @@ else ...@@ -4303,7 +4306,7 @@ else
break break
fi fi
;; ;;
msvisualcpp | msvcmsys) msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has # This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and # not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted. # so weak that their functioning should not be impacted.
...@@ -4628,6 +4631,7 @@ else ...@@ -4628,6 +4631,7 @@ else
# instance it was reported that on HP-UX the gcc test will end up # instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output # making a dummy file named `D' -- because `-MD' means `put the output
# in D'. # in D'.
rm -rf conftest.dir
mkdir conftest.dir mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're # Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory. # using a relative directory.
...@@ -4687,7 +4691,7 @@ else ...@@ -4687,7 +4691,7 @@ else
break break
fi fi
;; ;;
msvisualcpp | msvcmsys) msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has # This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and # not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted. # so weak that their functioning should not be impacted.
...@@ -4762,6 +4766,7 @@ else ...@@ -4762,6 +4766,7 @@ else
# instance it was reported that on HP-UX the gcc test will end up # instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output # making a dummy file named `D' -- because `-MD' means `put the output
# in D'. # in D'.
rm -rf conftest.dir
mkdir conftest.dir mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're # Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory. # using a relative directory.
...@@ -4819,7 +4824,7 @@ else ...@@ -4819,7 +4824,7 @@ else
break break
fi fi
;; ;;
msvisualcpp | msvcmsys) msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has # This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and # not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted. # so weak that their functioning should not be impacted.
...@@ -11779,7 +11784,7 @@ else ...@@ -11779,7 +11784,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 11782 "configure" #line 11787 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
...@@ -11885,7 +11890,7 @@ else ...@@ -11885,7 +11890,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 11888 "configure" #line 11893 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
...@@ -17327,6 +17332,43 @@ $as_echo "#define HAVE_AS_AVX 1" >>confdefs.h ...@@ -17327,6 +17332,43 @@ $as_echo "#define HAVE_AS_AVX 1" >>confdefs.h
;; ;;
esac esac
case "${target_cpu}" in
i[34567]86 | x86_64)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the assembler supports RTM" >&5
$as_echo_n "checking if the assembler supports RTM... " >&6; }
if test "${libitm_cv_as_rtm+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
asm("1: xbegin 1b; xend");
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
libitm_cv_as_rtm=yes
else
libitm_cv_as_rtm=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libitm_cv_as_rtm" >&5
$as_echo "$libitm_cv_as_rtm" >&6; }
if test x$libitm_cv_as_rtm = xyes; then
$as_echo "#define HAVE_AS_RTM 1" >>confdefs.h
fi
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether weak refs work like ELF" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether weak refs work like ELF" >&5
$as_echo_n "checking whether weak refs work like ELF... " >&6; } $as_echo_n "checking whether weak refs work like ELF... " >&6; }
......
...@@ -244,6 +244,7 @@ CFLAGS="$save_CFLAGS $XCFLAGS" ...@@ -244,6 +244,7 @@ CFLAGS="$save_CFLAGS $XCFLAGS"
LIBITM_CHECK_SYNC_BUILTINS LIBITM_CHECK_SYNC_BUILTINS
LIBITM_CHECK_64BIT_SYNC_BUILTINS LIBITM_CHECK_64BIT_SYNC_BUILTINS
LIBITM_CHECK_AS_AVX LIBITM_CHECK_AS_AVX
LIBITM_CHECK_AS_RTM
GCC_CHECK_ELF_STYLE_WEAKREF GCC_CHECK_ELF_STYLE_WEAKREF
......
...@@ -35,7 +35,7 @@ build_triplet = @build@ ...@@ -35,7 +35,7 @@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
target_triplet = @target@ target_triplet = @target@
subdir = testsuite subdir = testsuite
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/asmcfi.m4 \
...@@ -60,10 +60,8 @@ CONFIG_HEADER = $(top_builddir)/config.h ...@@ -60,10 +60,8 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
SOURCES = SOURCES =
DIST_SOURCES =
DEJATOOL = $(PACKAGE) DEJATOOL = $(PACKAGE)
RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
...@@ -295,37 +293,6 @@ distclean-DEJAGNU: ...@@ -295,37 +293,6 @@ distclean-DEJAGNU:
-l='$(DEJATOOL)'; for tool in $$l; do \ -l='$(DEJATOOL)'; for tool in $$l; do \
rm -f $$tool.sum $$tool.log; \ rm -f $$tool.sum $$tool.log; \
done done
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 check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
check: check-am check: check-am
...@@ -426,8 +393,8 @@ uninstall-am: ...@@ -426,8 +393,8 @@ uninstall-am:
.PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \ .PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \
clean-libtool distclean distclean-DEJAGNU distclean-generic \ clean-libtool distclean distclean-DEJAGNU distclean-generic \
distclean-libtool distdir dvi dvi-am html html-am info info-am \ distclean-libtool dvi dvi-am html html-am info info-am install \
install install-am install-data install-data-am install-dvi \ install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \ install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \ install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \ install-pdf install-pdf-am install-ps install-ps-am \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment