gnustep-dev
[Top][All Lists]
Advanced

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

Re: Newbie back again...


From: Fred Kiefer
Subject: Re: Newbie back again...
Date: Sun, 23 Apr 2017 00:05:39 +0200

Sorry, this is the point where I have to drop out. Perhaps David has time to 
take over? For this reason I send this mail again to the mailing list. That way 
you will get the best support available.

What you are getting is a mismatch between the available Objective-C runtimes. 
What I could recommend is to make sure that you have only one runtime at a time 
visible for your compilation. I would also suggest to make the compiler more 
explicit, by setting the CC variable. The mechanism to switch on the 
compilation messages didn’t work for you. I think you did forget the „s“ from 
„messages“, but you may also have to set the variable before the command, I 
really don’t remember. This also means you should have gotten the same messages 
during your last run, why didn’t you send them along?
With messages enabled we could see the actual compilation command and would be 
able to tell, which of your compilers get used and what the parameters are.

Fred




> Am 22.04.2017 um 21:54 schrieb Yan Le Guen <address@hidden>:
> 
> >Yes, GNUstep still seems to be alive.
> Well good news ;-)
> Not going to argue about sync & multiple differents instructions files...
> 
> >Now to your actual problems:
> 
> >> Am 22.04.2017 um 16:47 schrieb Yan Le Guen <address@hidden>:
> >>
> >> Me back again a bit desapointed... that's eventually explaining why so 
> >> long is this post...
> >>
> >> Here is attached:
> >> 1) the output file resulting after executing the following command line 
> >> after having cd $BUILD_DIR/core/make (version 2.7 from svn) :
> >> ./configure --enable-debug-by-default --with-layout=gnustep 
> >> --enable-objc-nonfragile-abi
> 
> >Did you also make and make install this package? And source the GNUstep.sh 
> >file after that? Sorry, but it is hard to guess what your did without any 
> >transcript.
> I of course did run:
> sudo -E make install
> . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
> and also update my ~/.bashrc on the fly...
> 
> >> 2) the output file resulting after executing the following command line 
> >> after having cd $BUILD_DIR/core/base (version 1.5 from svn):
> >> ./configure
> 
> >This output looks fine to me.
> well, this part of this outup point out some 'NO' that I do not really 
> understand:
> 
> checking whether objc really works... yes
> checking if the compiler supports -fconstant-string-class... yes
> checking if +load method is executed before main... yes
> checking for objc_sync_enter... yes
> checking for objc_setProperty... yes
>     checking for _Block_copy... no
> checking for non-fragile-abi support... yes
>     checking for objc_setUncaughtExceptionHandler() in runtime... no
>     checking for objc_set_unexpected() in runtime... no
>     checking for _objc_unexpected_exception in runtime... no
>     configure: Disabling native Objective-C exceptions because the ObjC 
> runtime
>     configure: has no way to set an uncaught exception handler.  Please 
> install
>     configure: a recent Objective-C runtime if you want to use them.
>     checking whether to enable native Objective-C exceptions... no
> checking for objc_sync_enter... (cached) yes
> checking for thread-safe +initialize in runtime... yes
> 
> 
> 
> >> 3) the output file resulting after executing the following command line 
> >> after having cd $BUILD_DIR/core/base :
> >> ./make -j2
> 
> >Now this is the bit that I really don’t understand and I can see why this is 
> >frustrating for you. Something goes wrong and there is no telling what or 
> >why.
> >GNUstep make is filtering off most of the output. You need to switch the 
> >display of compile messages on by calling make with the variable messages 
> >set to yes. I think this >gets done with this line, but I currently cannot 
> >test it.
> 
> >„make messages=yes“
> 
> OK, using this make command:
> 
> make -j2 message=yes | tee GUNstep-Base_make_outupt.txt
> 
> return this:
> This is gnustep-make 2.7.0. Type 'make print-gnustep-make-help' for help.
> Running in gnustep-make version 2 strict mode.
> Making all in Source ...
> rm -f dynamic-load.h
> cp simple-load.h dynamic-load.h
> /usr/GNUstep/System/Library/Makefiles/mkinstalldirs .
> cp ../Headers/GNUstepBase/config.h .
> touch ./config.h
> /usr/GNUstep/System/Library/Makefiles/mkinstalldirs ./GNUstepBase
> cp ../Headers/GNUstepBase/GSConfig.h ./GNUstepBase
> touch ./GNUstepBase/GSConfig.h
> Making all in Additions ...
> Making all for subproject Additions...
>  Compiling file GSTypeEncoding.c ...
>  Compiling file GSObjCRuntime.m ...
> In file included from GSObjCRuntime.m:39:
> ../../Headers/Foundation/NSException.h:44:2: error: "There are two separate 
> exception handling mechanisms
>       available ... one based on the standard setjmp() function (which does 
> not require special compiler
>       support), and one 'native' version where the compiler manages the 
> exception handling. If you try to use
>       both in the same executable, exception handlers will not work... which 
> can be pretty disastrous. This
>       error is telling you that the gnustep-base library was built using one 
> form of exception handling, but
>       that the gnustep-make package you are using is building code to use the 
> other form of exception handling
>       ... with the consequence that exception handling would be broken in the 
> program you are building. So,
>       somehow your gnustep-base and gnustep-make package are incompatible, 
> and you need to replace one of them
>       with a version configured to match the other."
> #error "There are two separate exception handling mechanisms available ... 
> one based on the standard set...
>  ^
> ../../Headers/Foundation/NSException.h:48:2: error: "gnustep-base is 
> configured to use 'traditional' exceptions,
>       but you are building for 'native' exceptions."
> #error  "gnustep-base is configured to use 'traditional' exceptions, but you 
> are building for 'native' e...
>  ^
>  Compiling file GCObject.m ...
> 2 errors generated.
> make[4]: *** [obj/Additions.obj/GSObjCRuntime.m.o] Error 1
> make[4]: *** Attente des tâches non terminées....
> /usr/GNUstep/System/Library/Makefiles/rules.make:479: recipe for target 
> 'obj/Additions.obj/GSObjCRuntime.m.o' failed
> In file included from GCObject.m:35:
> In file included from ../../Headers/Foundation/NSThread.h:35:
> ../../Headers/Foundation/NSException.h:44:2: error: "There are two separate 
> exception handling mechanisms
>       available ... one based on the standard setjmp() function (which does 
> not require special compiler
>       support), and one 'native' version where the compiler manages the 
> exception handling. If you try to use
>       both in the same executable, exception handlers will not work... which 
> can be pretty disastrous. This
>       error is telling you that the gnustep-base library was built using one 
> form of exception handling, but
>       that the gnustep-make package you are using is building code to use the 
> other form of exception handling
>       ... with the consequence that exception handling would be broken in the 
> program you are building. So,
>       somehow your gnustep-base and gnustep-make package are incompatible, 
> and you need to replace one of them
>       with a version configured to match the other."
> #error "There are two separate exception handling mechanisms available ... 
> one based on the standard set...
>  ^
> ../../Headers/Foundation/NSException.h:48:2: error: "gnustep-base is 
> configured to use 'traditional' exceptions,
>       but you are building for 'native' exceptions."
> #error  "gnustep-base is configured to use 'traditional' exceptions, but you 
> are building for 'native' e...
>  ^
> 2 errors generated.
> make[4]: *** [obj/Additions.obj/GCObject.m.o] Error 1
> /usr/GNUstep/System/Library/Makefiles/rules.make:479: recipe for target 
> 'obj/Additions.obj/GCObject.m.o' failed
> make[3]: *** [internal-subproject-all_] Error 2
> /usr/GNUstep/System/Library/Makefiles/Instance/subproject.make:45: recipe for 
> target 'internal-subproject-all_' failed
> make[2]: *** [Additions.all.subproject.variables] Error 2
> /usr/GNUstep/System/Library/Makefiles/Master/rules.make:297: recipe for 
> target 'Additions.all.subproject.variables' failed
> make[1]: *** [internal-all] Error 2
> /usr/GNUstep/System/Library/Makefiles/Master/serial-subdirectories.make:53: 
> recipe for target 'internal-all' failed
> make: *** [internal-all] Error 2
> /usr/GNUstep/System/Library/Makefiles/Master/serial-subdirectories.make:53: 
> recipe for target 'internal-all' failed
> 
> I've compile  and install libobjc2-1.8.x from github/gnustep
> Done the same with libdispatch I've got from the same git repo.
> Done svn co (2 hours ago) for all other modules (base, back, documentation, 
> gui, make & scripts)
> 
> I've llvm/clang 3.9 installed, also gcc-4.9 is installed both seems correctly 
> configured and usable since I've been using them for over a year on other 
> projects with no issues...
> 
> Hope this helps
> Yan
> 
> 2017-04-22 18:16 GMT+02:00 Fred Kiefer <address@hidden>:
> Hi,
> 
> I surely won’t be able to fix all your problem but will try my best to 
> understand what you are doing.
> Let’s start from the end:
> 
> > My questions are:
> > Is GNUstep project still alive?
> 
> Yes, GNUstep still seems to be alive. There just was a shared release of 
> make, base, gun and back just a few days ago. You find this from the link on 
> our homepage (I must admit I just edited the instruction for the backend, as 
> it was correct, but the comment was out of date)
> 
> http://wwwmain.gnustep.org/resources/downloads.php?site=ftp%3A%2F%2Fftp.gnustep.org%2Fpub%2Fgnustep%2F
> 
> > Where is the "official repo" from where to get some recently 
> > updated/synchronized material to successfully build (for eventually help to 
> > debug) the GNUstep Libraries?
> 
> 
> The "official repo“ i still and has been for many years the SVN on
> 
> http://svn.gna.org/viewcvs/gnustep/
> 
> As for installation instruction I would use this from the wiki:
> 
> http://wiki.gnustep.org/index.php/GNUstep_SVN_Installation_Guide
> 
> 
> > I've also noticed that there're multiple "official" INSTALL/BUILD 
> > instructions files but none none seems to be able acheive its goals at 
> > least for me (the real newbie) on my Debian 8 based system (clang3.9/llvm 
> > 3.9, libobjc2 & libdispatch other required packages also being installed).
> 
> There is nothing bad about having multiple installation instructions. People 
> prefer different tools and therefor may need different instructions. I for 
> example, don’t use clang and could not be able to help you with that.
> 
> > After only 3 attempts at building GNUstep from sources, I eventually notice 
> > that there're several ways to download the
> > "official" current GNUstep packages/modules whatever we call it: at least 
> > svn and git.
> > It seems also that these two spots are not really synchronized, isn't it?
> 
> I think for a beginner it would be best not to start of with code that has 
> been officially released. With the current source code there may always be 
> tiny issues, but at the moment release and SVN are almost the same.
> The GIT repository is in synch most of the time, but that synchronisation 
> process may from time to time have problems. We will announce it, when we 
> completely switch over to GIT.
> 
> Now to your actual problems:
> 
> > Am 22.04.2017 um 16:47 schrieb Yan Le Guen <address@hidden>:
> >
> > Me back again a bit desapointed... that's eventually explaining why so long 
> > is this post...
> >
> > Here is attached:
> > 1) the output file resulting after executing the following command line 
> > after having cd $BUILD_DIR/core/make (version 2.7 from svn) :
> > ./configure --enable-debug-by-default --with-layout=gnustep 
> > --enable-objc-nonfragile-abi
> 
> Did you also make and make install this package? And source the GNUstep.sh 
> file after that? Sorry, but it is hard to guess what your did without any 
> transcript.
> 
> > 2) the output file resulting after executing the following command line 
> > after having cd $BUILD_DIR/core/base (version 1.5 from svn):
> > ./configure
> 
> This output looks fine to me.
> 
> > 3) the output file resulting after executing the following command line 
> > after having cd $BUILD_DIR/core/base :
> > ./make -j2
> 
> Now this is the bit that I really don’t understand and I can see why this is 
> frustrating for you. Something goes wrong and there is no telling what or why.
> GNUstep make is filtering off most of the output. You need to switch the 
> display of compile messages on by calling make with the variable messages set 
> to yes. I think this gets done with this line, but I currently cannot test it.
> 
> „make messages=yes“
> 
> This should display the actual line that goes wrong, most likely clang trying 
> to compile its first Objective-C file. Perhaps your system is a bit confused 
> whether it should be using gcc or clang. But this is only guessing.
> 
> Hope this helps,
> Fred
> 
> 
> 




reply via email to

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