mozilla-gcc47.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Mon, 16 Apr 2012 14:32:00 +0200
branchfirefox12
changeset 424 44d79c1f5826
parent 422 35be97f6fdf7
child 449 feee012b5199
permissions -rw-r--r--
more gcc4.7 fixes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
422
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
# HG changeset patch
424
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
     2
# Parent debab900e37fdd4f8981c06beef6f193a04bd2b7
422
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
Patch to make Mozilla build with gcc 4.7, including
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
- Bug 725655 - gcc 4.7 build failures (missing headers) (TM: Mozilla13)
424
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
     5
- Bug 734490 - "no viable overloaded 'PRIxPTR'" when building with Clang or GCC 4.7 (TM: Mozilla14)
422
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
--- a/ipc/chromium/src/base/file_util_linux.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
+++ b/ipc/chromium/src/base/file_util_linux.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
@@ -1,15 +1,18 @@
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
 // Use of this source code is governed by a BSD-style license that can be
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
 // found in the LICENSE file.
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
 #include "base/file_util.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
 #include <fcntl.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
+#if defined(ANDROID) || defined(OS_POSIX)
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
+#include <unistd.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
+#endif
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
 #include <string>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
 #include <vector>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
 #include "base/eintr_wrapper.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
 #include "base/file_path.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
 #include "base/string_util.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
--- a/ipc/chromium/src/base/message_pump_libevent.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
+++ b/ipc/chromium/src/base/message_pump_libevent.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
@@ -1,16 +1,19 @@
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
 // Copyright (c) 2008 The Chromium Authors. All rights reserved.
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
 // Use of this source code is governed by a BSD-style license that can be
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
 // found in the LICENSE file.
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
 #include "base/message_pump_libevent.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
 #include <errno.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
 #include <fcntl.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
+#if defined(ANDROID) || defined(OS_POSIX)
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
+#include <unistd.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
+#endif
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
 #include "eintr_wrapper.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
 #include "base/logging.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
 #include "base/scoped_nsautorelease_pool.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
 #include "base/scoped_ptr.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
 #include "base/time.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
 #include "third_party/libevent/event.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
--- a/ipc/chromium/src/base/time_posix.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
+++ b/ipc/chromium/src/base/time_posix.cc
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
@@ -8,16 +8,19 @@
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
 #include <mach/mach_time.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
 #endif
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    58
 #include <sys/time.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    59
 #ifdef ANDROID
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
 #include <time64.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
 #else
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
 #include <time.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
 #endif
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    64
+#if defined(ANDROID) || defined(OS_POSIX)
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
+#include <unistd.h>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
+#endif
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
 #include <limits>
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
 #include "base/basictypes.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
 #include "base/logging.h"
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
 
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
 namespace base {
35be97f6fdf7 fix some gcc 4.7 issues (not complete; still not building)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
 
424
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    75
diff --git a/layout/base/tests/TestPoisonArea.cpp b/layout/base/tests/TestPoisonArea.cpp
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    76
--- a/layout/base/tests/TestPoisonArea.cpp
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    77
+++ b/layout/base/tests/TestPoisonArea.cpp
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    78
@@ -392,53 +392,53 @@ ReservePoisonArea()
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    79
 {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    80
   if (sizeof(uintptr_t) == 8) {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    81
     // Use the hardware-inaccessible region.
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    82
     // We have to avoid 64-bit constants and shifts by 32 bits, since this
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    83
     // code is compiled in 32-bit mode, although it is never executed there.
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    84
     uintptr_t result = (((uintptr_t(0x7FFFFFFFu) << 31) << 1 |
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    85
                          uintptr_t(0xF0DEAFFFu)) &
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    86
                         ~uintptr_t(PAGESIZE-1));
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    87
-    printf("INFO | poison area assumed at 0x%.*"PRIxPTR"\n", SIZxPTR, result);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    88
+    printf("INFO | poison area assumed at 0x%.*" PRIxPTR "\n", SIZxPTR, result);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    89
     return result;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    90
   } else {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    91
     // First see if we can allocate the preferred poison address from the OS.
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    92
     uintptr_t candidate = (0xF0DEAFFF & ~(PAGESIZE-1));
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    93
     void *result = ReserveRegion(candidate, false);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    94
     if (result == (void *)candidate) {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    95
       // success - inaccessible page allocated
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    96
-      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    97
+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    98
              " (preferred addr)\n", SIZxPTR, (uintptr_t)result);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
    99
       return candidate;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   100
     }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   101
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   102
     // That didn't work, so see if the preferred address is within a range
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   103
     // of permanently inacessible memory.
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   104
     if (ProbeRegion(candidate)) {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   105
       // success - selected page cannot be usable memory
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   106
       if (result != MAP_FAILED)
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   107
         ReleaseRegion(result);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   108
-      printf("INFO | poison area assumed at 0x%.*"PRIxPTR
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   109
+      printf("INFO | poison area assumed at 0x%.*" PRIxPTR
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   110
              " (preferred addr)\n", SIZxPTR, candidate);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   111
       return candidate;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   112
     }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   113
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   114
     // The preferred address is already in use.  Did the OS give us a
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   115
     // consolation prize?
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   116
     if (result != MAP_FAILED) {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   117
-      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   118
+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   119
              " (consolation prize)\n", SIZxPTR, (uintptr_t)result);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   120
       return (uintptr_t)result;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   121
     }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   122
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   123
     // It didn't, so try to allocate again, without any constraint on
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   124
     // the address.
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   125
     result = ReserveRegion(0, false);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   126
     if (result != MAP_FAILED) {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   127
-      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   128
+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   129
              " (fallback)\n", SIZxPTR, (uintptr_t)result);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   130
       return (uintptr_t)result;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   131
     }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   132
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   133
     printf("ERROR | no usable poison area found\n");
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   134
     return 0;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   135
   }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   136
 }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   137
@@ -450,17 +450,17 @@ static uintptr_t
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   138
 ReservePositiveControl()
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   139
 {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   140
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   141
   void *result = ReserveRegion(0, false);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   142
   if (result == MAP_FAILED) {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   143
     printf("ERROR | allocating positive control | %s\n", LastErrMsg());
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   144
     return 0;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   145
   }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   146
-  printf("INFO | positive control allocated at 0x%.*"PRIxPTR"\n",
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   147
+  printf("INFO | positive control allocated at 0x%.*" PRIxPTR "\n",
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   148
          SIZxPTR, (uintptr_t)result);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   149
   return (uintptr_t)result;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   150
 }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   151
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   152
 /* The "negative control" area confirms that our probe logic does detect a
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   153
  * page that is readable, writable, or executable.
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   154
  */
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   155
 static uintptr_t
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   156
@@ -481,17 +481,17 @@ ReserveNegativeControl()
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   157
   // Now mark it executable as well as readable and writable.
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   158
   // (mmap(PROT_EXEC) may fail when applied to anonymous memory.)
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   159
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   160
   if (MakeRegionExecutable(result)) {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   161
     printf("ERROR | making negative control executable | %s\n", LastErrMsg());
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   162
     return 0;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   163
   }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   164
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   165
-  printf("INFO | negative control allocated at 0x%.*"PRIxPTR"\n",
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   166
+  printf("INFO | negative control allocated at 0x%.*" PRIxPTR "\n",
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   167
          SIZxPTR, (uintptr_t)result);
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   168
   return (uintptr_t)result;
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   169
 }
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   170
 
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   171
 static void
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   172
 JumpTo(uintptr_t opaddr)
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   173
 {
44d79c1f5826 more gcc4.7 fixes
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 422
diff changeset
   174
 #ifdef __ia64