Linux/Clang/Libobjc2 failure part 1 (gnu)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Linux/Clang/Libobjc2 failure part 1 (gnu)

Riccardo Mottola-5
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
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Linux/Clang/Libobjc2 failure part 1 (gnu)

David Chisnall-7
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 <[hidden email]> 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
> [hidden email]
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
>


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep