Avoid unstructured procfs on Solaris
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 27 Aug 2015 11:26:18 +0000 (11:26 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Thu, 27 Aug 2015 11:26:18 +0000 (11:26 +0000)
* os_dep.c [GC_SOLARIS_THREADS] (GC_dirty_init): Use
/proc/<pid>/pagedata instead of PIOCOPENPD.

From-SVN: r227254

boehm-gc/ChangeLog
boehm-gc/os_dep.c

index 4a7ca390993850f640be19c49cbcf354fcd09e07..e610484ad1e0c43b9122e91066c6bb90f3899fe4 100644 (file)
@@ -1,3 +1,8 @@
+2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * os_dep.c [GC_SOLARIS_THREADS] (GC_dirty_init): Use
+       /proc/<pid>/pagedata instead of PIOCOPENPD.
+
 2015-07-24  Michael Darling  <darlingm@gmail.com>
 
        PR other/66259
index 470d4fc14dd5b436211e6d0991d2974ab79309c3..60cbc2b29765e5abb6aff052ee30dbea4c89f449 100644 (file)
@@ -3184,13 +3184,11 @@ void GC_dirty_init()
                                (GC_words_allocd + GC_words_allocd_before_gc));
 #      endif       
     }
-    sprintf(buf, "/proc/%d", getpid());
-    fd = open(buf, O_RDONLY);
-    if (fd < 0) {
+    sprintf(buf, "/proc/%d/pagedata", getpid());
+    GC_proc_fd = open(buf, O_RDONLY);
+    if (GC_proc_fd < 0) {
        ABORT("/proc open failed");
     }
-    GC_proc_fd = syscall(SYS_ioctl, fd, PIOCOPENPD, 0);
-    close(fd);
     syscall(SYS_fcntl, GC_proc_fd, F_SETFD, FD_CLOEXEC);
     if (GC_proc_fd < 0) {
        ABORT("/proc ioctl failed");