[pypy-svn] r76178 - pypy/trunk/pypy/translator/platform

fijal at codespeak.net fijal at codespeak.net
Tue Jul 13 13:48:53 CEST 2010


Author: fijal
Date: Tue Jul 13 13:48:52 2010
New Revision: 76178

Modified:
   pypy/trunk/pypy/translator/platform/__init__.py
   pypy/trunk/pypy/translator/platform/darwin.py
   pypy/trunk/pypy/translator/platform/posix.py
   pypy/trunk/pypy/translator/platform/windows.py
Log:
Merge 76177 from unicode-filename-2


Modified: pypy/trunk/pypy/translator/platform/__init__.py
==============================================================================
--- pypy/trunk/pypy/translator/platform/__init__.py	(original)
+++ pypy/trunk/pypy/translator/platform/__init__.py	Tue Jul 13 13:48:52 2010
@@ -161,7 +161,7 @@
         return (library_dirs + self.link_flags + export_flags +
                 link_files + list(eci.link_extra) + libraries)
 
-    def _exportsymbols_link_flags(self, eci):
+    def _exportsymbols_link_flags(self, eci, relto=None):
         if eci.export_symbols:
             raise ValueError("This platform does not support export symbols")
         return []

Modified: pypy/trunk/pypy/translator/platform/darwin.py
==============================================================================
--- pypy/trunk/pypy/translator/platform/darwin.py	(original)
+++ pypy/trunk/pypy/translator/platform/darwin.py	Tue Jul 13 13:48:52 2010
@@ -56,7 +56,7 @@
         include_dirs = self._includedirs(eci.include_dirs)
         return (args + frameworks + include_dirs)
 
-    def _exportsymbols_link_flags(self, eci):
+    def _exportsymbols_link_flags(self, eci, relto=None):
         if not eci.export_symbols:
             return []
 
@@ -65,6 +65,9 @@
         for sym in eci.export_symbols:
             f.write("_%s\n" % (sym,))
         f.close()
+
+        if relto:
+            response_file = relto.bestrelpath(response_file)
         return ["-Wl,-exported_symbols_list,%s" % (response_file,)]
 
 class Darwin_i386(Darwin):

Modified: pypy/trunk/pypy/translator/platform/posix.py
==============================================================================
--- pypy/trunk/pypy/translator/platform/posix.py	(original)
+++ pypy/trunk/pypy/translator/platform/posix.py	Tue Jul 13 13:48:52 2010
@@ -39,7 +39,7 @@
     def _link_args_from_eci(self, eci, standalone):
         return Platform._link_args_from_eci(self, eci, standalone)
 
-    def _exportsymbols_link_flags(self, eci):
+    def _exportsymbols_link_flags(self, eci, relto=None):
         if not eci.export_symbols:
             return []
 
@@ -50,6 +50,9 @@
             f.write("%s;\n" % (sym,))
         f.write("};")
         f.close()
+
+        if relto:
+            response_file = relto.bestrelpath(response_file)
         return ["-Wl,--export-dynamic,--version-script=%s" % (response_file,)]
 
     def _link(self, cc, ofiles, link_args, standalone, exe_name):
@@ -90,7 +93,7 @@
         if shared:
             linkflags = self._args_for_shared(linkflags)
 
-        linkflags += self._exportsymbols_link_flags(eci)
+        linkflags += self._exportsymbols_link_flags(eci, relto=path)
 
         if shared:
             libname = exe_name.new(ext='').basename

Modified: pypy/trunk/pypy/translator/platform/windows.py
==============================================================================
--- pypy/trunk/pypy/translator/platform/windows.py	(original)
+++ pypy/trunk/pypy/translator/platform/windows.py	Tue Jul 13 13:48:52 2010
@@ -141,7 +141,7 @@
         # Windows needs to resolve all symbols even for DLLs
         return super(MsvcPlatform, self)._link_args_from_eci(eci, standalone=True)
 
-    def _exportsymbols_link_flags(self, eci):
+    def _exportsymbols_link_flags(self, eci, relto=None):
         if not eci.export_symbols:
             return []
 
@@ -150,6 +150,9 @@
         for sym in eci.export_symbols:
             f.write("/EXPORT:%s\n" % (sym,))
         f.close()
+
+        if relto:
+            response_file = relto.bestrelpath(response_file)
         return ["@%s" % (response_file,)]
 
     def _compile_c_file(self, cc, cfile, compile_args):
@@ -219,7 +222,7 @@
         if shared:
             linkflags = self._args_for_shared(linkflags) + [
                 '/EXPORT:$(PYPY_MAIN_FUNCTION)']
-        linkflags += self._exportsymbols_link_flags(eci)
+        linkflags += self._exportsymbols_link_flags(eci, relto=path)
 
         if shared:
             so_name = exe_name.new(purebasename='lib' + exe_name.purebasename,



More information about the Pypy-commit mailing list