bug-gnustep
[Top][All Lists]
Advanced

[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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]