summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-14 11:52:53 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-14 11:52:53 +0000
commit59680d0fc07077a1027cfb2f6a2af1372f16af88 (patch)
tree5ff89e10cd0e1bce3737f94589bd7872ca0eacde
parentbceb3cd988385d45731703de932adb04846e3db3 (diff)
downloadruby-59680d0fc07077a1027cfb2f6a2af1372f16af88.tar.gz
* configure.in (ARCH_FLAG): __sync_val_compare_and_swap_4 needs
-march=i486 on at least linux gcc 4.1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@44953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--configure.in23
-rw-r--r--version.h2
3 files changed, 29 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 6cbf29ac5d..127b962c74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Feb 14 20:52:31 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * configure.in (ARCH_FLAG): __sync_val_compare_and_swap_4 needs
+ -march=i486 on at least linux gcc 4.1.
+
Fri Feb 14 19:07:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ruby_atomic.h (ATOMIC_PTR_EXCHANGE): atomic exchange function for
diff --git a/configure.in b/configure.in
index 64b257abfd..2736233699 100644
--- a/configure.in
+++ b/configure.in
@@ -308,6 +308,29 @@ if test "$target_cpu" != "$host_cpu" -a "$GCC" = yes -a "$cross_compiling" = no
RUBY_DEFAULT_ARCH("$target_cpu")
fi
+AS_CASE(["$target_cpu-$target_os"], [[i[3-6]86*]], [
+ AC_CACHE_CHECK([for __sync_val_compare_and_swap], [rb_cv_gcc_compiler_cas], [
+ AC_TRY_LINK([unsigned long atomic_var;],
+ [
+ __sync_val_compare_and_swap(&atomic_var, 0, 1);
+ ],
+ [rb_cv_gcc_compiler_cas=yes],
+ [rb_cv_gcc_compiler_cas=no])])
+ if test "$rb_cv_gcc_compiler_cas" = no; then
+ unset rb_cv_gcc_compiler_cas
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -march=i486"
+ AC_CACHE_CHECK([for __sync_val_compare_and_swap with -march=i486], [rb_cv_gcc_compiler_cas], [
+ AC_TRY_LINK([unsigned long atomic_var;],
+ [
+ __sync_val_compare_and_swap(&atomic_var, 0, 1);
+ ],
+ [rb_cv_gcc_compiler_cas=yes
+ ARCH_FLAG="-march=i486"],
+ [rb_cv_gcc_compiler_cas=no])])
+ CFLAGS="$save_CFLAGS"
+ fi])
+
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_CHECK_TOOL(AR, ar)
if test -z "$AR"; then
diff --git a/version.h b/version.h
index 7164830b29..9af4099f92 100644
--- a/version.h
+++ b/version.h
@@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.3"
-#define RUBY_PATCHLEVEL 532
+#define RUBY_PATCHLEVEL 533
#define RUBY_RELEASE_DATE "2014-02-14"
#define RUBY_RELEASE_YEAR 2014