[pypy-svn] r59231 - pypy/branch/cbuild-refactor/pypy/translator/platform

pedronis at codespeak.net pedronis at codespeak.net
Sun Oct 19 15:11:55 CEST 2008


Author: pedronis
Date: Sun Oct 19 15:11:54 2008
New Revision: 59231

Modified:
   pypy/branch/cbuild-refactor/pypy/translator/platform/darwin.py
   pypy/branch/cbuild-refactor/pypy/translator/platform/linux.py
Log:
- pass -mdynamic-no-pic when we build standalone on darwin
- tentative fix to tuatara problem, to test there



Modified: pypy/branch/cbuild-refactor/pypy/translator/platform/darwin.py
==============================================================================
--- pypy/branch/cbuild-refactor/pypy/translator/platform/darwin.py	(original)
+++ pypy/branch/cbuild-refactor/pypy/translator/platform/darwin.py	Sun Oct 19 15:11:54 2008
@@ -7,7 +7,8 @@
     
     link_flags = []
     cflags = ['-O3', '-fomit-frame-pointer']
-    # -mdynamic-no-pic for standalone
+    standalone_only = ['-mdynamic-no-pic']
+    shared_only = ['-mmacosx-version-min=10.4']
     
     def __init__(self, cc=None):
         if cc is None:
@@ -15,7 +16,8 @@
         self.cc = cc
 
     def _args_for_shared(self, args):
-        return ['-bundle', '-undefined', 'dynamic_lookup'] + args
+        return (self.shared_only + ['-bundle', '-undefined', 'dynamic_lookup']
+                                 + args)
 
     def include_dirs_for_libffi(self):
         return ['/usr/include/ffi']

Modified: pypy/branch/cbuild-refactor/pypy/translator/platform/linux.py
==============================================================================
--- pypy/branch/cbuild-refactor/pypy/translator/platform/linux.py	(original)
+++ pypy/branch/cbuild-refactor/pypy/translator/platform/linux.py	Sun Oct 19 15:11:54 2008
@@ -97,6 +97,8 @@
     
     link_flags = ['-pthread']
     cflags = ['-O3', '-pthread', '-fomit-frame-pointer']
+    standalone_only = []
+    shared_only = []
     so_ext = 'so'
     exe_ext = ''
     
@@ -114,10 +116,15 @@
     def _includedirs(self, include_dirs):
         return ['-I%s' % (idir,) for idir in include_dirs]
 
-    def _compile_args_from_eci(self, eci):
+    def _compile_args_from_eci(self, eci, standalone):
         include_dirs = self._preprocess_dirs(eci.include_dirs)
         args = self._includedirs(include_dirs)
-        return (self.cflags + list(eci.compile_extra) + args)
+        if standalone:
+            extra = self.standalone_only
+        else:
+            extra = self.shared_only
+        cflags = self.cflags + extra
+        return (cflags + list(eci.compile_extra) + args)
 
     def _link_args_from_eci(self, eci):
         library_dirs = self._libdirs(eci.library_dirs)
@@ -132,17 +139,17 @@
     def _args_for_shared(self, args):
         return ['-shared'] + args
 
-    def _compile_o_files(self, cfiles, eci):
+    def _compile_o_files(self, cfiles, eci, standalone=True):
         cfiles = [py.path.local(f) for f in cfiles]
         cfiles += [py.path.local(f) for f in eci.separate_module_files]
-        compile_args = self._compile_args_from_eci(eci)
+        compile_args = self._compile_args_from_eci(eci, standalone)
         ofiles = []
         for cfile in cfiles:
             ofiles.append(self._compile_c_file(self.cc, cfile, compile_args))
         return ofiles
 
     def compile(self, cfiles, eci, outputfilename=None, standalone=True):
-        ofiles = self._compile_o_files(cfiles, eci)
+        ofiles = self._compile_o_files(cfiles, eci, standalone)
         return self._finish_linking(ofiles, eci, outputfilename, standalone)
 
     def _finish_linking(self, ofiles, eci, outputfilename, standalone):



More information about the Pypy-commit mailing list