[Top][All Lists]

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

GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc")

From: bertrand
Subject: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc")
Date: Wed, 21 Mar 2018 14:34:21 +0100

Le mercredi 21 mars 2018 à 07:29 +0000, David Chisnall a écrit :
> On 20 Mar 2018, at 21:30, bertrand <address@hidden> wrote:
> > 
> > Le mardi 20 mars 2018 à 10:46 +0000, David Chisnall a écrit :
> >> There are two issues.  The first is the warnings in the libobjc2 build.  
> >> These warnings are telling you that objc_msgSend and 
> >> imp_implementationWithBlock (neither of which can be implemented in C) are 
> >> not available on your platform.  This means that you can’t use blocks as 
> >> IMPs and you must use the older two-stage dispatch mechanism (which clang 
> >> will default to for architectures where libobjc2 does not implement the 
> >> objc_msgSend family).
> >> 
> >> I would be very happy to help anyone who wants to add PowerPC support to 
> >> these code paths, but I personally have a very low tolerance for PowerPC 
> >> assembly and no easy access to PowerPC hardware, so won’t be doing it 
> >> myself.
> >> 
> >> The later errors are coming from gas, which appears not to be supporting 
> >> some of the assembly that clang is generating.  You can try using 
> >> -integrated-as, which tells clang to generate object code directly rather 
> >> than via gas.  I don’t know what the status is for PowerPC, but a newer 
> >> version might help here (PowerPC in LLVM has had a lot of work from IBM 
> >> and Argone National Labs recently).
> >> 
> >> David
> >> 
> > 
> > I've set CC to 'clang -integrated-as' and CXX as well. Not a complete
> > success. But there is some progress. It fails at link times now in
> > ManyManySelectors.m because objc_msgSend is called . See below.
> > Thanks,
> It looks as if the library has built correctly, but some of the tests fail to 
> compile.  The easiest thing to do is run ccmake and disable building the 
> tests.
> David

Hi David and the list;

It would be usefull to run tests but I did this for now : I commented
this at the end of your CMakeLists.txt :

#if (TESTS)
#       enable_testing()
#       add_subdirectory(Test)
#endif (TESTS)

 I'm pretty sure there is a better way to do, but that's it : I've build
and installed libobjc2 on debian ppc. :-)

I've got a few more questions for a complete install of gnustep on
debian ppc.

My goal is to have a complete script to do this, adapted from the one
found on gnustep wiki found here :


Then I could contribute my result in it.

Here are my questions : 

1. Should I install libdispatch before or after libobjc2 ?  I've seen
this warning at the end libobjc2 install : 

failed to create symbolic link 'include/Block.h': No such file or
-- Symlinking: include/Block.h -> include/objc/blocks_runtime.h
failed to create symbolic link 'include/Block_private.h': No such file
or directory
-- Symlinking: include/Block_private.h -> include/objc/blocks_private.h

2. Should I really build and install libdispatch from Nick Hutchinson on
github, as the wiki says ? I tried to build it but it fails. Can I use
libdispatch from debian repo instead ?

3. If not can I install libobjc2 without libdispatch ?

4. The script on the wiki builds and install gnustep-make two times :
before and after libobjc2 ? Is it still correct ?

5. For gnustep-make build, is this line still mandatory ?
"git checkout `git rev-list -1 --first-parent --before=2017-04-06
master` # fixes segfault, should probably be looked at."

Has this bug in gnustep-make been fixed since 2017-04-06 ?

Hope someone will help here.


reply via email to

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