discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUStep compiled from source


From: Daniel Santos
Subject: Re: GNUStep compiled from source
Date: Tue, 19 Dec 2017 20:32:49 +0000

From seeing the stack trace I wrote in the previous email, it just hit me.
The executable is using an older version of gnu step (1.24) not the one I am building to /usr/local/lib

So I will remove the older version and check if the problem persists.




On 19 Dec 2017, at 19:09, Daniel Santos <address@hidden> wrote:

I forgot the mention that the call that triggers the code in the previous email is 

GNUMail_main.m line 35 :

pool = [[NSAutoreleasePool alloc] init];

(gdb) bt -5
#22 0x00007ffff4b606b6 in ?? () from /usr/lib/libgnustep-base.so.1.24
#23 0x00007ffff59990b6 in ?? () from /usr/lib/x86_64-linux-gnu/libobjc.so.4
#24 0x00007ffff5999117 in ?? () from /usr/lib/x86_64-linux-gnu/libobjc.so.4
#25 0x00007ffff599ad48 in objc_msg_lookup () from /usr/lib/x86_64-linux-gnu/libobjc.so.4
#26 0x000055555555558c in main (argc=1, argv=0x7fffffffe468, env=<optimized out>) at GNUMail_main.m:35
(gdb) 



On 19 Dec 2017, at 18:45, Daniel Santos <address@hidden> wrote:

Hello,

I checked the sources and Project Center defaults to calling NSWorkspace which in turn calls xdg to open files. So I will leave it at that.

As to the GNUmail error, I ran the program through GDB and the following call in NSThread is returning null :

line 619 : NSThread *t = pthread_getspecific(thread_object_key);

where the value for thread_object_key is 0 (as seen in gdb). Since this is the first thread that is created I guess this is normal, because no set was previously made

It then does :
  if (nil == thr)
    {
      NSValue *selfThread = NSValueCreateFromPthread(pthread_self());
...

which also returns null. This I think it should not return null
it then does :

  if (nil == thr)
    {
      GSRegisterCurrentThread();
      thr = pthread_getspecific(thread_object_key);
      if ((nil == defaultThread) && IS_MAIN_PTHREAD)
        {
          defaultThread = RETAIN(thr);
        }
    }
but unless it was set in some other place, the variable thread_object_key is still 0, so thr should still be null after this.
And then the assertion : 
assert(nil != thr && "No main thread”); is reached, and there’s the error I saw in the console.

I noticed that I can make GNUMail if i first run the GNUStep.sh script from the makefiles project, and then the error running it.
If I don’t run the GNUStep.sh script and do make on the command line I get :

This is gnustep-make 2.7.0. Type 'make print-gnustep-make-help' for help.
Running in gnustep-make version 2 strict mode.
/usr/local/share/GNUstep/Makefiles/config-noarch.make:121: *** GNUSTEP_USER_ROOT is obsolete.  Stop.

Regards

On 17 Dec 2017, at 17:38, Ivan Vučica <address@hidden> wrote:

1. You might mean xdg-open, though I doubt PC checks freedesktop.org's mime database before deciding how to open the file. It's probably based on the extension. I have not used PC in years, but doesn't it generate and overwrite GNUmakefile? I'd expect if you manage to get PC to open it, it might not be as useful.

I'd rather recommend that, if a project doesn't come with a PC project file, don't try to use PC unless upstream wants to support this.

2. Did you uninstall all of GNUstep? Did you remove /etc/GNUstep.conf? Other than that, there isn't enough information to make a guess, I think. How about a nice backtrace, from which you or someone else can work out where GNUMail died.

This is rather generic and just says something didn't create the main thread. How did you build GNUMail? Unfortunately, you may want to provide full steps from a blank machine to the state in which you are.


On Wed, Dec 13, 2017, 23:46 Daniel Santos <address@hidden> wrote:
Hello,

I have cloned the GNUStep repos on GitHub and built them and installed them on a Debian 9. Then I downloaded GNUMail 1.2.3 and installed its dependencies (Pantomime and AddressBook)
I ran Address Book and i seems to be running fine. I then built GNUMail and when trying to run it form the command line I am getting the following error :

        GNUMail: NSThread.m:646: GSCurrentThread: Assertion `nil != thr && "No main thread"' failed.

,wich lead me to download and build project center to look at the sources and try to debug it. Project center installed fine (the release version on the main site) and I then created a project in the directory of the GNUMail sources.

When I open the GNUmakefile the file opens in a external editor and not in Project center. I investigated it and it seems to be related to xdc-open. I didn’t get a chance to look at the GNUMail code yet.

I have two questions :
1 - Is it possible to make project center ignore xdc-open and open all the text files it knows in its own editor ?
2 - Any clue to why the error in GNUMail is happenning ?

Thanks
_______________________________________________
Discuss-gnustep mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnustep




reply via email to

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