diff -r b758351d191f -r cc9b7e14412b web/lib/arch/osx/jcc/patches/patch.43.0.6c11 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/arch/osx/jcc/patches/patch.43.0.6c11 Tue May 25 02:43:45 2010 +0200 @@ -0,0 +1,135 @@ +Index: setuptools/extension.py +=================================================================== +--- setuptools/extension.py (revision 75864) ++++ setuptools/extension.py (working copy) +@@ -28,6 +28,11 @@ + class Library(Extension): + """Just like a regular Extension, but built as a library instead""" + ++ def __init__(self, *args, **kwds): ++ self.force_shared = kwds.pop('force_shared', False) ++ Extension.__init__(self, *args, **kwds) ++ ++ + import sys, distutils.core, distutils.extension + distutils.core.Extension = Extension + distutils.extension.Extension = Extension +Index: setuptools/command/build_ext.py +=================================================================== +--- setuptools/command/build_ext.py (revision 75864) ++++ setuptools/command/build_ext.py (working copy) +@@ -85,8 +85,12 @@ + if fullname in self.ext_map: + ext = self.ext_map[fullname] + if isinstance(ext,Library): ++ if ext.force_shared and not use_stubs: ++ _libtype = 'shared' ++ else: ++ _libtype = libtype + fn, ext = os.path.splitext(filename) +- return self.shlib_compiler.library_filename(fn,libtype) ++ return self.shlib_compiler.library_filename(fn,_libtype) + elif use_stubs and ext._links_to_dynamic: + d,fn = os.path.split(filename) + return os.path.join(d,'dl-'+fn) +@@ -170,14 +174,22 @@ + def build_extension(self, ext): + _compiler = self.compiler + try: ++ force_shared = False + if isinstance(ext,Library): + self.compiler = self.shlib_compiler ++ force_shared = ext.force_shared and not use_stubs ++ if force_shared: ++ self.compiler.link_shared_object = \ ++ sh_link_shared_object.__get__(self.compiler) + _build_ext.build_extension(self,ext) + if ext._needs_stub: + self.write_stub( + self.get_finalized_command('build_py').build_lib, ext + ) + finally: ++ if force_shared: ++ self.compiler.link_shared_object = \ ++ link_shared_object.__get__(self.compiler) + self.compiler = _compiler + + def links_to_dynamic(self, ext): +@@ -244,44 +256,41 @@ + os.unlink(stub_file) + + +-if use_stubs or os.name=='nt': +- # Build shared libraries +- # +- def link_shared_object(self, objects, output_libname, output_dir=None, +- libraries=None, library_dirs=None, runtime_library_dirs=None, +- export_symbols=None, debug=0, extra_preargs=None, +- extra_postargs=None, build_temp=None, target_lang=None +- ): self.link( +- self.SHARED_LIBRARY, objects, output_libname, +- output_dir, libraries, library_dirs, runtime_library_dirs, +- export_symbols, debug, extra_preargs, extra_postargs, +- build_temp, target_lang +- ) +-else: +- # Build static libraries everywhere else +- libtype = 'static' ++def sh_link_shared_object(self, objects, output_libname, output_dir=None, ++ libraries=None, library_dirs=None, runtime_library_dirs=None, ++ export_symbols=None, debug=0, extra_preargs=None, ++ extra_postargs=None, build_temp=None, target_lang=None ++): self.link(self.SHARED_LIBRARY, objects, output_libname, ++ output_dir, libraries, library_dirs, runtime_library_dirs, ++ export_symbols, debug, extra_preargs, extra_postargs, ++ build_temp, target_lang) + +- def link_shared_object(self, objects, output_libname, output_dir=None, +- libraries=None, library_dirs=None, runtime_library_dirs=None, +- export_symbols=None, debug=0, extra_preargs=None, +- extra_postargs=None, build_temp=None, target_lang=None +- ): +- # XXX we need to either disallow these attrs on Library instances, +- # or warn/abort here if set, or something... +- #libraries=None, library_dirs=None, runtime_library_dirs=None, +- #export_symbols=None, extra_preargs=None, extra_postargs=None, +- #build_temp=None ++def st_link_shared_object(self, objects, output_libname, output_dir=None, ++ libraries=None, library_dirs=None, runtime_library_dirs=None, ++ export_symbols=None, debug=0, extra_preargs=None, ++ extra_postargs=None, build_temp=None, target_lang=None ++): ++ # XXX we need to either disallow these attrs on Library instances, ++ # or warn/abort here if set, or something... ++ #libraries=None, library_dirs=None, runtime_library_dirs=None, ++ #export_symbols=None, extra_preargs=None, extra_postargs=None, ++ #build_temp=None + +- assert output_dir is None # distutils build_ext doesn't pass this +- output_dir,filename = os.path.split(output_libname) +- basename, ext = os.path.splitext(filename) +- if self.library_filename("x").startswith('lib'): +- # strip 'lib' prefix; this is kludgy if some platform uses +- # a different prefix +- basename = basename[3:] ++ assert output_dir is None # distutils build_ext doesn't pass this ++ output_dir,filename = os.path.split(output_libname) ++ basename, ext = os.path.splitext(filename) ++ if self.library_filename("x").startswith('lib'): ++ # strip 'lib' prefix; this is kludgy if some platform uses ++ # a different prefix ++ basename = basename[3:] + +- self.create_static_lib( +- objects, basename, output_dir, debug, target_lang +- ) ++ self.create_static_lib(objects, basename, output_dir, debug, target_lang) + + ++if use_stubs or os.name=='nt': ++ # Build shared libraries ++ link_shared_object = sh_link_shared_object ++else: ++ # Build static libraries everywhere else (unless force_shared) ++ libtype = 'static' ++ link_shared_object = st_link_shared_object