Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 163707 Details for
Bug 235584
dev-util/subversion-1.5.1 ruby bindings compile failure with dev-lang/swig-1.3.36:subversion/bindings/swig/ruby/svn_client.c:1364: error: ‘_mSWIG’ undeclared (first use in this function)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
ruby-swig-1.3.36.patch
ruby-swig-1.3.36.patch (text/plain), 12.81 KB, created by
Ed Catmur
on 2008-08-24 12:45:46 UTC
(
hide
)
Description:
ruby-swig-1.3.36.patch
Filename:
MIME Type:
Creator:
Ed Catmur
Created:
2008-08-24 12:45:46 UTC
Size:
12.81 KB
patch
obsolete
>--- subversion/bindings/swig/proxy/rubyhead.swg 2008-07-24 06:39:29.000000000 +0100 >+++ subversion/bindings/swig/proxy/rubyhead.swg 2008-06-26 09:49:08.000000000 +0100 >@@ -1,5 +1,14 @@ > #include <ruby.h> > >+/* Remove global macros defined in Ruby's win32.h */ >+#ifdef write >+# undef write >+#endif >+#ifdef read >+# undef read >+#endif >+ >+ > /* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */ > #ifndef NUM2LL > #define NUM2LL(x) NUM2LONG((x)) >@@ -28,12 +37,44 @@ > #ifndef RSTRING_PTR > # define RSTRING_PTR(x) RSTRING(x)->ptr > #endif >+#ifndef RSTRING_END >+# define RSTRING_END(x) (RSTRING_PTR(x) + RSTRING_LEN(x)) >+#endif > #ifndef RARRAY_LEN > # define RARRAY_LEN(x) RARRAY(x)->len > #endif > #ifndef RARRAY_PTR > # define RARRAY_PTR(x) RARRAY(x)->ptr > #endif >+#ifndef RFLOAT_VALUE >+# define RFLOAT_VALUE(x) RFLOAT(x)->value >+#endif >+#ifndef DOUBLE2NUM >+# define DOUBLE2NUM(x) rb_float_new(x) >+#endif >+#ifndef RHASH_TBL >+# define RHASH_TBL(x) (RHASH(x)->tbl) >+#endif >+#ifndef RHASH_ITER_LEV >+# define RHASH_ITER_LEV(x) (RHASH(x)->iter_lev) >+#endif >+#ifndef RHASH_IFNONE >+# define RHASH_IFNONE(x) (RHASH(x)->ifnone) >+#endif >+#ifndef RHASH_SIZE >+# define RHASH_SIZE(x) (RHASH(x)->tbl->num_entries) >+#endif >+#ifndef RHASH_EMPTY_P >+# define RHASH_EMPTY_P(x) (RHASH_SIZE(x) == 0) >+#endif >+#ifndef RSTRUCT_LEN >+# define RSTRUCT_LEN(x) RSTRUCT(x)->len >+#endif >+#ifndef RSTRUCT_PTR >+# define RSTRUCT_PTR(x) RSTRUCT(x)->ptr >+#endif >+ >+ > > /* > * Need to be very careful about how these macros are defined, especially >@@ -95,3 +136,4 @@ > #define rb_undef_alloc_func(klass) rb_undef_method(CLASS_OF((klass)), "new") > #endif > >+static VALUE _mSWIG = Qnil; >--- subversion/bindings/swig/proxy/swigrun.swg 2008-07-24 06:39:27.000000000 +0100 >+++ subversion/bindings/swig/proxy/swigrun.swg 2008-06-26 09:48:55.000000000 +0100 >@@ -7,7 +7,7 @@ > > /* This should only be incremented when either the layout of swig_type_info changes, > or for whatever reason, the runtime changes incompatibly */ >-#define SWIG_RUNTIME_VERSION "3" >+#define SWIG_RUNTIME_VERSION "4" > > /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ > #ifdef SWIG_TYPE_TABLE >@@ -42,6 +42,7 @@ > > /* Flags for pointer conversions */ > #define SWIG_POINTER_DISOWN 0x1 >+#define SWIG_CAST_NEW_MEMORY 0x2 > > /* Flags for new pointer objects */ > #define SWIG_POINTER_OWN 0x1 >@@ -182,10 +183,10 @@ SWIGINTERNINLINE int SWIG_CheckState(int > extern "C" { > #endif > >-typedef void *(*swig_converter_func)(void *); >+typedef void *(*swig_converter_func)(void *, int *); > typedef struct swig_type_info *(*swig_dycast_func)(void **); > >-/* Structure to store inforomation on one type */ >+/* Structure to store information on one type */ > typedef struct swig_type_info { > const char *name; /* mangled name of this type */ > const char *str; /* human readable name of this type */ >@@ -230,7 +231,7 @@ SWIG_TypeNameComp(const char *f1, const > while ((*f2 == ' ') && (f2 != l2)) ++f2; > if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; > } >- return (l1 - f1) - (l2 - f2); >+ return (int)((l1 - f1) - (l2 - f2)); > } > > /* >@@ -312,8 +313,8 @@ SWIG_TypeCheckStruct(swig_type_info *fro > Cast a pointer up an inheritance hierarchy > */ > SWIGRUNTIMEINLINE void * >-SWIG_TypeCast(swig_cast_info *ty, void *ptr) { >- return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr); >+SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { >+ return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); > } > > /* >--- subversion/bindings/swig/proxy/pyrun.swg 2008-07-24 06:39:30.000000000 +0100 >+++ /usr/share/swig/1.3.36/python/pyrun.swg 2008-06-26 09:49:03.000000000 +0100 >@@ -128,14 +128,14 @@ SWIG_Python_AppendOutput(PyObject* resul > /* Unpack the argument tuple */ > > SWIGINTERN int >-SWIG_Python_UnpackTuple(PyObject *args, const char *name, int min, int max, PyObject **objs) >+SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) > { > if (!args) { > if (!min && !max) { > return 1; > } else { > PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", >- name, (min == max ? "" : "at least "), min); >+ name, (min == max ? "" : "at least "), (int)min); > return 0; > } > } >@@ -143,14 +143,14 @@ SWIG_Python_UnpackTuple(PyObject *args, > PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); > return 0; > } else { >- register int l = PyTuple_GET_SIZE(args); >+ register Py_ssize_t l = PyTuple_GET_SIZE(args); > if (l < min) { > PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", >- name, (min == max ? "" : "at least "), min, l); >+ name, (min == max ? "" : "at least "), (int)min, (int)l); > return 0; > } else if (l > max) { > PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", >- name, (min == max ? "" : "at most "), max, l); >+ name, (min == max ? "" : "at most "), (int)max, (int)l); > return 0; > } else { > register int i; >@@ -448,7 +448,7 @@ PySwigObject_dealloc(PyObject *v) > { > PySwigObject *sobj = (PySwigObject *) v; > PyObject *next = sobj->next; >- if (sobj->own) { >+ if (sobj->own == SWIG_POINTER_OWN) { > swig_type_info *ty = sobj->ty; > PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0; > PyObject *destroy = data ? data->destroy : 0; >@@ -466,12 +466,13 @@ PySwigObject_dealloc(PyObject *v) > res = ((*meth)(mself, v)); > } > Py_XDECREF(res); >- } else { >- const char *name = SWIG_TypePrettyName(ty); >+ } > #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) >- printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name); >-#endif >+ else { >+ const char *name = SWIG_TypePrettyName(ty); >+ printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); > } >+#endif > } > Py_XDECREF(next); > PyObject_DEL(v); >@@ -629,9 +630,11 @@ _PySwigObject_type(void) { > (unaryfunc)0, /*nb_float*/ > (unaryfunc)PySwigObject_oct, /*nb_oct*/ > (unaryfunc)PySwigObject_hex, /*nb_hex*/ >-#if PY_VERSION_HEX >= 0x02020000 >- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ >-#elif PY_VERSION_HEX >= 0x02000000 >+#if PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ >+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ >+#elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */ >+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ >+#elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */ > 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ > #endif > }; >@@ -974,7 +977,7 @@ SWIG_Python_GetSwigThis(PyObject *pyobj) > > SWIGRUNTIME int > SWIG_Python_AcquirePtr(PyObject *obj, int own) { >- if (own) { >+ if (own == SWIG_POINTER_OWN) { > PySwigObject *sobj = SWIG_Python_GetSwigThis(obj); > if (sobj) { > int oldown = sobj->own; >@@ -995,6 +998,8 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *o > return SWIG_OK; > } else { > PySwigObject *sobj = SWIG_Python_GetSwigThis(obj); >+ if (own) >+ *own = 0; > while (sobj) { > void *vptr = sobj->ptr; > if (ty) { >@@ -1008,7 +1013,15 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *o > if (!tc) { > sobj = (PySwigObject *)sobj->next; > } else { >- if (ptr) *ptr = SWIG_TypeCast(tc,vptr); >+ if (ptr) { >+ int newmemory = 0; >+ *ptr = SWIG_TypeCast(tc,vptr,&newmemory); >+ if (newmemory == SWIG_CAST_NEW_MEMORY) { >+ assert(own); >+ if (own) >+ *own = *own | SWIG_CAST_NEW_MEMORY; >+ } >+ } > break; > } > } >@@ -1018,7 +1031,8 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *o > } > } > if (sobj) { >- if (own) *own = sobj->own; >+ if (own) >+ *own = *own | sobj->own; > if (flags & SWIG_POINTER_DISOWN) { > sobj->own = 0; > } >@@ -1083,8 +1097,13 @@ SWIG_Python_ConvertFunctionPtr(PyObject > } > if (ty) { > swig_cast_info *tc = SWIG_TypeCheck(desc,ty); >- if (!tc) return SWIG_ERROR; >- *ptr = SWIG_TypeCast(tc,vptr); >+ if (tc) { >+ int newmemory = 0; >+ *ptr = SWIG_TypeCast(tc,vptr,&newmemory); >+ assert(!newmemory); /* newmemory handling not yet implemented */ >+ } else { >+ return SWIG_ERROR; >+ } > } else { > *ptr = vptr; > } >--- subversion/bindings/swig/proxy/perlrun.swg 2008-07-24 06:39:30.000000000 +0100 >+++ /usr/share/swig/1.3.36/perl5/perlrun.swg 2008-06-26 09:49:00.000000000 +0100 >@@ -79,6 +79,11 @@ extern "C" { > > /* SWIG Perl macros */ > >+/* Macro to declare an XS function */ >+#ifndef XSPROTO >+# define XSPROTO(name) void name(pTHX_ CV* cv) >+#endif >+ > /* Macro to call an XS function */ > #ifdef PERL_OBJECT > # define SWIG_CALLXS(_name) _name(cv,pPerl) >@@ -90,51 +95,50 @@ extern "C" { > # endif > #endif > >-/* Note: SwigMagicFuncHack is a typedef used to get the C++ compiler to just shut up already */ >- > #ifdef PERL_OBJECT > #define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this; >-typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *); > > #ifdef __cplusplus > extern "C" { > #endif >-typedef int (CPerlObj::*SwigMagicFuncHack)(SV *, MAGIC *); >+typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *); > #ifdef __cplusplus > } > #endif > > #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b) > #define SWIGCLASS_STATIC >-#else >+ >+#else /* PERL_OBJECT */ >+ > #define MAGIC_PPERL > #define SWIGCLASS_STATIC static SWIGUNUSED >+ > #ifndef MULTIPLICITY > #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b) >-typedef int (*SwigMagicFunc)(SV *, MAGIC *); > > #ifdef __cplusplus > extern "C" { > #endif >-typedef int (*SwigMagicFuncHack)(SV *, MAGIC *); >+typedef int (*SwigMagicFunc)(SV *, MAGIC *); > #ifdef __cplusplus > } > #endif > >+#else /* MULTIPLICITY */ > >-#else > #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b) >-typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *); >+ > #ifdef __cplusplus > extern "C" { > #endif >-typedef int (*SwigMagicFuncHack)(struct interpreter *, SV *, MAGIC *); >+typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *); > #ifdef __cplusplus > } > #endif > >-#endif >-#endif >+#endif /* MULTIPLICITY */ >+#endif /* PERL_OBJECT */ > > /* Workaround for bug in perl 5.6.x croak and earlier */ > #if (PERL_VERSION < 8) >@@ -203,7 +207,7 @@ SWIG_Perl_TypeProxyName(const swig_type_ > > SWIGRUNTIME swig_cast_info * > SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) { >- SWIG_TypeCheck_Template(( (!iter->type->clientdata && (strcmp((char*)iter->type->name, c) == 0)) >+ SWIG_TypeCheck_Template(( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0)) > || (iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0))), ty); > } > >@@ -261,7 +265,11 @@ SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJ > if (!tc) { > return SWIG_ERROR; > } >- *ptr = SWIG_TypeCast(tc,voidptr); >+ { >+ int newmemory = 0; >+ *ptr = SWIG_TypeCast(tc,voidptr,&newmemory); >+ assert(!newmemory); /* newmemory handling not yet implemented */ >+ } > } else { > *ptr = voidptr; > } >@@ -351,7 +359,7 @@ SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_ > const char *c = 0; > > if ((!obj) || (!SvOK(obj))) return SWIG_ERROR; >- c = SvPV(obj, PL_na); >+ c = SvPV_nolen(obj); > /* Pointer values must start with leading underscore */ > if (*c != '_') return SWIG_ERROR; > c++; >@@ -368,7 +376,7 @@ SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_ > #define SWIG_croak(x) { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; } > > >-typedef XS(SwigPerlWrapper); >+typedef XSPROTO(SwigPerlWrapper); > typedef SwigPerlWrapper *SwigPerlWrapperPtr; > > /* Structure for command table */ >@@ -421,8 +429,8 @@ SWIGRUNTIME void _swig_create_magic(CPer > sv_magic(sv,sv,'U',(char *) name,strlen(name)); > mg = mg_find(sv,'U'); > mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL)); >- mg->mg_virtual->svt_get = (SwigMagicFuncHack) get; >- mg->mg_virtual->svt_set = (SwigMagicFuncHack) set; >+ mg->mg_virtual->svt_get = (SwigMagicFunc) get; >+ mg->mg_virtual->svt_set = (SwigMagicFunc) set; > mg->mg_virtual->svt_len = 0; > mg->mg_virtual->svt_clear = 0; > mg->mg_virtual->svt_free = 0; >@@ -436,7 +444,7 @@ SWIG_Perl_GetModule(void) { > > /* first check if pointer already created */ > if (!type_pointer) { >- pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE); >+ pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI); > if (pointer && SvOK(pointer)) { > type_pointer = INT2PTR(swig_type_info **, SvIV(pointer)); > } >@@ -450,7 +458,7 @@ SWIG_Perl_SetModule(swig_module_info *mo > SV *pointer; > > /* create a new pointer */ >- pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE); >+ pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI); > sv_setiv(pointer, PTR2IV(module)); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 235584
:
163688
| 163707