OSDN Git Service

2004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Mar 2004 22:47:57 +0000 (22:47 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Mar 2004 22:47:57 +0000 (22:47 +0000)
        * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
        Fix the check for abort and only do the mmap if we can.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79512 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/host-darwin.c

index 1f60368..458ae13 100644 (file)
@@ -1,3 +1,8 @@
+2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
+       Fix the check for abort and only do the mmap if we can.
+
 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
 
        * config/sparc/sparc.h: Rework comments about the code model
 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
 
        * config/sparc/sparc.h: Rework comments about the code model
index e626304..9f47cac 100644 (file)
@@ -180,16 +180,19 @@ darwin_rs6000_gt_pch_use_address (void *addr, size_t sz, int fd, size_t off)
   if (munmap (pch_address_space + sz, sizeof (pch_address_space) - sz) != 0)
     fatal_error ("couldn't unmap pch_address_space: %m\n");
 
   if (munmap (pch_address_space + sz, sizeof (pch_address_space) - sz) != 0)
     fatal_error ("couldn't unmap pch_address_space: %m\n");
 
-  mmap_result = mmap (addr, sz,
-                     PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED,
-                     fd, off);
+  if (ret)
+    {
+      mmap_result = mmap (addr, sz,
+                         PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED,
+                         fd, off);
 
 
-  /* The file might not be mmap-able.  */
-  ret = mmap_result == (void *) MAP_FAILED;
+      /* The file might not be mmap-able.  */
+      ret = mmap_result == (void *) MAP_FAILED;
 
 
-  /* Sanity check for broken MAP_FIXED.  */
-  if (ret && mmap_result != addr)
-    abort ();
+      /* Sanity check for broken MAP_FIXED.  */
+      if (!ret && mmap_result != addr)
+       abort ();
+    }
 
   return ret;
 }
 
   return ret;
 }