[pypy-commit] pypy default: hack for MAC
fijal
noreply at buildbot.pypy.org
Wed Aug 19 21:31:33 CEST 2015
Author: fijal
Branch:
Changeset: r79078:a3278fa0fd93
Date: 2015-08-19 21:30 +0200
http://bitbucket.org/pypy/pypy/changeset/a3278fa0fd93/
Log: hack for MAC
diff --git a/rpython/rlib/rvmprof/src/vmprof_getpc.h b/rpython/rlib/rvmprof/src/vmprof_getpc.h
--- a/rpython/rlib/rvmprof/src/vmprof_getpc.h
+++ b/rpython/rlib/rvmprof/src/vmprof_getpc.h
@@ -53,7 +53,9 @@
// If #define _GNU_SOURCE causes problems, this might work instead.
// It will cause problems for FreeBSD though!, because it turns off
// the needed __BSD_VISIBLE.
-//#define _XOPEN_SOURCE 500
+#ifdef __APPLE__
+#define _XOPEN_SOURCE 500
+#endif
#include <string.h> // for memcmp
#if defined(HAVE_SYS_UCONTEXT_H)
@@ -179,7 +181,11 @@
// configure.ac (or set it manually in your config.h).
#else
void* GetPC(ucontext_t *signal_ucontext) {
+#ifdef __APPLE__
+ return (void*)(signal_ucontext->uc_mcontext->__ss.__rip);
+#else
return (void*)signal_ucontext->PC_FROM_UCONTEXT; // defined in config.h
+#endif
}
#endif
diff --git a/rpython/rlib/rvmprof/src/vmprof_main.h b/rpython/rlib/rvmprof/src/vmprof_main.h
--- a/rpython/rlib/rvmprof/src/vmprof_main.h
+++ b/rpython/rlib/rvmprof/src/vmprof_main.h
@@ -27,6 +27,7 @@
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
+#include <signal.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "vmprof_getpc.h"
@@ -457,7 +458,7 @@
if (!srcf)
return -1;
- while ((size = fread(buf, 1, sizeof buf, src))) {
+ while ((size = fread(buf, 1, sizeof buf, srcf))) {
if (_write_all(buf, size) < 0) {
pclose(srcf);
return -1;
diff --git a/rpython/rlib/rvmprof/src/vmprof_mt.h b/rpython/rlib/rvmprof/src/vmprof_mt.h
--- a/rpython/rlib/rvmprof/src/vmprof_mt.h
+++ b/rpython/rlib/rvmprof/src/vmprof_mt.h
@@ -66,7 +66,7 @@
unprepare_concurrent_bufs();
profbuf_all_buffers = mmap(NULL, sizeof(struct profbuf_s) * MAX_NUM_BUFFERS,
PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANONYMOUS,
+ MAP_PRIVATE | MAP_ANON,
-1, 0);
if (profbuf_all_buffers == MAP_FAILED) {
profbuf_all_buffers = NULL;
More information about the pypy-commit
mailing list