summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-19 09:12:06 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-19 09:12:06 +0000
commitde9d264026c870afd79a8843764ccbf60367bb0e (patch)
tree8d2183a3a4e346ff0e56cd443f6a21df32d4a838 /configure.ac
parent26b08ed144e8f051158d746ef5098408433cd022 (diff)
there is no guarantee that mode_t is as wide as int
POSIX only defines mode_t to be "an integer typea", and in fact MacOS defines it to be uint16_t. We didn't have NUM2USHORT before so it did not make sense but now that we have it. Why not check apptopriately. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac5
1 files changed, 4 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 4565be98ca..eb8daf2131 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1611,6 +1611,8 @@ AC_DEFUN([RUBY_REPLACE_TYPE], [dnl
t=LL],
[*" long "*], [
t=LONG],
+ [*" short "*], [
+ t=SHORT],
[
t=INT])
rb_cv_[$1]_convertible=${u}${t}])
@@ -1620,6 +1622,7 @@ AC_DEFUN([RUBY_REPLACE_TYPE], [dnl
AS_CASE(["${rb_cv_[$1]_convertible}"],
[*LL], [n="long long"],
[*LONG], [n="long"],
+ [*SHORT], [n="short"],
[n="int"])
AS_CASE(["${rb_cv_[$1]_convertible}"],
[U*], [n="unsigned $n"])
@@ -1637,7 +1640,7 @@ RUBY_REPLACE_TYPE(uid_t, int, UIDT)
RUBY_REPLACE_TYPE(gid_t, int, GIDT)
RUBY_REPLACE_TYPE(time_t, [], TIMET, [@%:@include <time.h>])
RUBY_REPLACE_TYPE(dev_t, [int long "long long"], DEVT)
-RUBY_REPLACE_TYPE(mode_t, ["unsigned int" long], MODET, [@%:@include <sys/stat.h>])
+RUBY_REPLACE_TYPE(mode_t, ["unsigned short" "unsigned int" long], MODET, [@%:@include <sys/stat.h>])
RUBY_REPLACE_TYPE(rlim_t, [int long "long long"], RLIM, [
@%:@ifdef HAVE_SYS_TYPES_H
@%:@include <sys/types.h>