[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #41586] Invocation forwarding doesn't work on my system
From: |
Sergey Golovin |
Subject: |
[bug #41586] Invocation forwarding doesn't work on my system |
Date: |
Fri, 14 Feb 2014 11:14:19 +0000 |
User-agent: |
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0 |
Follow-up Comment #3, bug #41586 (project gnustep):
> So, possibly your problem is specific to gcc-4.6.3 and the objc
> library you are using, or perhaps something else … you might
> get an idea by looking at the config.log output from when you
> configured the base library, or perhaps some hint from running
> the testsuite?
I have attached the config.log. Here are excerpts with errors
from tests.log:
..........
Dashed hope: basic.m:53 ... working callStackSymbols ... if this has
failed it is probably due to a lack of support for objective-c method names
(local symbols) in the backtrace_symbols() function of your libc. If so, you
might lobby your operating system provider for a fix.
..........
Testing test03.m...
Building base/NSObject/test03.m
make debug=yes test03
This is gnustep-make 2.6.6. Type 'make print-gnustep-make-help' for help.
Making all for test_tool test03...
Compiling file test03.m ...
test03.m: In function ‘main’:
test03.m:39:3: warning: implicit declaration of function
‘objc_setAssociatedObject’ [-Wimplicit-function-declaration]
test03.m:40:2: error: ‘OBJC_ASSOCIATION_RETAIN’ undeclared (first use in
this function)
test03.m:40:2: note: each undeclared identifier is reported only once for each
function it appears in
make[3]: *** [obj/test03.obj/test03.m.o] Error 1
make[2]: *** [internal-tool-all_] Error 2
make[1]: *** [test03.all.test-tool.variables] Error 2
make: *** [test03] Error 2
Failed build:
...........
> You could run your test under gdb, set a breakpoint in
> GSFFIInvocationCallback, and step through to try to find out
> why the type information can't be determined (it does look
> likely to be compiler, runtime, or ffi library related).
OK. I did so. That method begins with:
obj = *(id *)args[0];
selector = *(SEL *)args[1];
after it is passed I issued the following gdb commands:
(gdb) p selector
$19 = (SEL) 0x602400
(gdb) p sel_getName(selector)
$20 = -144802851
(gdb) po NSStringFromSelector(selector)
name
(have no idea why there is the difference)
eventually the method calls the
SEL typed_sel = gs_find_best_typed_sel (selector);
which is the following code:
#elif defined (__GNU_LIBOBJC__)
{
/* The sel_getTypedSelector() function returns a typed
selector if there is only one, nul if there are zero
or more than one. */
=>return sel_getTypedSelector(sel_getName(sel));
}
this last call return 0 (no surprise if the sel_getName(sel)
returns an undefined value (see above)) and the exception is
triggered.
(file #30549, file #30550)
_______________________________________________________
Additional Item Attachment:
File name: tests.sum Size:692 KB
File name: config.log Size:505 KB
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?41586>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/