diff options
| -rw-r--r-- | build_config/cross-mingw.rb | 14 | ||||
| -rw-r--r-- | build_config/nintendo_switch.rb | 73 | ||||
| -rw-r--r-- | mrbgems/mruby-objectspace/src/mruby_objectspace.c | 7 |
3 files changed, 89 insertions, 5 deletions
diff --git a/build_config/cross-mingw.rb b/build_config/cross-mingw.rb new file mode 100644 index 000000000..63d267d6a --- /dev/null +++ b/build_config/cross-mingw.rb @@ -0,0 +1,14 @@ +# +# Ubuntu 20.04 requires at least `gcc-mingw-w64-x86-64` package as a +# cross compiler. +# + +MRuby::CrossBuild.new("cross-mingw") do |conf| + conf.toolchain :gcc + conf.host_target = "x86_64-w64-mingw32" # required for `for_windows?` used by `mruby-socket` gem + conf.cc.command = "#{conf.host_target}-gcc-posix" + conf.linker.command = conf.cc.command + conf.archiver.command = "#{conf.host_target}-gcc-ar" + conf.exts.executable = ".exe" + conf.gembox "default" +end diff --git a/build_config/nintendo_switch.rb b/build_config/nintendo_switch.rb new file mode 100644 index 000000000..02c067fea --- /dev/null +++ b/build_config/nintendo_switch.rb @@ -0,0 +1,73 @@ +# Cross Compiling configuration for the Nintendo Switch, it requires Nintendo SDK +# Tested on windows +MRuby::CrossBuild.new('nintendo_switch_32bit') do |conf| + conf.toolchain :clang + NINTENDO_SDK_PATH = ENV['NINTENDO_SDK_ROOT'] + + include_paths = [ + "#{NINTENDO_SDK_PATH}/Include", + "#{NINTENDO_SDK_PATH}/Common/Configs/Targets/NX-NXFP2-a32/Include" + ] + + conf.cc do |cc| + cc.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/bin/nx-clang++" + cc.include_paths += include_paths + cc.flags += ['-fpic -fno-short-enums -ffunction-sections -fdata-sections -fno-common -fno-strict-aliasing -fomit-frame-pointer -fno-vectorize -funsigned-char -O2 -g -mno-implicit-float'] + cc.defines += 'NN_SDK_BUILD_RELEASE' + end + + conf.cxx do |cxx| + cxx.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/bin/nx-clang++" + cxx.include_paths += include_paths + cxx.flags += ['-fpic -fno-short-enums -ffunction-sections -fdata-sections -fno-common -fno-strict-aliasing -fomit-frame-pointer -fno-vectorize -funsigned-char -O2 -g -mno-implicit-float'] + cxx.defines += 'NN_SDK_BUILD_RELEASE' + end + + conf.archiver do |archiver| + archiver.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/nx/armv7l/bin/llvm-ar" + end + + conf.linker do |linker| + linker.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/nx/armv7l/bin/clang++" + linker.libraries = [] + end + + # Add your mrbgems +end + +MRuby::CrossBuild.new('nintendo_switch_64bit') do |conf| + conf.toolchain :clang + NINTENDO_SDK_PATH = ENV['NINTENDO_SDK_ROOT'] + + include_paths = [ + "#{NINTENDO_SDK_PATH}/Include", + "#{NINTENDO_SDK_PATH}/Common/Configs/Targets/NX-NXFP2-a64/Include" + ] + + conf.cc do |cc| + cc.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/bin/nx-clang++" + cc.include_paths += include_paths + cc.flags += ['-fpic -fno-short-enums -ffunction-sections -fdata-sections -fno-common -fno-strict-aliasing -fomit-frame-pointer -fno-vectorize -funsigned-char -O2 -g -mno-implicit-float'] + cc.flags << '--target=aarch64-nintendo-nx-elf' + cc.defines += 'NN_SDK_BUILD_RELEASE' + end + + conf.cxx do |cxx| + cxx.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/bin/nx-clang++" + cxx.include_paths += include_paths + cxx.flags += ['-fpic -fno-short-enums -ffunction-sections -fdata-sections -fno-common -fno-strict-aliasing -fomit-frame-pointer -fno-vectorize -funsigned-char -O2 -g -mno-implicit-float'] + cxx.flags << '--target=aarch64-nintendo-nx-elf' + cxx.defines += 'NN_SDK_BUILD_RELEASE' + end + + conf.archiver do |archiver| + archiver.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/nx/aarch64/bin/llvm-ar" + end + + conf.linker do |linker| + linker.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/nx/aarch64/bin/clang++" + linker.libraries = [] + end + + # Add your mrbgems +end diff --git a/mrbgems/mruby-objectspace/src/mruby_objectspace.c b/mrbgems/mruby-objectspace/src/mruby_objectspace.c index 76c804fbb..929a6180d 100644 --- a/mrbgems/mruby-objectspace/src/mruby_objectspace.c +++ b/mrbgems/mruby-objectspace/src/mruby_objectspace.c @@ -79,12 +79,7 @@ os_count_objects(mrb_state *mrb, mrb_value self) mrb_value type; switch (i) { #define COUNT_TYPE(t) case (MRB_T ## t): type = mrb_symbol_value(mrb_intern_lit(mrb, #t)); break; - COUNT_TYPE(T_FALSE); - COUNT_TYPE(T_FREE); - COUNT_TYPE(T_TRUE); COUNT_TYPE(T_INTEGER); - COUNT_TYPE(T_SYMBOL); - COUNT_TYPE(T_UNDEF); COUNT_TYPE(T_FLOAT); COUNT_TYPE(T_CPTR); COUNT_TYPE(T_OBJECT); @@ -102,6 +97,8 @@ os_count_objects(mrb_state *mrb, mrb_value self) COUNT_TYPE(T_DATA); COUNT_TYPE(T_FIBER); COUNT_TYPE(T_ISTRUCT); + COUNT_TYPE(T_COMPLEX); + COUNT_TYPE(T_RATIONAL); #undef COUNT_TYPE default: type = mrb_fixnum_value(i); break; |
