Index: scripts/macports-gcc-wrapper/wrapper.py |
=================================================================== |
--- scripts/macports-gcc-wrapper/wrapper.py (revision 0) |
+++ scripts/macports-gcc-wrapper/wrapper.py (revision 0) |
@@ -0,0 +1,39 @@ |
+#!/usr/bin/python |
+ |
+# Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+import os |
+import subprocess |
+import sys |
+ |
+# This python script wraps gcc-mp-4.X so it can handle |
+# compilation options memcheck uses on Mac, including: |
+# a) skip "-arch XXX" |
+# b) define empty "__private_extern__" macro so it doesn't bark |
+# on mac-specific code using this keyword. |
+# c) skip "-mno-dynamic-no-pic" and "-mdynamic-no-pic" |
+# This may not be a very clean solution in general but it works. |
+ |
+# The gcc command should be passes as an environment variable, |
+# e.g. GCC_BINARY_MASK=/opt/local/bin/XXX-mp-4.4 |
+assert os.environ.has_key("GCC_BINARY_MASK") |
+gcc_binary_mask = os.environ["GCC_BINARY_MASK"] |
+gcc = gcc_binary_mask.replace("XXX", sys.argv[1]) |
+ |
+gcc_command = [gcc, "-D__private_extern__="] |
+skip = 0 |
+for arg in sys.argv[2:]: |
+ if skip > 0: |
+ skip -= 1 |
+ continue |
+ if arg == "-arch": |
+ skip = 1 |
+ continue |
+ if arg == "-mno-dynamic-no-pic": |
+ continue |
+ if arg == "-mdynamic-no-pic": |
+ continue |
+ gcc_command.append(arg) |
+ |
+subprocess.call(gcc_command) |