summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorodaira <odaira@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-10-09 20:06:36 +0000
committerodaira <odaira@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-10-09 20:06:36 +0000
commit67fcbf9328614379fee28bed83ae6749ce7a3dda (patch)
tree692aa1990444e1d655f72e63c8a79797df1f23bc /configure.ac
parent74072a1686b6ff22962400604f48d7e866e58875 (diff)
* configure.ac: do not use __builtin_longjmp on ppc64* Linux
because it causes a segmentation fault with MJIT git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac8
1 files changed, 8 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index df1ef8c..d7de842 100644
--- a/configure.ac
+++ b/configure.ac
@@ -980,6 +980,14 @@ main()
[aix*],[ LIBS="-lm $LIBS"
ac_cv_func_round=no
],
+[linux*],[ LIBS="-lm $LIBS"
+ # __builtin_longjmp in ppc64* Linux does not restore
+ # the TOC register (r2), which is problematic
+ # when a global exit happens from JITted .so code.
+ AS_CASE(["$target_cpu"], [powerpc64*], [
+ ac_cv_func___builtin_setjmp=no
+ ])
+ ],
[ LIBS="-lm $LIBS"])
: ${ORIG_LIBS=$LIBS}