Thread: [Pyobjc-dev] NSTextView weirdness
Brought to you by:
ronaldoussoren
From: <bb...@ma...> - 2002-11-13 16:08:43
|
Steve Arnold and I have been tracking down a bug related to NSTextView in the current [from cvs] version of the module. It is a nasty bug that can cause crashes, etc... I updated Examples/method-weirdness.py to demonstrate the bug [basically, generalized the code such that we can trivially add new class/method tests -- I smell a unit test in here somewhere]. As it currently stands, method-weirdness.py causes the bridge to crash. If you change the #if 1 to #if 0 in the middle of execute_and_pythonify_objc_method() in objc_sumpport.m, the crash moves until later-- until the objc_object is dealloc'd. It looks like the bridge is sending -release to a class object-- NSTextView-- and this leads to the crash, but I'm not 100% certain this is the case. Hopefully, it is as it would be a bug in the AppKit that is very easy to work around (is class?: don't release!). b.bum |
From: Ronald O. <ous...@ci...> - 2002-11-13 21:16:17
|
Some more debugging shows: The test code is too complex, the code below also causes a crash: from AppKit import NSTextView NSTextView.alloc() What I don't fully understand is the output of the following program: #import <AppKit/AppKit.h> int main(void) { id pool = [[NSAutoreleasePool alloc] init]; id obj = [NSTextView alloc]; NSLog(@"obj: %p [%d]\n", obj, [obj retainCount]); id withInit = [obj init]; NSLog(@"withInit: %p [%d]\n", withInit, [withInit retainCount]); NSLog(@"same? %d", obj == withInit); [pool release]; NSLog(@"obj: %p [%d]\n", obj, [obj retainCount]); return 0; } This emits: 2002-11-13 20:46:02.303 t[1448] obj: 0xb0890 [1] 2002-11-13 20:46:02.355 t[1448] withInit: 0xb0890 [3] 2002-11-13 20:46:02.357 t[1448] same? 1 2002-11-13 20:46:02.359 t[1448] obj: 0xb0890 [2] The retainCount after [[NSTextView alloc] init] is 3, and then autoreleased??? I've reproduced the problem in some pure Objective-C code: #import <AppKit/AppKit.h> int main(void) { id nil_obj = nil; id pool = [[NSAutoreleasePool alloc] init]; id inv = [NSInvocation invocationWithMethodSignature: [NSMethodSignature signatureWithObjCTypes:"@@:"]]; [inv retain]; [inv setTarget:[NSTextView class]]; [inv setSelector:@selector(alloc)]; [inv invoke]; [inv setReturnValue:&nil_obj]; return 0; } This crashes when using NSTextView, and works when using NSTableView. This looks like a problem with Apple code. I've checked in a workaround that at least should allow NSTextView.alloc().init(). The following code now works: from AppKit import NSTextView for i in range(10): print NSTextView.alloc().init() print "done" The workaround consists of adding custom wrappers for +alloc. This is intented to be a temporary workaround. Hmm, if your debugging the NSInternalConsistency problem from Arnolds message earlier today this isn't very helpfull, the problem doesn't go away. If I evaluate NSTextView.setEditable_ before calling obj.setEditable_ all goes well. I'm still checking why this is necessary. Ronald |
From: <bb...@ma...> - 2002-11-13 21:24:40
|
Is it the case that the class object is being released to the point of death by the NSInvocation (and, subsequently, by the Python wrapper for the ObjC object)? No... that isn't it... more like NSTextView.alloc() is returning something similar to NSArray.alloc() that behaves in a slightly different and more volatile fashion? Nuts. Yes, this was a part of debugging Steve's earlier problem and it still doesn't address that problem. > If I evaluate NSTextView.setEditable_ before calling obj.setEditable_ > all goes well. I'm still checking why this is necessary. I have not a clue and will be quite interested in the answer! b.bum On Wednesday, November 13, 2002, at 04:16 PM, Ronald Oussoren wrote: > Some more debugging shows: > > The test code is too complex, the code below also causes a crash: > > from AppKit import NSTextView > NSTextView.alloc() > > ..... |
From: Ronald O. <ous...@ci...> - 2002-11-15 21:24:39
|
Phew, I think I found the problem with NSTextView. I've just checked in a fix for this problem, it was caused by me not quite understanding how Python does method resolution: Instead of calling __getattr__ on the class the implementation directly looks inside the class __dict__. This bypasses a hook in the __getattr__ implementation of objc_class that is used to detect Objective-C classes whose method-table have been changed since the last attribute lookup. BTW. Don't do 'NSTextView.alloc()', but always add an init* call. If you don't do this the program will crash. This is not a PyObjC problem, but a Cocoa problem ([[NSTextView alloc] release] causes a segfault). I've opened bug reports with Apple about this, the [NSTextView alloc] problem using an NSInvocation (as described earlier) and the fact that NSOutlineView doesn't call retain on model objects even if it store references to them. Ronald On Wednesday, Nov 13, 2002, at 22:24 Europe/Amsterdam, bb...@ma... wrote: > Is it the case that the class object is being released to the point of > death by the NSInvocation (and, subsequently, by the Python wrapper > for the ObjC object)? > > No... that isn't it... more like NSTextView.alloc() is returning > something similar to NSArray.alloc() that behaves in a slightly > different and more volatile fashion? > > Nuts. > > Yes, this was a part of debugging Steve's earlier problem and it still > doesn't address that problem. > >> If I evaluate NSTextView.setEditable_ before calling obj.setEditable_ >> all goes well. I'm still checking why this is necessary. > > I have not a clue and will be quite interested in the answer! > > b.bum > > On Wednesday, November 13, 2002, at 04:16 PM, Ronald Oussoren wrote: > >> Some more debugging shows: >> >> The test code is too complex, the code below also causes a crash: >> >> from AppKit import NSTextView >> NSTextView.alloc() >> >> ..... > > > > ------------------------------------------------------- > This sf.net email is sponsored by: Are you worried about your web > server security? Click here for a FREE Thawte Apache SSL Guide and > answer your Apache SSL security needs: > http://www.gothawte.com/rd523.html > _______________________________________________ > Pyobjc-dev mailing list > Pyo...@li... > https://lists.sourceforge.net/lists/listinfo/pyobjc-dev > |
From: Steven D. A. <st...@ne...> - 2002-11-14 02:38:09
|
On 11/13/02 4:16 PM, "Ronald Oussoren" <ous...@ci...> wrote: > I've reproduced the problem in some pure Objective-C code: > #import <AppKit/AppKit.h> > > int main(void) > { > id nil_obj = nil; > id pool = [[NSAutoreleasePool alloc] init]; > > id inv = [NSInvocation invocationWithMethodSignature: > [NSMethodSignature signatureWithObjCTypes:"@@:"]]; > > [inv retain]; > [inv setTarget:[NSTextView class]]; > [inv setSelector:@selector(alloc)]; > [inv invoke]; > [inv setReturnValue:&nil_obj]; > return 0; > } > > This crashes when using NSTextView, and works when using NSTableView. > > This looks like a problem with Apple code. Interesting... > I've checked in a workaround that at least should allow > NSTextView.alloc().init(). I updated from CVS and tried unsuccessfully to build. The session is below: [thoth@paranoia:~/Source/pyobjc] > python setup.py clean running clean removing 'build/temp.darwin-6.1-Power Macintosh-2.3' (and everything under it) [thoth@paranoia:~/Source/pyobjc] > sudo python setup.py install running install running build running build_py running build_ext building 'objc._objc' extension creating build/temp.darwin-6.1-Power Macintosh-2.3 gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/objc-class.m -o build/temp.darwin-6.1-Power Macintosh-2.3/objc-class.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/instance-var.m -o build/temp.darwin-6.1-Power Macintosh-2.3/instance-var.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/selector.m -o build/temp.darwin-6.1-Power Macintosh-2.3/selector.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX Modules/objc/selector.m: In function `objcsel_call': Modules/objc/selector.m:457: warning: unused variable `obj' gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/module.m -o build/temp.darwin-6.1-Power Macintosh-2.3/module.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX Modules/objc/module.m: In function `init_objc': Modules/objc/module.m:233: warning: implicit declaration of function `ObjC_RegisterStdStubs' Modules/objc/module.m:247: warning: implicit declaration of function `ObjC_InstallAllocHack' gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/class-list.m -o build/temp.darwin-6.1-Power Macintosh-2.3/class-list.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/OC_PythonString.m -o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonString.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/objc_support.m -o build/temp.darwin-6.1-Power Macintosh-2.3/objc_support.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/objc_util.m -o build/temp.darwin-6.1-Power Macintosh-2.3/objc_util.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/OC_PythonObject.m -o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonObject.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/informal-protocol.m -o build/temp.darwin-6.1-Power Macintosh-2.3/informal-protocol.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/OC_PythonDictionary.m -o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonDictionary.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/OC_PythonInt.m -o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonInt.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/OC_PythonArray.m -o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonArray.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/pyobjc-api.m -o build/temp.darwin-6.1-Power Macintosh-2.3/pyobjc-api.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/objc-object.m -o build/temp.darwin-6.1-Power Macintosh-2.3/objc-object.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/super-call.m -o build/temp.darwin-6.1-Power Macintosh-2.3/super-call.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/register.m -o build/temp.darwin-6.1-Power Macintosh-2.3/register.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX Modules/objc/register.m:12: warning: function declaration isn't a prototype Modules/objc/register.m: In function `ObjC_RegisterStdStubs': Modules/objc/register.m:56720: warning: passing arg 2 of pointer to function from incompatible pointer type gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/ObjCPointer.m -o build/temp.darwin-6.1-Power Macintosh-2.3/ObjCPointer.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -I/usr/local/include/python2.3 -c Modules/objc/class-builder.m -o build/temp.darwin-6.1-Power Macintosh-2.3/class-builder.o -g -O0 -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX gcc -bundle -bundle_loader /usr/local/bin/python build/temp.darwin-6.1-Power Macintosh-2.3/objc_util.o build/temp.darwin-6.1-Power Macintosh-2.3/objc_support.o build/temp.darwin-6.1-Power Macintosh-2.3/class-builder.o build/temp.darwin-6.1-Power Macintosh-2.3/class-list.o build/temp.darwin-6.1-Power Macintosh-2.3/ObjCPointer.o build/temp.darwin-6.1-Power Macintosh-2.3/objc-class.o build/temp.darwin-6.1-Power Macintosh-2.3/informal-protocol.o build/temp.darwin-6.1-Power Macintosh-2.3/objc-object.o build/temp.darwin-6.1-Power Macintosh-2.3/super-call.o build/temp.darwin-6.1-Power Macintosh-2.3/selector.o build/temp.darwin-6.1-Power Macintosh-2.3/instance-var.o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonInt.o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonObject.o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonString.o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonArray.o build/temp.darwin-6.1-Power Macintosh-2.3/OC_PythonDictionary.o build/temp.darwin-6.1-Power Macintosh-2.3/register.o build/temp.darwin-6.1-Power Macintosh-2.3/pyobjc-api.o build/temp.darwin-6.1-Power Macintosh-2.3/module.o -o build/lib.darwin-6.1-Power Macintosh-2.3/objc/_objc.so -g -framework AppKit ld: Undefined symbols: _ObjC_InstallAllocHack Traceback (most recent call last): File "setup.py", line 155, in ? package_dir = { '':'Lib' } File "/usr/local/lib/python2.3/distutils/core.py", line 155, in setup raise SystemExit, "error: " + str(msg) SystemExit: error: command 'gcc' failed with exit status 1 steve -- |
From: Ronald O. <ous...@ci...> - 2002-11-14 06:08:15
|
I have made some other changes in my tree that are not yet good enough to be pushed into the repository. I therefore tried to be smart and checked in only the files that I changed while debugging your problem ... or so I though. It should build if you update now or you can just add Modules/objc/alloc_hack.m to the list of files in setup.py (just above module.m works fine for me). Ronald On Thursday, Nov 14, 2002, at 03:38 Europe/Amsterdam, Steven D. Arnold wrote: > On 11/13/02 4:16 PM, "Ronald Oussoren" <ous...@ci...> wrote: > >> I've reproduced the problem in some pure Objective-C code: >> #import <AppKit/AppKit.h> >> >> int main(void) >> { >> id nil_obj = nil; >> id pool = [[NSAutoreleasePool alloc] init]; >> >> id inv = [NSInvocation invocationWithMethodSignature: >> [NSMethodSignature signatureWithObjCTypes:"@@:"]]; >> >> [inv retain]; >> [inv setTarget:[NSTextView class]]; >> [inv setSelector:@selector(alloc)]; >> [inv invoke]; >> [inv setReturnValue:&nil_obj]; >> return 0; >> } >> >> This crashes when using NSTextView, and works when using NSTableView. >> >> This looks like a problem with Apple code. > > Interesting... > >> I've checked in a workaround that at least should allow >> NSTextView.alloc().init(). > > I updated from CVS and tried unsuccessfully to build. The session is > below: > > [thoth@paranoia:~/Source/pyobjc] > python setup.py clean > running clean > removing 'build/temp.darwin-6.1-Power Macintosh-2.3' (and everything > under > it) > [thoth@paranoia:~/Source/pyobjc] > sudo python setup.py install > running install > running build > running build_py > running build_ext > building 'objc._objc' extension > creating build/temp.darwin-6.1-Power Macintosh-2.3 > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/objc-class.m > -o build/temp.darwin-6.1-Power Macintosh-2.3/objc-class.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/instance-var.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/instance-var.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/selector.m -o > build/temp.darwin-6.1-Power Macintosh-2.3/selector.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > Modules/objc/selector.m: In function `objcsel_call': > Modules/objc/selector.m:457: warning: unused variable `obj' > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/module.m -o > build/temp.darwin-6.1-Power Macintosh-2.3/module.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > Modules/objc/module.m: In function `init_objc': > Modules/objc/module.m:233: warning: implicit declaration of function > `ObjC_RegisterStdStubs' > Modules/objc/module.m:247: warning: implicit declaration of function > `ObjC_InstallAllocHack' > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/class-list.m > -o build/temp.darwin-6.1-Power Macintosh-2.3/class-list.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/OC_PythonString.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonString.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/objc_support.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/objc_support.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/objc_util.m > -o build/temp.darwin-6.1-Power Macintosh-2.3/objc_util.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/OC_PythonObject.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonObject.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/informal-protocol.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/informal-protocol.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/OC_PythonDictionary.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonDictionary.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/OC_PythonInt.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonInt.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/OC_PythonArray.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonArray.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/pyobjc-api.m > -o build/temp.darwin-6.1-Power Macintosh-2.3/pyobjc-api.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/objc-object.m > -o build/temp.darwin-6.1-Power Macintosh-2.3/objc-object.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/super-call.m > -o build/temp.darwin-6.1-Power Macintosh-2.3/super-call.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/register.m -o > build/temp.darwin-6.1-Power Macintosh-2.3/register.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > Modules/objc/register.m:12: warning: function declaration isn't a > prototype > Modules/objc/register.m: In function `ObjC_RegisterStdStubs': > Modules/objc/register.m:56720: warning: passing arg 2 of pointer to > function > from incompatible pointer type > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/ObjCPointer.m > -o build/temp.darwin-6.1-Power Macintosh-2.3/ObjCPointer.o -g -O0 > -DOBJC_PARANOIA_MODE -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double > -no-cpp-precomp -I/usr/local/include/python2.3 -c > Modules/objc/class-builder.m -o build/temp.darwin-6.1-Power > Macintosh-2.3/class-builder.o -g -O0 -DOBJC_PARANOIA_MODE > -DPyOBJC_UNIQUE_PROXY -DMACOSX > gcc -bundle -bundle_loader /usr/local/bin/python > build/temp.darwin-6.1-Power > Macintosh-2.3/objc_util.o build/temp.darwin-6.1-Power > Macintosh-2.3/objc_support.o build/temp.darwin-6.1-Power > Macintosh-2.3/class-builder.o build/temp.darwin-6.1-Power > Macintosh-2.3/class-list.o build/temp.darwin-6.1-Power > Macintosh-2.3/ObjCPointer.o build/temp.darwin-6.1-Power > Macintosh-2.3/objc-class.o build/temp.darwin-6.1-Power > Macintosh-2.3/informal-protocol.o build/temp.darwin-6.1-Power > Macintosh-2.3/objc-object.o build/temp.darwin-6.1-Power > Macintosh-2.3/super-call.o build/temp.darwin-6.1-Power > Macintosh-2.3/selector.o build/temp.darwin-6.1-Power > Macintosh-2.3/instance-var.o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonInt.o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonObject.o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonString.o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonArray.o build/temp.darwin-6.1-Power > Macintosh-2.3/OC_PythonDictionary.o build/temp.darwin-6.1-Power > Macintosh-2.3/register.o build/temp.darwin-6.1-Power > Macintosh-2.3/pyobjc-api.o build/temp.darwin-6.1-Power > Macintosh-2.3/module.o -o build/lib.darwin-6.1-Power > Macintosh-2.3/objc/_objc.so -g -framework AppKit > ld: Undefined symbols: > _ObjC_InstallAllocHack > Traceback (most recent call last): > File "setup.py", line 155, in ? > package_dir = { '':'Lib' } > File "/usr/local/lib/python2.3/distutils/core.py", line 155, in setup > raise SystemExit, "error: " + str(msg) > SystemExit: error: command 'gcc' failed with exit status 1 > > steve > -- > > > |