summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/mrbconf.h19
-rw-r--r--src/cdump.c2
-rw-r--r--tasks/mrbgem_spec.rake1
-rw-r--r--tasks/mruby_build.rake6
-rw-r--r--tasks/mruby_build_commands.rake2
5 files changed, 20 insertions, 10 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h
index 066c040f6..17f6a0fc3 100644
--- a/include/mrbconf.h
+++ b/include/mrbconf.h
@@ -76,7 +76,8 @@
typedef int32_t mrb_int;
# define MRB_INT_MIN INT32_MIN
# define MRB_INT_MAX INT32_MAX
-# define mrb_int_to_str(buf, i) sprintf((buf), "%d", (i))
+# define MRB_INT_FORMAT PRId32
+# define mrb_int_to_str(buf, i) sprintf((buf), "%" MRB_INT_FORMAT, (i))
# define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10)
# endif
#else
@@ -84,13 +85,15 @@
typedef int64_t mrb_int;
# define MRB_INT_MIN INT64_MIN
# define MRB_INT_MAX INT64_MAX
-# define mrb_int_to_str(buf, i) sprintf((buf), "%ld", (i))
+# define MRB_INT_FORMAT PRId64
+# define mrb_int_to_str(buf, i) sprintf((buf), "%" MRB_INT_FORMAT, (i))
# define str_to_mrb_int(buf) (mrb_int)strtoll((buf), NULL, 10)
# else
- typedef int mrb_int;
-# define MRB_INT_MIN INT_MIN
-# define MRB_INT_MAX INT_MAX
-# define mrb_int_to_str(buf, i) sprintf((buf), "%d", (i))
+ typedef int32_t mrb_int;
+# define MRB_INT_MIN INT32_MIN
+# define MRB_INT_MAX INT32_MAX
+# define MRB_INT_FORMAT PRId32
+# define mrb_int_to_str(buf, i) sprintf((buf), "%" MRB_INT_FORMAT, (i))
# define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10)
# endif
#endif
@@ -131,6 +134,10 @@ typedef short mrb_sym;
# define isnan _isnan
# define isinf(n) (!_finite(n) && !_isnan(n))
# define strtoll _strtoi64
+# define PRId32 "I32d"
+# define PRId64 "I64d"
+#else
+# include <inttypes.h>
#endif
#endif /* MRUBYCONF_H */
diff --git a/src/cdump.c b/src/cdump.c
index 247511f5a..7beb3544f 100644
--- a/src/cdump.c
+++ b/src/cdump.c
@@ -145,7 +145,7 @@ make_cdump_irep(mrb_state *mrb, int irep_no, FILE *f)
case MRB_TT_FLOAT:
SOURCE_CODE(" irep->pool[%d] = mrb_float_value(%.16e);", n, mrb_float(irep->pool[n])); break;
case MRB_TT_FIXNUM:
- SOURCE_CODE(" irep->pool[%d] = mrb_fixnum_value(%d);", n, mrb_fixnum(irep->pool[n])); break;
+ SOURCE_CODE(" irep->pool[%d] = mrb_fixnum_value(%" MRB_INT_FORMAT ");", n, mrb_fixnum(irep->pool[n])); break;
case MRB_TT_STRING:
str_len = str_format_len(irep->pool[n]) + 1;
if ( str_len > buf_len ) {
diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake
index 0e228629b..c119ea49c 100644
--- a/tasks/mrbgem_spec.rake
+++ b/tasks/mrbgem_spec.rake
@@ -37,7 +37,6 @@ module MRuby
MRuby::Gem.current = self
@build.compilers.each do |compiler|
- compiler.defines -= %w(DISABLE_GEMS)
compiler.include_paths << "#{dir}/include"
end
MRuby::Build::COMMANDS.each do |command|
diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake
index cd9f77fc4..645656417 100644
--- a/tasks/mruby_build.rake
+++ b/tasks/mruby_build.rake
@@ -83,7 +83,11 @@ module MRuby
instance_eval(&block)
compilers.each do |compiler|
- compiler.defines -= %w(DISABLE_GEMS) if respond_to?(:enable_gems?) && enable_gems?
+ if respond_to?(:enable_gems?) && enable_gems?
+ compiler.defines -= %w(DISABLE_GEMS)
+ else
+ compiler.defines += %w(DISABLE_GEMS)
+ end
compiler.define_rules build_dir
end
end
diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake
index 20203ad7e..75cfc55c2 100644
--- a/tasks/mruby_build_commands.rake
+++ b/tasks/mruby_build_commands.rake
@@ -40,7 +40,7 @@ module MRuby
@flags = [ENV['CFLAGS'] || []]
@source_exts = source_exts
@include_paths = ["#{build.root}/include"]
- @defines = %w(DISABLE_GEMS)
+ @defines = %w()
@option_include_path = '-I%s'
@option_define = '-D%s'
@compile_options = "%{flags} -MMD -o %{outfile} -c %{infile}"