[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Linux/Clang/Libobjc2 failure part 1 (gnu)
From: |
David Chisnall |
Subject: |
Re: Linux/Clang/Libobjc2 failure part 1 (gnu) |
Date: |
Sun, 24 Jun 2018 10:13:26 +0100 |
Hi Riccardo,
I think I know the reason for this. The old GCC ABI didn’t provide a mechanism
for registering protocols with the runtime and this may mean that we’re not
registering their selectors (the GNUstep v1 ABI registers them by adding an
ugly hack of adding every protocol as a category on a placeholder class).
Can you try a simple test calling protocol_getMethodDescription() on a protocol
that is declared and then referenced with an @protocol() definition, but is not
adopted by any class? If this crashes for you, please can attach the test case
to a PR on GitHub?
David
> On 22 Jun 2018, at 14:13, Riccardo Mottola <riccardo.mottola@libero.it> wrote:
>
> Hi All,
>
> on a fairly reliable Linunx system, configured standard (no special options
> to base) no GUI app is capable to start. However simple tools like "plparse"
> runs.
> This situation happened since I updated libobjc2 to latest and all the rest
> of GNUstep too.
>
> This configuration should use the "gnu" runtime mode, if I understand
> correctly.
>
> I am not sure if the issue is in libobjc2 itself, where the crash happens or
> not.
> A similar configuration on FreeBSD; I have issues too, but different.
>
> Does the stacktrace tell you something useful?how to get more information?
>
> Thanks
>
> Riccardo
>
>
> #0 __strcmp_ia32 () at ../sysdeps/i386/i686/multiarch/../strcmp.S:33
> #1 0xb71018c0 in string_compare ()
> from /System/Library/Libraries/libobjc.so.4.6
> #2 0xb71017bc in sel_isEqual () from /System/Library/Libraries/libobjc.so.4.6
> #3 0xb70fc08d in get_method_description ()
> from /System/Library/Libraries/libobjc.so.4.6
> #4 0xb70fbf8f in protocol_getMethodDescription ()
> from /System/Library/Libraries/libobjc.so.4.6
> #5 0xb75b0c93 in GSProtocolGetMethodDescriptionRecursive (
> aProtocol=0xb77bda5c <.objc_protocol.103>,
> aSel=0xb77be00c <.objc_selector_list+64>, isRequired=1 '\001',
> isInstance=1 '\001') at GSObjCRuntime.m:827
> #6 0xb7388c98 in -[NSDistantObject methodSignatureForSelector:] (
> self=0x8705214, _cmd=0xb78010f4 <.objc_selector_list+184>,
> aSelector=0xb77be00c <.objc_selector_list+64>) at NSDistantObject.m:727
> #7 0xb75ace4a in GSFFIInvocationCallback (cif=0x86fec70, retp=0xbfffe750,
> args=0xbfffe6e0, user=0x86f60d4) at GSFFIInvocation.m:538
> #8 0xb4a3ca75 in ?? () from /usr/lib/libffi.so.6
> #9 0xb4a3ce26 in ?? () from /usr/lib/libffi.so.6
> #10 0xb738f8eb in -[NSDistributedNotificationCenter(Private) _connect] (
> self=0x86cbd94, _cmd=0xb77be074 <.objc_selector_list+168>)
> at NSDistributedNotificationCenter.m:781
> #11 0xb738d211 in -[NSDistributedNotificationCenter
> addObserver:selector:name:object:suspensionBehavior:] (self=0x86cbd94,
> _cmd=0xb77be0bc <.objc_selector_list+240>, anObserver=0x86cba74,
> aSelector=0xb7f59998 <.objc_selector_list+824>, notificationName=0x0,
> anObject=0xb7f59378 <.objc_str.437>, suspensionBehavior=2)
> at NSDistributedNotificationCenter.m:341
> #12 0xb738cd7e in -[NSDistributedNotificationCenter
> addObserver:selector:name:object:] (self=0x86cbd94, _cmd=0xb7f59958
> <.objc_selector_list+760>,
> anObserver=0x86cba74, aSelector=0xb7f59998 <.objc_selector_list+824>,
> notificationName=0x0, anObject=0xb7f59378 <.objc_str.437>)
> at NSDistributedNotificationCenter.m:266
> #13 0xb7c470c3 in -[_GSWorkspaceCenter init] (self=0x86cba74,
> _cmd=<optimized out>) at NSWorkspace.m:335
> #14 0xb7437e38 in +[NSObject new] (self=0x81343c0,
> _cmd=0xb7f59918 <.objc_selector_list+696>) at NSObject.m:1237
> #15 0xb7c48c95 in -[NSWorkspace init] (self=<optimized out>,
> _cmd=<optimized out>) at NSWorkspace.m:738
> #16 0xb7c48a99 in +[NSWorkspace sharedWorkspace] (self=<optimized out>,
> _cmd=<optimized out>) at NSWorkspace.m:686
> #17 0xb7b16fda in -[NSDocumentController init] (self=<optimized out>,
> _cmd=<optimized out>) at NSDocumentController.m:284
> #18 0xb7b16ec6 in +[NSDocumentController sharedDocumentController] (
> self=<optimized out>, _cmd=<optimized out>) at NSDocumentController.m:263
> #19 0xb7aaa62e in -[NSApplication(Private)
> _targetForAction:keyWindow:mainWindow:] (self=<optimized out>,
> _cmd=<optimized out>, aSelector=<optimized out>,
> keyWindow=<optimized out>, mainWindow=<optimized out>)
> at NSApplication.m:4025
> #20 0xb7aa619b in -[NSApplication targetForAction:] (self=0x8384394,
> _cmd=<optimized out>, aSelector=<optimized out>) at NSApplication.m:2330
> #21 0xb7aa60fd in -[NSApplication targetForAction:to:from:] (
> self=<optimized out>, _cmd=<optimized out>, theAction=<optimized out>,
> theTarget=<optimized out>, sender=0x85bb0a4) at NSApplication.m:2301
> #22 0xb7b676a4 in -[NSMenu _autoenableItem:] (self=0x8384394,
> _cmd=<optimized out>, item=<optimized out>) at NSMenu.m:1175
> #23 0xb7b67a40 in -[NSMenu update] (self=<optimized out>, _cmd=<optimized
> out>)
> at NSMenu.m:1253
> #24 0xb7b66a1b in -[NSMenu itemChanged:] (self=<optimized out>,
> _cmd=<optimized out>, anObject=<optimized out>) at NSMenu.m:871
> #25 0xb7b73281 in -[NSMenuItem setAction:] (self=0x85bb0a4,
> _cmd=<optimized out>, aSelector=<optimized out>) at NSMenuItem.m:483
> #26 0xb7b79012 in -[NSNibControlConnector establishConnection] (
> self=<optimized out>, _cmd=<optimized out>) at NSNibConnector.m:190
> #27 0xb7c7f220 in -[GSNibContainer awakeWithContext:] (self=<optimized out>,
> _cmd=<optimized out>, context=<optimized out>) at GSGormLoading.m:170
> #28 0xb7cb6e44 in -[GSGormLoader loadModelData:externalNameTable:withZone:] (
> self=0x843e734, _cmd=0xb7efbfb4 <.objc_selector_list+8>,
> data=<optimized out>, context=0x40363376, zone=<optimized out>)
>
>
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
>