[pypy-svn] r58910 - in pypy/branch/cbuild-refactor/pypy/translator: . c platform tool
fijal at codespeak.net
fijal at codespeak.net
Fri Oct 10 16:18:14 CEST 2008
Author: fijal
Date: Fri Oct 10 16:18:11 2008
New Revision: 58910
Modified:
pypy/branch/cbuild-refactor/pypy/translator/c/genc.py
pypy/branch/cbuild-refactor/pypy/translator/platform/linux.py
pypy/branch/cbuild-refactor/pypy/translator/tool/cbuild.py
pypy/branch/cbuild-refactor/pypy/translator/translator.py
Log:
(fijal, pedronis) Start to make genc use platform
Modified: pypy/branch/cbuild-refactor/pypy/translator/c/genc.py
==============================================================================
--- pypy/branch/cbuild-refactor/pypy/translator/c/genc.py (original)
+++ pypy/branch/cbuild-refactor/pypy/translator/c/genc.py Fri Oct 10 16:18:11 2008
@@ -32,7 +32,15 @@
self.gcpolicy = gcpolicy # for tests only, e.g. rpython/memory/
if gcpolicy is not None and gcpolicy.requires_stackless:
config.translation.stackless = True
- self.eci = ExternalCompilationInfo()
+ self.eci = self.get_eci()
+
+ def get_eci(self):
+ from distutils import sysconfig
+ python_inc = sysconfig.get_python_inc()
+ pypy_include_dir = py.path.local(autopath.pypydir).join('translator', 'c')
+ return ExternalCompilationInfo(
+ include_dirs=[python_inc, pypy_include_dir]
+ )
def build_database(self):
translator = self.translator
@@ -206,9 +214,8 @@
export_symbols.append('malloc_counters')
extsymeci = ExternalCompilationInfo(export_symbols=export_symbols)
self.eci = self.eci.merge(extsymeci)
- compile_c_module([self.c_source_filename] + self.extrafiles,
- self.c_source_filename.purebasename, self.eci,
- tmpdir=self.c_source_filename.dirpath())
+ files = [self.c_source_filename] + self.extrafiles
+ self.translator.platform.compile(files, self.eci, standalone=False)
self._compiled = True
def _make_wrapper_module(self):
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 Fri Oct 10 16:18:11 2008
@@ -14,6 +14,8 @@
return pipe.returncode, stdout, stderr
class Linux(Platform):
+ link_extra = ['-lpthread']
+
def __init__(self, cc='gcc'):
self.cc = cc
@@ -22,7 +24,7 @@
library_dirs = ['-L%s' % (ldir,) for ldir in eci.library_dirs]
libraries = ['-l%s' % (lib,) for lib in eci.libraries]
return (include_dirs + [str(f) for f in cfiles] +
- library_dirs + libraries)
+ library_dirs + libraries + self.link_extra)
def _args_for_shared(self, args):
return ['-shared'] + args
Modified: pypy/branch/cbuild-refactor/pypy/translator/tool/cbuild.py
==============================================================================
--- pypy/branch/cbuild-refactor/pypy/translator/tool/cbuild.py (original)
+++ pypy/branch/cbuild-refactor/pypy/translator/tool/cbuild.py Fri Oct 10 16:18:11 2008
@@ -378,13 +378,6 @@
def __init__(self, cfilenames, eci, outputfilename=None,
compiler_exe=None, profbased=None, standalone=True):
- from distutils import sysconfig
- python_inc = sysconfig.get_python_inc()
- pypy_include_dir = py.path.local(autopath.pypydir).join('translator', 'c')
- eci = eci.merge(ExternalCompilationInfo(
- include_dirs=[python_inc, pypy_include_dir],
- platform=eci.platform,
- ))
self.cfilenames = cfilenames
if standalone:
ext = ''
Modified: pypy/branch/cbuild-refactor/pypy/translator/translator.py
==============================================================================
--- pypy/branch/cbuild-refactor/pypy/translator/translator.py (original)
+++ pypy/branch/cbuild-refactor/pypy/translator/translator.py Fri Oct 10 16:18:11 2008
@@ -13,6 +13,7 @@
from pypy.tool.sourcetools import nice_repr_for_func
from pypy.config.pypyoption import pypy_optiondescription
from pypy.config.translationoption import get_combined_translation_config
+from pypy.config.translationoption import get_platform
import py
log = py.log.Producer("flowgraph")
py.log.setconsumer("flowgraph", ansi_log)
@@ -36,6 +37,7 @@
if attr in flowing_flags:
setattr(config.translation, attr, flowing_flags[attr])
self.config = config
+ self.platform = get_platform(config)
self.create_flowspace_config()
self.annotator = None
self.rtyper = None
More information about the Pypy-commit
mailing list