Skip to content

Commit d64eda9

Browse files
authored
Merge pull request ruby#61 from dugiahuy/support-macos
Support MacOS for running MMTk Ruby binding
2 parents 5ed7951 + 52ac798 commit d64eda9

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

mmtk_support.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
#include "vm_sync.h"
1717
#include "stdatomic.h"
1818

19+
#ifdef __APPLE__
20+
#include <sys/sysctl.h>
21+
#endif
22+
1923
#ifdef __GNUC__
2024
#define PREFETCH(addr, write_p) __builtin_prefetch(addr, write_p)
2125
#define EXPECT(expr, val) __builtin_expect(expr, val)
@@ -218,6 +222,17 @@ rb_mmtk_system_physical_memory(void)
218222
rb_bug("failed to get system physical memory size");
219223
}
220224
return (size_t) physical_pages * (size_t) page_size;
225+
#elif defined(__APPLE__)
226+
int mib[2];
227+
mib[0] = CTL_HW;
228+
mib[1] = HW_MEMSIZE; // total physical memory
229+
int64_t physical_memory;
230+
size_t length = sizeof(int64_t);
231+
if (sysctl(mib, 2, &physical_memory, &length, NULL, 0) == -1)
232+
{
233+
rb_bug("failed to get system physical memory size");
234+
}
235+
return (size_t) physical_memory;
221236
#else
222237
#error no implementation of rb_mmtk_system_physical_memory on this platform
223238
#endif

tool/m4/mmtk_ruby.m4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
dnl -*- Autoconf -*-
22
AC_DEFUN([MMTK_RUBY], [
33
4-
[MMTK_RUBY_SO_NAME=libmmtk_ruby.so]
4+
[MMTK_RUBY_SO_NAME=libmmtk_ruby.$SOEXT]
55
66
AC_ARG_WITH(mmtk-ruby,
77
AS_HELP_STRING([--with-mmtk-ruby=DIR],
@@ -31,7 +31,7 @@ AS_IF([test -n "$with_mmtk_ruby"], [
3131
AC_MSG_NOTICE([User specified the path to $MMTK_RUBY_SO_NAME: $with_mmtk_ruby_so])
3232
mmtk_ruby_so_basename=$(basename $with_mmtk_ruby_so)
3333
AS_IF([test "x$mmtk_ruby_so_basename" != "x$MMTK_RUBY_SO_NAME"],[
34-
AC_MSG_ERROR([The base name must be $MMTK_RUBY_SO_NAME Found: $mmtk_ruby_so_basename])
34+
AC_MSG_ERROR([The base name must be $MMTK_RUBY_SO_NAME. Found: $mmtk_ruby_so_basename])
3535
])
3636
mmtk_ruby_so_path="$with_mmtk_ruby_so"
3737
mmtk_ruby_build_suggestion="Please build it first"

0 commit comments

Comments
 (0)