|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
[bug #23709] NSProxy test fails on Ubuntu with ffcallURL: <http://savannah.gnu.org/bugs/?23709> Summary: NSProxy test fails on Ubuntu with ffcall Project: GNUstep Submitted by: FredKiefer Submitted on: Mittwoch 25.06.2008 um 23:20 Category: Base/Foundation Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any _______________________________________________________ Details: I am using Ubuntu 8.04 (32-bit) in a VMWareFusion environment. I jsut update to this release and also updated GNUstep to latest SVN. Now an application that use to work give segmentation faults for both ffi and ffcall. When trying to trac down the problem for ffcall further I ran the testsuite for base and got the following problem there (This works fine on my desktop computer): ubuntu@ubuntu:/usr/src/gnustep/modules/tests/testsuite/base/NSProxy$ gdb obj/test01 GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu"... (gdb) r Starting program: /usr/src/gnustep/modules/tests/testsuite/base/NSProxy/obj/test01 [Thread debugging using libthread_db enabled] [New Thread 0xb77bb6b0 (LWP 895)] PASS: Proxy signed char PASS: Proxy unsigned char PASS: Proxy signed short PASS: Proxy unsigned short PASS: Proxy singed int PASS: Proxy unsigned int PASS: Proxy signed long PASS: Proxy unsigned long PASS: Proxy signed long long PASS: Proxy unsigned long long PASS: Proxy float PASS: Proxy float PASS: Proxy id PASS: Proxy enum PASS: Proxy NSRange PASS: Proxy NSPoint PASS: Proxy NSDecimal FAIL: Proxy GSFinePoint Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb77bb6b0 (LWP 895)] 0xb7c4c0f8 in mframe_next_arg (typePtr=0x0, info=0x809f1b0, outTypes=0x809f1f9 "") at mframe.m:229 229 switch (*typePtr) (gdb) bt #0 0xb7c4c0f8 in mframe_next_arg (typePtr=0x0, info=0x809f1b0, outTypes=0x809f1f9 "") at mframe.m:229 #1 0xb7d3e06e in -[NSMethodSignature(GNUstep) methodInfo] (self=0x809f108, _cmd=0xb7f86658) at NSMethodSignature.m:189 #2 0xb7e00b08 in -[GSFFCallInvocation initWithMethodSignature:] ( self=0x809f170, _cmd=0xb7f866a8, aSignature=0x809f108) at GSFFCallInvocation.m:547 #3 0xb7e0270a in GSInvocationCallback (callback_data=0x80710b8, args=0xbfe52c94) at GSFFCallInvocation.m:957 #4 0xb785d6d5 in __vacall_r () from /usr/lib/libcallback.so.0 #5 0x080710b8 in ?? () #6 0xb7a3f450 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6 #7 0x08048ba1 in _start () The config.log for ffi and ffcall reads like this: configure:16312: checking ffi.h presence configure:16327: gcc -E -I/usr/GNUstep/System/Library/Headers conftest.c configure:16333: $? = 0 configure:16347: result: yes configure:16375: checking for ffi.h configure:16382: result: yes configure:16408: checking callback.h usability configure:16425: gcc -c -g -O2 -I/usr/GNUstep/System/Library/Headers conftest.c >&5 configure:16431: $? = 0 configure:16445: result: yes configure:16449: checking callback.h presence configure:16464: gcc -E -I/usr/GNUstep/System/Library/Headers conftest.c configure:16470: $? = 0 configure:16484: result: yes configure:16512: checking for callback.h configure:16520: result: yes configure:16549: checking for forwarding callback in runtime configure:16560: gcc -c -g -O2 -I/usr/GNUstep/System/Library/Headers -fgnu-runtime -x objective-c conftest.c >&5 In file included from conftest.c:1: ./config/config.forward2.m: In function 'main': ./config/config.forward2.m:5: error: '__objc_msg_forward2' undeclared (first use in this function) ./config/config.forward2.m:5: error: (Each undeclared identifier is reported only once ./config/config.forward2.m:5: error: for each function it appears in.) configure:16566: $? = 1 configure: failed program was: | #include "./config/config.forward2.m" configure:16596: gcc -c -g -O2 -I/usr/GNUstep/System/Library/Headers -fgnu-runtime -x objective-c conftest.c >&5 configure:16602: $? = 0 configure:16617: result: yes configure:16625: checking FFI library usage configure:16716: gcc -o conftest -g -O2 -I/usr/GNUstep/System/Library/Headers -L/usr/GNUstep/System/Library/Libraries conftest.c -lcallback -lavcall -lnsl -ldl -lz >&5 configure:16722: $? = 0 configure:16739: result: ffcall configure:16751: checking if ffcall trampolines work configure:16765: gcc -o conftest -g -O2 -I/usr/GNUstep/System/Library/Headers -L/usr/GNUstep/System/Library/Libraries conftest.c -lcallback -lavcall -lnsl -ldl -lz >&5 configure:16768: $? = 0 configure:16774: ./conftest configure:16777: $? = 0 configure:16792: result: yes And to make it complete. My original error was: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb713a6c0 (LWP 27073)] 0xb77965c4 in objc_msg_lookup () from /usr/lib/libobjc.so.2 (gdb) bt #0 0xb77965c4 in objc_msg_lookup () from /usr/lib/libobjc.so.2 #1 0xb79ec040 in GSInvocationCallback (callback_data=0xb7b87330, args=0xbff89694) at GSFFCallInvocation.m:1050 #2 0xb72bb6d5 in __vacall_r () from /usr/lib/libcallback.so.0 #3 0xb7b87330 in returnTypeInfo () from /usr/GNUstep/System/Library/Libraries/libgnustep-base.so.1.17 #4 0xbff89694 in ?? () #5 0x0805c376 in -[MainController awakeFromNib] (self=0x8562e28, _cmd=0xb7f3e508) at Source/MainController.m:199 _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?23709> _______________________________________________ Nachricht geschickt von/durch Savannah http://savannah.gnu.org/ _______________________________________________ Bug-gnustep mailing list Bug-gnustep@... http://lists.gnu.org/mailman/listinfo/bug-gnustep |
|
|
[bug #23709] NSProxy test fails on Ubuntu with ffcallFollow-up Comment #1, bug #23709 (project gnustep): I added these tests just recently, with the main intention to compare ffcall with libffi. These tests to test boarder line yet to my understanding valid cases. The attempt to pass structs as parameters: GSFinePoint: typedef struct _GSFinePoint GSFinePoint; struct _GSFinePoint { double x; double y; }; GSFinePoint typedef struct _GSBitField GSBitField; struct _GSBitField { unsigned int first:1; unsigned int unused:1; unsigned int second:1; }; GSBitField I'm not sure if those cases ever worked. Most of the time such structs are passed by reference and not by value. Yet I do believe that a correctly working implementation should pass. But I can verify that when I started testing them on different platforms that the last test segfaulted on the 64-bit case. IIRC, this failure is the result of incorrect/missing layout information provided by the runtime which we are not ready to handle. I'm not sure if it may have been correct with very old versions of the GNU runtime before the new ObjC features were added and the encoding signatures of GCC changed. IOW, we have real bugs here but they should not be considered regressions (in GNUstep) per se. If you say that your Ubuntu used to work with ffcall and now it doesn't, then that is a regression. Yet these tests are not necessarily related. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?23709> _______________________________________________ Nachricht geschickt von/durch Savannah http://savannah.gnu.org/ _______________________________________________ Bug-gnustep mailing list Bug-gnustep@... http://lists.gnu.org/mailman/listinfo/bug-gnustep |
|
|
[bug #23709] NSProxy test fails on Ubuntu with ffcallFollow-up Comment #2, bug #23709 (project gnustep): I did some more debugging of where the problem in the original code comes from. It happens when an NSInvovation started as a separate thread tries to return a boolean value. This works sometimes (mostly the first time) but fails later. In my last tests this failed just the same for ffi and ffcall, but then I am not that sure how much my NSLog() calls interact with the invocation handling. For example if the issue was caused by the usage of uninitialized memory then this calls could make a difference. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?23709> _______________________________________________ Nachricht geschickt von/durch Savannah http://savannah.gnu.org/ _______________________________________________ Bug-gnustep mailing list Bug-gnustep@... http://lists.gnu.org/mailman/listinfo/bug-gnustep |
|
|
[bug #23709] NSProxy test fails on Ubuntu with ffcallUpdate of bug #23709 (project gnustep): Open/Closed: Open => In Test _______________________________________________________ Follow-up Comment #3: I think the recent changes to ffi should have fixed this ... please could you retest. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?23709> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-gnustep mailing list Bug-gnustep@... http://lists.gnu.org/mailman/listinfo/bug-gnustep |
| Free embeddable forum powered by Nabble | Forum Help |