ctypes-commit Mailing List for ctypes (Page 50)
Brought to you by:
theller
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
(8) |
May
(90) |
Jun
(143) |
Jul
(106) |
Aug
(94) |
Sep
(84) |
Oct
(163) |
Nov
(60) |
Dec
(58) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(128) |
Feb
(79) |
Mar
(227) |
Apr
(192) |
May
(179) |
Jun
(41) |
Jul
(53) |
Aug
(103) |
Sep
(28) |
Oct
(38) |
Nov
(81) |
Dec
(17) |
2006 |
Jan
(184) |
Feb
(111) |
Mar
(188) |
Apr
(67) |
May
(58) |
Jun
(123) |
Jul
(73) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Andreas D. <ad...@us...> - 2005-05-16 23:28:59
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/testsuite/libffi.special In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20568/source/gcc/libffi/testsuite/libffi.special Added Files: Tag: branch_1_0 unwindtest.cc special.exp ffitestcxx.h Log Message: merged with HEAD --- NEW FILE: unwindtest.cc --- /* Area: ffi_closure, unwind info Purpose: Check if the unwind information is passed correctly. Limitations: none. PR: none. Originator: Jeff Sturm <js...@on...> */ /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */ #include "ffitestcxx.h" void closure_test_fn(ffi_cif* cif, void* resp, void** args, void* userdata) { throw 9; } typedef void (*closure_test_type)(); void closure_test_fn1(ffi_cif* cif,void* resp,void** args, void* userdata) { *(ffi_arg*)resp = (int)*(float *)args[0] +(int)(*(float *)args[1]) + (int)(*(float *)args[2]) + (int)*(float *)args[3] + (int)(*(signed short *)args[4]) + (int)(*(float *)args[5]) + (int)*(float *)args[6] + (int)(*(int *)args[7]) + (int)(*(double*)args[8]) + (int)*(int *)args[9] + (int)(*(int *)args[10]) + (int)(*(float *)args[11]) + (int)*(int *)args[12] + (int)(*(int *)args[13]) + (int)(*(int *)args[14]) + *(int *)args[15] + (int)(long)userdata; printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d: %d\n", (int)*(float *)args[0], (int)(*(float *)args[1]), (int)(*(float *)args[2]), (int)*(float *)args[3], (int)(*(signed short *)args[4]), (int)(*(float *)args[5]), (int)*(float *)args[6], (int)(*(int *)args[7]), (int)(*(double *)args[8]), (int)*(int *)args[9], (int)(*(int *)args[10]), (int)(*(float *)args[11]), (int)*(int *)args[12], (int)(*(int *)args[13]), (int)(*(int *)args[14]), *(int *)args[15], (int)(long)userdata, (int)*(ffi_arg*)resp); throw (int)*(ffi_arg*)resp; } typedef int (*closure_test_type1)(float, float, float, float, signed short, float, float, int, double, int, int, float, int, int, int, int); int main (void) { ffi_cif cif; #ifndef USING_MMAP static ffi_closure cl; #endif ffi_closure *pcl; ffi_type * cl_arg_types[17]; int res; #ifdef USING_MMAP pcl = (ffi_closure *) allocate_mmap (sizeof(ffi_closure)); #else pcl = &cl; #endif { cl_arg_types[1] = NULL; CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0, &ffi_type_void, cl_arg_types) == FFI_OK); CHECK(ffi_prep_closure(pcl, &cif, closure_test_fn, NULL) == FFI_OK); try { (*((closure_test_type)(pcl)))(); } catch (int exception_code) { CHECK(exception_code == 9); } printf("part one OK\n"); /* { dg-output "part one OK" } */ } { cl_arg_types[0] = &ffi_type_float; cl_arg_types[1] = &ffi_type_float; cl_arg_types[2] = &ffi_type_float; cl_arg_types[3] = &ffi_type_float; cl_arg_types[4] = &ffi_type_sshort; cl_arg_types[5] = &ffi_type_float; cl_arg_types[6] = &ffi_type_float; cl_arg_types[7] = &ffi_type_uint; cl_arg_types[8] = &ffi_type_double; cl_arg_types[9] = &ffi_type_uint; cl_arg_types[10] = &ffi_type_uint; cl_arg_types[11] = &ffi_type_float; cl_arg_types[12] = &ffi_type_uint; cl_arg_types[13] = &ffi_type_uint; cl_arg_types[14] = &ffi_type_uint; cl_arg_types[15] = &ffi_type_uint; cl_arg_types[16] = NULL; /* Initialize the cif */ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 16, &ffi_type_sint, cl_arg_types) == FFI_OK); CHECK(ffi_prep_closure(pcl, &cif, closure_test_fn1, (void *) 3 /* userdata */) == FFI_OK); try { (*((closure_test_type1)pcl)) (1.1, 2.2, 3.3, 4.4, 127, 5.5, 6.6, 8, 9, 10, 11, 12.0, 13, 19, 21, 1); /* { dg-output "\n1 2 3 4 127 5 6 8 9 10 11 12 13 19 21 1 3: 255" } */ } catch (int exception_code) { CHECK(exception_code == 255); } printf("part two OK\n"); /* { dg-output "\npart two OK" } */ } exit(0); } --- NEW FILE: special.exp --- # Copyright (C) 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # libffi testsuite that uses the 'dg.exp' driver. load_lib libffi-dg.exp dg-init libffi-init global srcdir subdir global cxx_options set cxx_options " -shared-libgcc -lstdc++" dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.cc]] $cxx_options "" dg-finish # Local Variables: # tcl-indent-level:4 # End: --- NEW FILE: ffitestcxx.h --- #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <ffi.h> #include "fficonfig.h" #define MAX_ARGS 256 #define CHECK(x) (!(x) ? abort() : (void)0) /* Prefer MAP_ANON(YMOUS) to /dev/zero, since we don't need to keep a file open. */ #ifdef HAVE_MMAP_ANON # undef HAVE_MMAP_DEV_ZERO # include <sys/mman.h> # ifndef MAP_FAILED # define MAP_FAILED -1 # endif # if !defined (MAP_ANONYMOUS) && defined (MAP_ANON) # define MAP_ANONYMOUS MAP_ANON # endif # define USING_MMAP #endif #ifdef HAVE_MMAP_DEV_ZERO # include <sys/mman.h> # ifndef MAP_FAILED # define MAP_FAILED -1 # endif # define USING_MMAP #endif #ifdef USING_MMAP static inline void * allocate_mmap (size_t size) { void *page; #if defined (HAVE_MMAP_DEV_ZERO) static int dev_zero_fd = -1; #endif #ifdef HAVE_MMAP_DEV_ZERO if (dev_zero_fd == -1) { dev_zero_fd = open ("/dev/zero", O_RDONLY); if (dev_zero_fd == -1) { perror ("open /dev/zero: %m"); exit (1); } } #endif #ifdef HAVE_MMAP_ANON page = mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); #endif #ifdef HAVE_MMAP_DEV_ZERO page = mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, dev_zero_fd, 0); #endif if (page == MAP_FAILED) { perror ("virtual memory exhausted"); exit (1); } return page; } #endif |
From: Andreas D. <ad...@us...> - 2005-05-16 23:28:58
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/testsuite/libffi.special/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20568/source/gcc/libffi/testsuite/libffi.special/CVS.gcc Added Files: Tag: branch_1_0 Root Repository Entries Log Message: merged with HEAD --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/testsuite/libffi.special --- NEW FILE: Entries --- /ffitestcxx.h/1.3/Wed Nov 26 13:46:10 2003// /special.exp/1.2/Wed Jan 12 09:06:52 2005// /unwindtest.cc/1.8/Wed Aug 25 05:06:55 2004// D |
From: Andreas D. <ad...@us...> - 2005-05-16 23:03:25
|
Update of /cvsroot/ctypes/ctypes/ctypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6305/ctypes Modified Files: __init__.py Log Message: use dyld_find from macholib for OS X, some definitions moved to util.py, added register_library_alias(). Index: __init__.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/ctypes/__init__.py,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** __init__.py 13 May 2005 13:44:05 -0000 1.75 --- __init__.py 16 May 2005 22:24:19 -0000 1.76 *************** *** 3,7 **** # special developer support to use ctypes from the CVS sandbox, # without installing it ! import os as _os, sys, re, tempfile _magicfile = _os.path.join(_os.path.dirname(__file__), ".CTYPES_DEVEL") if _os.path.isfile(_magicfile): --- 3,7 ---- # special developer support to use ctypes from the CVS sandbox, # without installing it ! import os as _os, sys, itertools _magicfile = _os.path.join(_os.path.dirname(__file__), ".CTYPES_DEVEL") if _os.path.isfile(_magicfile): *************** *** 121,125 **** elif _os.name == "posix": ! from _ctypes import dlopen as _LoadLibrary _FreeLibrary = None --- 121,133 ---- elif _os.name == "posix": ! if sys.platform == "darwin": ! from macholib.dyld import dyld_find as _dyld_find ! from _ctypes import dlopen as _dlopen ! def _LoadLibrary(name): ! if name: ! name = _dyld_find(name) ! return _dlopen(name) ! else: ! from _ctypes import dlopen as _LoadLibrary _FreeLibrary = None *************** *** 399,446 **** ! if _os.name == "posix": ! ! def _findLib_gcc(name): ! expr = '[^\(\)\s]*lib%s\.[^\(\)\s]*' % name ! cmd = 'if type gcc &>/dev/null; then CC=gcc; else CC=cc; fi;' \ ! '$CC -Wl,-t -o /dev/null 2>&1 -l' + name ! try: ! fdout, outfile = tempfile.mkstemp() ! fd = _os.popen(cmd) ! trace = fd.read() ! err = fd.close() ! finally: ! try: ! _os.unlink(outfile) ! except OSError, e: ! if e.errno != errno.ENOENT: ! raise ! res = re.search(expr, trace) ! if not res: ! return None ! return res.group(0) ! ! def _findLib_ld(name): ! expr = '/[^\(\)\s]*lib%s\.[^\(\)\s]*' % name ! res = re.search(expr, _os.popen('/sbin/ldconfig -p 2>/dev/null').read()) ! if not res: ! return None ! return res.group(0) ! ! def _get_soname(f): ! cmd = "objdump -p -j .dynamic 2>/dev/null " + f ! res = re.search(r'\sSONAME\s+([^\s]+)', _os.popen(cmd).read()) ! if not res: ! return f ! return res.group(1) ! def _findLib(name): ! lib = _findLib_ld(name) ! if not lib: ! lib = _findLib_gcc(name) ! if not lib: ! return name ! return _get_soname(lib) class _DLLS(object): --- 407,421 ---- ! def register_library_alias(alias, libname, osname, platform=None): ! global _library_map ! if osname is not None and osname != _os.name: ! return ! if platform is not None and platform != sys.platform: ! return ! _library_map[alias] = libname ! _library_map = {} + register_library_alias("c", "msvcrt", "nt") class _DLLS(object): *************** *** 451,455 **** if name[0] == '_': raise AttributeError, name ! dll = self._dlltype(name) setattr(self, name, dll) return dll --- 426,430 ---- if name[0] == '_': raise AttributeError, name ! dll = self.LoadLibrary(name) setattr(self, name, dll) return dll *************** *** 461,488 **** return self._dlltype(name) ! def find(self, name): ! # should loop over different known naming styles ! name = self._findLibrary(name) ! dll = self._dlltype(name) ! print "ctypes.find: %s" % name return dll if _os.name == "posix" and sys.platform == "darwin": def _findLibrary(self, name): ! return _findLib(name) ! def LoadLibraryVersion(self, name, version=''): ! path = "lib%s.dylib" % name ! try: ! dll = self._dlltype(path) ! except OSError: ! dll = self._dlltype("/usr/lib/"+path) ! return dll elif _os.name == "posix": def _findLibrary(self, name): ! return _findLib(name) ! def LoadLibraryVersion(self, name, version=''): if version: version = '.' + version --- 436,493 ---- return self._dlltype(name) ! def find(self, name, showname=True): ! global _library_map ! if name in _library_map: ! names = itertools.chain( ! self._findLibrary(name), ! self._findLibrary(_library_map[name])) ! else: ! names = self._findLibrary(name) ! for libname in names: ! try: ! dll = self._dlltype(libname) ! except OSError: ! continue ! break ! else: ! raise OSError, "not found: %s" % name ! if showname: ! print "ctypes.find: %s" % libname return dll + def LoadLibraryVersion(self, name, version=''): + global _library_map + try: + return self._LoadLibraryVersion(name, version) + except OSError, e: + pass + if name not in _library_map: + raise + name = _library_map[name] + try: + return self._LoadLibraryVersion(name, version) + except OSError: + raise e + if _os.name == "posix" and sys.platform == "darwin": def _findLibrary(self, name): ! return ['lib%s.dylib' % name, ! '%s.dylib' % name, ! '%s.framework/%s' % (name, name)] ! def _LoadLibraryVersion(self, name, version=''): ! for libname in self._findLibrary(name): ! try: ! return self._dlltype(libname) ! except OSError: ! continue ! raise OSError, "not found: %s" % name elif _os.name == "posix": def _findLibrary(self, name): ! from util import findLib ! return findLib(name) ! def _LoadLibraryVersion(self, name, version=''): if version: version = '.' + version *************** *** 492,500 **** else: def _findLibrary(self, name): ! return name ! def LoadLibraryVersion(self, name, version=''): ! dll = self._dlltype(self._findLibrary(name)) ! return dll --- 497,504 ---- else: def _findLibrary(self, name): ! return [name] ! def _LoadLibraryVersion(self, name, version=''): ! return self._dlltype(name) |
From: Andreas D. <ad...@us...> - 2005-05-16 22:43:28
|
Update of /cvsroot/ctypes/ctypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10676 Modified Files: README.txt ChangeLog Log Message: comment about compiling with older versions of OS X. Index: README.txt =================================================================== RCS file: /cvsroot/ctypes/ctypes/README.txt,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** README.txt 23 Jul 2004 17:41:42 -0000 1.11 --- README.txt 16 May 2005 22:42:22 -0000 1.12 *************** *** 54,58 **** This will build the Python extension modules. A C compiler is ! required. To run the builtin unittests, enter --- 54,60 ---- This will build the Python extension modules. A C compiler is ! required. On OS X, the segment attribute live_support must be ! defined. If your compiler doesn't know about it, upgrade or ! set the environment variable CCASFLAGS="-Dno_live_support". To run the builtin unittests, enter Index: ChangeLog =================================================================== RCS file: /cvsroot/ctypes/ctypes/ChangeLog,v retrieving revision 1.100 retrieving revision 1.101 diff -C2 -d -r1.100 -r1.101 *** ChangeLog 16 May 2005 22:32:37 -0000 1.100 --- ChangeLog 16 May 2005 22:42:22 -0000 1.101 *************** *** 1,4 **** --- 1,6 ---- 2005-05-17 Andreas Degert <ad...@pa...> + * README.txt: comment about compiling with older versions of OS X. + * ctypes/macholib/dyld.py: ValueError changed into OSError (make it compatible with other loader functions) |
From: Andreas D. <ad...@us...> - 2005-05-16 22:34:20
|
Update of /cvsroot/ctypes/ctypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8427 Modified Files: ChangeLog Log Message: Index: ChangeLog =================================================================== RCS file: /cvsroot/ctypes/ctypes/ChangeLog,v retrieving revision 1.99 retrieving revision 1.100 diff -C2 -d -r1.99 -r1.100 *** ChangeLog 14 May 2005 14:31:04 -0000 1.99 --- ChangeLog 16 May 2005 22:32:37 -0000 1.100 *************** *** 1,4 **** --- 1,32 ---- + 2005-05-17 Andreas Degert <ad...@pa...> + + * ctypes/macholib/dyld.py: ValueError changed into OSError (make + it compatible with other loader functions) + + * unittests/test_libc.py, unittests/test_loading.py: library + loading changed. + + * unittests/test_complete_cover.py, unittests/test_pointers.py, + unittests/test_setfunc.py: output to stdout removed. + + * unittests/test_callbacks.py: comment on OS X crash and + tearDown() method containing hack removed. + + * docs/reference.stx: explanation for use of different loader + functions added. + + * ctypes/__init__.py: use dyld_find from macholib for OS X, some + definitions moved to util.py, added register_library_alias(). + + * ctypes/util.py: added (platform dependent helpers) + + * MANIFEST.other.in: ctypes/macholib included (its not declared as + a module in setup.py because its not needed for windows + distribution). + 2005-05-14 Andreas Degert <ad...@pa...> + * ctypes/macholib: added, copied from branch_1_0 + * scripts/fetch_libffi, scripts/cvs-switch, scripts/README: tools to extract and update libffi from the gcc repository. |
From: Andreas D. <ad...@us...> - 2005-05-16 22:33:52
|
Update of /cvsroot/ctypes/ctypes/ctypes/macholib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8285/ctypes/macholib Modified Files: dyld.py Log Message: ValueError changed into OSError (make it compatible with other loader functions) Index: dyld.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/ctypes/macholib/dyld.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dyld.py 14 May 2005 15:09:08 -0000 1.2 --- dyld.py 16 May 2005 22:31:53 -0000 1.3 *************** *** 133,137 **** if os.path.isfile(path): return path ! raise ValueError, "dylib %s could not be found" % (name,) def framework_find(fn, executable_path=None, env=None): --- 133,137 ---- if os.path.isfile(path): return path ! raise OSError, "dylib %s could not be found" % (name,) def framework_find(fn, executable_path=None, env=None): *************** *** 146,150 **** try: return dyld_find(fn, executable_path=executable_path, env=env) ! except ValueError, e: pass fmwk_index = fn.rfind('.framework') --- 146,150 ---- try: return dyld_find(fn, executable_path=executable_path, env=env) ! except OSError, e: pass fmwk_index = fn.rfind('.framework') *************** *** 155,159 **** try: return dyld_find(fn, executable_path=executable_path, env=env) ! except ValueError: raise e --- 155,159 ---- try: return dyld_find(fn, executable_path=executable_path, env=env) ! except OSError: raise e |
From: Andreas D. <ad...@us...> - 2005-05-16 22:31:56
|
Update of /cvsroot/ctypes/ctypes/unittests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8162/unittests Modified Files: test_loading.py test_libc.py Log Message: library loading changed. Index: test_libc.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/unittests/test_libc.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_libc.py 15 Apr 2005 10:17:21 -0000 1.3 --- test_libc.py 16 May 2005 22:31:25 -0000 1.4 *************** *** 2,16 **** import unittest ! def get_libc(): ! import os, sys ! if os.name == "nt": ! return cdll.msvcrt ! try: ! return CDLL("libc.so.6") ! except OSError: ! return cdll.c ! ! libc = get_libc() ! libm = cdll.m class LibTest(unittest.TestCase): --- 2,7 ---- import unittest ! libc = cdll.find('c', False) ! libm = cdll.find('m', False) class LibTest(unittest.TestCase): Index: test_loading.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/unittests/test_loading.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test_loading.py 13 May 2005 13:45:30 -0000 1.1 --- test_loading.py 16 May 2005 22:31:25 -0000 1.2 *************** *** 11,15 **** name = "msvcrt" elif sys.platform == "darwin": ! name = "libc.so" else: name = "libc.so.6" --- 11,15 ---- name = "msvcrt" elif sys.platform == "darwin": ! name = "libc.dylib" else: name = "libc.so.6" *************** *** 19,26 **** def test_LoadLibraryVersion(self): version = "6" ! if os.name == "nt": ! name = "msvcrt" ! else: ! name = "c" cdll.LoadLibraryVersion(name, version) if sys.platform == "linux2": --- 19,23 ---- def test_LoadLibraryVersion(self): version = "6" ! name = "c" cdll.LoadLibraryVersion(name, version) if sys.platform == "linux2": *************** *** 30,46 **** def test_find(self): ! if os.name == "nt": ! name = "msvcrt" ! else: ! name = "c" ! #suppress output of cdll.find ! stdout = sys.stdout ! sys.stdout = StringIO.StringIO() ! try: ! cdll.find(name) ! finally: ! sys.stdout = stdout self.assertRaises(OSError, cdll.find, self.unknowndll) ! if __name__ == "__main__": unittest.main() --- 27,34 ---- def test_find(self): ! name = "c" ! cdll.find(name, False) self.assertRaises(OSError, cdll.find, self.unknowndll) ! if __name__ == "__main__": unittest.main() |
From: Andreas D. <ad...@us...> - 2005-05-14 15:09:17
|
Update of /cvsroot/ctypes/ctypes/ctypes/macholib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12918 Added Files: framework.py dylib.py dyld.py __init__.py README.ctypes .cvsignore Log Message: copied from branch_1_0 --- NEW FILE: .cvsignore --- *.pyc *.pyo .svn --- NEW FILE: framework.py --- """ Generic framework path manipulation """ import re __all__ = ['framework_info'] STRICT_FRAMEWORK_RE = re.compile(r"""(?x) (?P<location>^.*)(?:^|/) (?P<name> (?P<shortname>\w+).framework/ (?:Versions/(?P<version>[^/]+)/)? (?P=shortname) (?:_(?P<suffix>[^_]+))? )$ """) def framework_info(filename): """ A framework name can take one of the following four forms: Location/Name.framework/Versions/SomeVersion/Name_Suffix Location/Name.framework/Versions/SomeVersion/Name Location/Name.framework/Name_Suffix Location/Name.framework/Name returns None if not found, or a mapping equivalent to: dict( location='Location', name='Name.framework/Versions/SomeVersion/Name_Suffix', shortname='Name', version='SomeVersion', suffix='Suffix', ) Note that SomeVersion and Suffix are optional and may be None if not present """ is_framework = STRICT_FRAMEWORK_RE.match(filename) if not is_framework: return None return is_framework.groupdict() def test_framework_info(): def d(location=None, name=None, shortname=None, version=None, suffix=None): return dict( location=location, name=name, shortname=shortname, version=version, suffix=suffix ) assert framework_info('completely/invalid') is None assert framework_info('completely/invalid/_debug') is None assert framework_info('P/F.framework') is None assert framework_info('P/F.framework/_debug') is None assert framework_info('P/F.framework/F') == d('P', 'F.framework/F', 'F') assert framework_info('P/F.framework/F_debug') == d('P', 'F.framework/F_debug', 'F', suffix='debug') assert framework_info('P/F.framework/Versions') is None assert framework_info('P/F.framework/Versions/A') is None assert framework_info('P/F.framework/Versions/A/F') == d('P', 'F.framework/Versions/A/F', 'F', 'A') assert framework_info('P/F.framework/Versions/A/F_debug') == d('P', 'F.framework/Versions/A/F_debug', 'F', 'A', 'debug') if __name__ == '__main__': test_framework_info() --- NEW FILE: dylib.py --- """ Generic dylib path manipulation """ import re __all__ = ['dylib_info'] DYLIB_RE = re.compile(r"""(?x) (?P<location>^.*)(?:^|/) (?P<name> (?P<shortname>\w+?) (?:\.(?P<version>[^._]+))? (?:_(?P<suffix>[^._]+))? \.dylib$ ) """) def dylib_info(filename): """ A dylib name can take one of the following four forms: Location/Name.SomeVersion_Suffix.dylib Location/Name.SomeVersion.dylib Location/Name_Suffix.dylib Location/Name.dylib returns None if not found or a mapping equivalent to: dict( location='Location', name='Name.SomeVersion_Suffix.dylib', shortname='Name', version='SomeVersion', suffix='Suffix', ) Note that SomeVersion and Suffix are optional and may be None if not present. """ is_dylib = DYLIB_RE.match(filename) if not is_dylib: return None return is_dylib.groupdict() def test_dylib_info(): def d(location=None, name=None, shortname=None, version=None, suffix=None): return dict( location=location, name=name, shortname=shortname, version=version, suffix=suffix ) assert dylib_info('completely/invalid') is None assert dylib_info('completely/invalide_debug') is None assert dylib_info('P/Foo.dylib') == d('P', 'Foo.dylib', 'Foo') assert dylib_info('P/Foo_debug.dylib') == d('P', 'Foo_debug.dylib', 'Foo', suffix='debug') assert dylib_info('P/Foo.A.dylib') == d('P', 'Foo.A.dylib', 'Foo', 'A') assert dylib_info('P/Foo_debug.A.dylib') == d('P', 'Foo_debug.A.dylib', 'Foo_debug', 'A') assert dylib_info('P/Foo.A_debug.dylib') == d('P', 'Foo.A_debug.dylib', 'Foo', 'A', 'debug') if __name__ == '__main__': test_dylib_info() --- NEW FILE: README.ctypes --- Files in this directory from from Bob Ippolito's py2app. License: Any components of the py2app suite may be distributed under the MIT or PSF open source licenses. This is version 0.7, SVN revision 452, from 2005/04/15. --- NEW FILE: __init__.py --- """ Enough Mach-O to make your head spin. See the relevant header files in /usr/include/mach-o And also Apple's documentation. """ __version__ = '0.7' --- NEW FILE: dyld.py --- """ dyld emulation """ import os from framework import framework_info from dylib import dylib_info from itertools import * __all__ = [ 'dyld_find', 'framework_find', 'framework_info', 'dylib_info', ] # These are the defaults as per man dyld(1) # DEFAULT_FRAMEWORK_FALLBACK = [ os.path.expanduser("~/Library/Frameworks"), "/Library/Frameworks", "/Network/Library/Frameworks", "/System/Library/Frameworks", ] DEFAULT_LIBRARY_FALLBACK = [ os.path.expanduser("~/lib"), "/usr/local/lib", "/lib", "/usr/lib", ] def ensure_utf8(s): """Not all of PyObjC and Python understand unicode paths very well yet""" if isinstance(s, unicode): return s.encode('utf8') return s def dyld_env(env, var): if env is None: env = os.environ rval = env.get(var) if rval is None: return [] return rval.split(':') def dyld_image_suffix(env=None): if env is None: env = os.environ return env.get('DYLD_IMAGE_SUFFIX') def dyld_framework_path(env=None): return dyld_env(env, 'DYLD_FRAMEWORK_PATH') def dyld_library_path(env=None): return dyld_env(env, 'DYLD_LIBRARY_PATH') def dyld_fallback_framework_path(env=None): return dyld_env(env, 'DYLD_FALLBACK_FRAMEWORK_PATH') def dyld_fallback_library_path(env=None): return dyld_env(env, 'DYLD_FALLBACK_LIBRARY_PATH') def dyld_image_suffix_search(iterator, env=None): """For a potential path iterator, add DYLD_IMAGE_SUFFIX semantics""" suffix = dyld_image_suffix() if suffix is None: return iterator def _inject(iterator=iterator,suffix=suffix): for path in iterator: if path.endswith('.dylib'): yield path[:-len('.dylib')] + suffix + '.dylib' else: yield path + suffix yield path return _inject() def dyld_override_search(name, env=None): # If DYLD_FRAMEWORK_PATH is set and this dylib_name is a # framework name, use the first file that exists in the framework # path if any. If there is none go on to search the DYLD_LIBRARY_PATH # if any. framework = framework_info(name) if framework is not None: for path in dyld_framework_path(): yield os.path.join(path, framework['name']) # If DYLD_LIBRARY_PATH is set then use the first file that exists # in the path. If none use the original name. for path in dyld_library_path(): yield os.path.join(path, os.path.dirname(name)) def dyld_executable_path_search(name, executable_path=None): # If we haven't done any searching and found a library and the # dylib_name starts with "@executable_path/" then construct the # library name. if name.startswith('@executable_path/') and executable_path is not None: yield os.path.join(executable_path, name[len('@executable_path/'):]) def dyld_default_search(name, env=None): yield name framework = framework_info(name) if framework is not None: fallback_framework_path = dyld_fallback_framework_path() for path in fallback_framework_path: yield os.path.join(path, framework['name']) fallback_library_path = dyld_fallback_library_path() for path in fallback_library_path: yield os.path.join(path, os.path.basename(name)) if framework is not None and not fallback_framework_path: for path in DEFAULT_FRAMEWORK_FALLBACK: yield os.path.join(path, framework['name']) if not fallback_library_path: for path in DEFAULT_LIBRARY_FALLBACK: yield os.path.join(path, os.path.basename(name)) def dyld_find(name, executable_path=None, env=None): """ Find a library or framework using dyld semantics """ name = ensure_utf8(name) executable_path = ensure_utf8(executable_path) for path in dyld_image_suffix_search(chain( dyld_override_search(name, env), dyld_executable_path_search(name, executable_path), dyld_default_search(name, env), ), env): if os.path.isfile(path): return path raise ValueError, "dylib %s could not be found" % (name,) def framework_find(fn, executable_path=None, env=None): """ Find a framework using dyld semantics in a very loose manner. Will take input such as: Python Python.framework Python.framework/Versions/Current """ try: return dyld_find(fn, executable_path=executable_path, env=env) except ValueError, e: pass fmwk_index = fn.rfind('.framework') if fmwk_index == -1: fmwk_index = len(fn) fn += '.framework' fn = os.path.join(fn, os.path.basename(fn[:fmwk_index])) try: return dyld_find(fn, executable_path=executable_path, env=env) except ValueError: raise e def test_dyld_find(): env = {} print dyld_find('libSystem') print dyld_find('System.framework/System') if __name__ == '__main__': test_dyld_find() |
From: Andreas D. <ad...@us...> - 2005-05-14 14:31:13
|
Update of /cvsroot/ctypes/ctypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5879 Modified Files: ChangeLog Log Message: Index: ChangeLog =================================================================== RCS file: /cvsroot/ctypes/ctypes/ChangeLog,v retrieving revision 1.98 retrieving revision 1.99 diff -C2 -d -r1.98 -r1.99 *** ChangeLog 13 May 2005 13:46:04 -0000 1.98 --- ChangeLog 14 May 2005 14:31:04 -0000 1.99 *************** *** 1,2 **** --- 1,12 ---- + 2005-05-14 Andreas Degert <ad...@pa...> + + * scripts/fetch_libffi, scripts/cvs-switch, scripts/README: tools + to extract and update libffi from the gcc repository. + + * source/gcc: updated libffi to the current cvs version. Makes the + unittest test_callbacks work correctly with powerpc (the gc hack + can be removed), x86_64 is optimised and works with vararg calls + (without additional patches). + 2005-05-13 Andreas Degert <ad...@pa...> |
From: Andreas D. <ad...@us...> - 2005-05-14 14:31:12
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5879/source/gcc/libffi/CVS.gcc Modified Files: Entries Removed Files: Entries.Log Log Message: --- Entries.Log DELETED --- Index: Entries =================================================================== RCS file: /cvsroot/ctypes/ctypes/source/gcc/libffi/CVS.gcc/Entries,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Entries 14 May 2005 11:00:50 -0000 1.1 --- Entries 14 May 2005 14:31:04 -0000 1.2 *************** *** 15,17 **** /libtool-version/1.2/Sat Jun 26 20:37:03 2004// /stamp-h.in/1.1.1.1/Sun Aug 8 13:27:19 1999/-ko/ ! D --- 15,19 ---- /libtool-version/1.2/Sat Jun 26 20:37:03 2004// /stamp-h.in/1.1.1.1/Sun Aug 8 13:27:19 1999/-ko/ ! D/include//// ! D/src//// ! D/testsuite//// |
From: Andreas D. <ad...@us...> - 2005-05-14 14:31:12
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5879/source/gcc/libffi/src/CVS.gcc Modified Files: Entries Removed Files: Entries.Log Log Message: --- Entries.Log DELETED --- Index: Entries =================================================================== RCS file: /cvsroot/ctypes/ctypes/source/gcc/libffi/src/CVS.gcc/Entries,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Entries 14 May 2005 11:05:42 -0000 1.1 --- Entries 14 May 2005 14:31:04 -0000 1.2 *************** *** 5,7 **** /raw_api.c/1.3/Tue Oct 21 19:01:54 2003/-ko/ /types.c/1.19/Fri Dec 31 22:04:30 2004/-ko/ ! D --- 5,21 ---- /raw_api.c/1.3/Tue Oct 21 19:01:54 2003/-ko/ /types.c/1.19/Fri Dec 31 22:04:30 2004/-ko/ ! D/alpha//// ! D/arm//// ! D/cris//// ! D/frv//// ! D/ia64//// ! D/m32r//// ! D/m68k//// ! D/mips//// ! D/pa//// ! D/powerpc//// ! D/s390//// ! D/sh//// ! D/sh64//// ! D/sparc//// ! D/x86//// |
From: Andreas D. <ad...@us...> - 2005-05-14 14:31:12
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/testsuite/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5879/source/gcc/libffi/testsuite/CVS.gcc Modified Files: Entries Removed Files: Entries.Log Log Message: --- Entries.Log DELETED --- Index: Entries =================================================================== RCS file: /cvsroot/ctypes/ctypes/source/gcc/libffi/testsuite/CVS.gcc/Entries,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Entries 14 May 2005 11:05:41 -0000 1.1 --- Entries 14 May 2005 14:31:04 -0000 1.2 *************** *** 1,3 **** /Makefile.am/1.1/Thu Sep 4 14:49:22 2003// /Makefile.in/1.12/Mon Apr 18 17:08:58 2005// ! D --- 1,6 ---- /Makefile.am/1.1/Thu Sep 4 14:49:22 2003// /Makefile.in/1.12/Mon Apr 18 17:08:58 2005// ! D/config//// ! D/lib//// ! D/libffi.call//// ! D/libffi.special//// |
From: Andreas D. <ad...@us...> - 2005-05-14 14:29:17
|
Update of /cvsroot/ctypes/ctypes/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5536 Added Files: fetch_libffi cvs-switch README Log Message: tools to extract and update libffi from the gcc repository. --- NEW FILE: README --- This directory is for helper scripts fetch_libffi: shell script used to extract libffi from a gcc cvs checkout. Does some adaptations. cvs-switch: shell script which exchanges the CVS directories for the gcc repository with those for ctypes. Call again to get to the old state. Working with 2 repositories is not perfect, but at least the information is available. --- NEW FILE: cvs-switch --- #!/bin/sh set -e MV="mv" cd "$(dirname "$0")"/../source/gcc if [ -e libffi/CVS.gcc ]; then for f in $(find . -name CVS | sort -r); do [ -e "$f".ctypes ] && continue $MV "$f" "$f".ctypes [ -e "$f".gcc ] && $MV "$f".gcc "$f" done echo 'now using gcc repository' else for f in $(find . -name CVS.ctypes | sort -r); do f="$(dirname "$f")/$(basename "$f" .ctypes)" [ -e "$f" ] && $MV "$f" "$f".gcc $MV "$f".ctypes "$f" done echo 'now using ctypes repository' fi --- NEW FILE: fetch_libffi --- #!/bin/sh cat <<EOF This script can be used to extract libffi from a gcc cvs checkout. To run it, let GCCSRC (see below) point to the top directory of the gcc checkout, and start it with ctypes/source as current working directory. But beware, the directory tree ctypes/source/gcc will be replaced and the CVS directories will be lost. This is normally not what you want! Instead, you can rename the CVS.gcc directories with the script cvs-switch (CVS -> CVS.ctypes, CVS.gcc -> CVS), do an update from the gcc cvs repository, and run cvs-switch again (which reverses the rename operation). EOF exit GCCSRC=$HOME/cvs/gcc # XXX: change this ADOPTFILES="ltmain.sh ltconfig install-sh config.sub config.guess \ missing ltcf-c.sh gcc/version.c config-ml.in depcomp" rm -rf gcc mkdir -p gcc/gcc/testsuite cp -Rp $GCCSRC/libffi gcc cp -Rp $GCCSRC/gcc/testsuite/lib gcc/gcc/testsuite find gcc -name CVS | xargs -i mv {} {}.gcc for f in $ADOPTFILES; do cp -pf $GCCSRC/$f gcc/libffi done # we don't want multiple targets sed -i -e 's,\.\./gcc/version\.c,version.c,g' \ -e 's,^\( *multi_basedir=\)"[^"]*",\1"\$srcdir",g' \ gcc/libffi/configure # we don't paths with target and gcc version embedded sed -i -e '/^gcc_version *:=/d' \ -e '/^toollibffidir *:=/s,/\$(target_alias)/\$(gcc_version),,' \ gcc/libffi/include/Makefile.am gcc/libffi/include/Makefile.in # hack libffi-dg.exp to get the testsuite going sed -i -e '/ *set blddirffi /s,.*,set blddirffi "${objdir}/..",' \ gcc/libffi/testsuite/lib/libffi-dg.exp # old OS X build utilities do not know the section attribut live_support. # Add an option to hide it. patch --no-backup -s -p0 <<EOF --- gcc/libffi/src/powerpc/darwin_closure.S.old Thu Mar 24 01:45:38 2005 +++ gcc/libffi/src/powerpc/darwin_closure.S Sat May 14 03:25:47 2005 @@ -246,7 +246,11 @@ /* END(ffi_closure_ASM) */ .data +#ifdef no_live_support +.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms +#else .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support +#endif EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 ; Length of Common Information Entry EOF |
From: Andreas D. <ad...@us...> - 2005-05-14 14:17:34
|
Update of /cvsroot/ctypes/ctypes/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2971/scripts Log Message: Directory /cvsroot/ctypes/ctypes/scripts added to the repository |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/pa/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/pa/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/pa --- NEW FILE: Entries --- /ffi.c/1.1/Fri Mar 19 22:34:17 2004// /ffitarget.h/1.1/Fri Mar 19 22:34:17 2004// /linux.S/1.2/Sat Mar 20 11:58:01 2004// D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/powerpc/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/powerpc/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/powerpc --- NEW FILE: Entries --- /aix.S/1.5/Thu Sep 2 21:07:21 2004// /aix_closure.S/1.5/Thu Sep 2 21:07:21 2004// /asm.h/1.2/Thu Sep 2 21:07:21 2004/-ko/ /darwin.S/1.12/Thu Mar 24 00:45:38 2005// /darwin_closure.S/1.11/Thu Mar 24 00:45:38 2005// /ffi.c/1.12/Wed Feb 23 14:05:12 2005/-ko/ /ffi_darwin.c/1.13/Thu Sep 2 21:14:45 2004// /ffitarget.h/1.2/Thu Sep 2 21:07:21 2004// /linux64.S/1.7/Thu Sep 2 21:07:21 2004// /linux64_closure.S/1.7/Thu Sep 2 21:07:21 2004// /ppc_closure.S/1.9/Thu Sep 2 21:07:21 2004// /sysv.S/1.6/Thu Sep 2 21:07:21 2004/-ko/ D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/mips/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/mips/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/mips --- NEW FILE: Entries --- /ffi.c/1.8/Mon Aug 23 16:49:17 2004/-ko/ /ffitarget.h/1.4/Mon Aug 23 16:49:17 2004// /n32.S/1.3/Tue Oct 21 19:01:56 2003/-ko/ /o32.S/1.6/Tue Nov 23 23:18:11 2004/-ko/ D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/sh64/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/sh64/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/sh64 --- NEW FILE: Entries --- /ffi.c/1.1/Fri Jun 13 02:23:26 2003// /ffitarget.h/1.1/Tue Oct 21 19:07:51 2003// /sysv.S/1.2/Tue Oct 21 19:01:58 2003// D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/s390/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/s390/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/s390 --- NEW FILE: Entries --- /ffi.c/1.5/Sun Jul 11 11:45:39 2004// /ffitarget.h/1.1/Tue Oct 21 19:07:51 2003// /sysv.S/1.7/Tue Oct 21 19:01:57 2003// D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/m68k/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/m68k/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/m68k --- NEW FILE: Entries --- /ffi.c/1.2/Thu Jul 18 23:08:30 2002/-ko/ /ffitarget.h/1.1/Tue Oct 21 19:07:50 2003// /sysv.S/1.2/Tue Oct 21 19:01:56 2003/-ko/ D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/arm/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/arm/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/arm --- NEW FILE: Entries --- /ffi.c/1.5/Wed Oct 27 15:10:21 2004/-ko/ /ffitarget.h/1.1/Tue Oct 21 19:07:50 2003// /sysv.S/1.7/Wed Oct 27 15:10:22 2004/-ko/ D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/alpha/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/alpha/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/alpha --- NEW FILE: Entries --- /ffi.c/1.6/Tue Oct 21 19:01:55 2003/-ko/ /ffitarget.h/1.1/Tue Oct 21 19:07:50 2003// /osf.S/1.10/Sun May 8 23:23:50 2005/-ko/ D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:37
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/ia64/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/ia64/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/ia64 --- NEW FILE: Entries --- /ffi.c/1.7/Fri Dec 31 20:11:17 2004// /ffitarget.h/1.4/Thu Mar 31 01:22:46 2005// /ia64_flags.h/1.2/Fri Dec 31 20:11:17 2004// /unix.S/1.8/Wed Mar 30 21:49:19 2005// D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:36
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/sh/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/sh/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/sh --- NEW FILE: Entries --- /ffi.c/1.4/Mon Oct 18 23:12:20 2004// /ffitarget.h/1.1/Tue Oct 21 19:07:51 2003// /sysv.S/1.6/Thu Oct 21 06:00:41 2004// D |
From: Andreas D. <ad...@us...> - 2005-05-14 11:20:36
|
Update of /cvsroot/ctypes/ctypes/source/gcc/libffi/src/x86/CVS.gcc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7261/gcc/libffi/src/x86/CVS.gcc Added Files: Root Repository Entries Log Message: update from gcc cvs --- NEW FILE: Root --- :ext:an...@sa...:/cvsroot/gcc --- NEW FILE: Repository --- gcc/libffi/src/x86 --- NEW FILE: Entries --- /ffi.c/1.12/Tue Mar 16 19:17:33 2004/-ko/ /ffi64.c/1.9/Thu May 5 04:06:38 2005// /ffitarget.h/1.1/Tue Oct 21 19:07:52 2003// /sysv.S/1.8/Tue Oct 21 19:01:58 2003/-ko/ /unix64.S/1.8/Thu May 5 04:06:38 2005// /win32.S/1.5/Tue Mar 16 19:17:33 2004// D |