[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc")
From: |
David Chisnall |
Subject: |
Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc") |
Date: |
Wed, 21 Mar 2018 13:43:14 +0000 |
> On 21 Mar 2018, at 13:34, bertrand <bertrand.dekoninck@gmail.com> wrote:
>
> Le mercredi 21 mars 2018 à 07:29 +0000, David Chisnall a écrit :
>> On 20 Mar 2018, at 21:30, bertrand <bertrand.dekoninck@gmail.com> 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,
Yes, run ‘ccmake .’ and toggle the enable tests line.
> but that's it : I've build
> and installed libobjc2 on debian ppc. :-)
Yay!
> 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 :
>
> http://wiki.gnustep.org/index.php/GNUstep_under_Ubuntu_Linux
>
>
> 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 :
Before, ideally.
> failed to create symbolic link 'include/Block.h': No such file or
> directory
> -- 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
That’s surprising. Do you already have an include/Block.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 ?
Not sure about this. I use the one from FreeBSD packages and it appears to
work...
> 3. If not can I install libobjc2 without libdispatch ?
Yes, you can. I’m not sure if any of the live code paths actually use
libdispatch anymore - I’ll aim to remove that dependency at some point.
> 4. The script on the wiki builds and install gnustep-make two times :
> before and after libobjc2 ? Is it still correct ?
No, that’s definitely wrong. It dates back to when I tried to use GNUstep Make
to build libobjc2, but that led to circular dependencies.
> 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
I can’t speak for Ubuntu, but that definitely isn’t needed on FreeBSD.
David
- libobjc2 and powerpc., bertrand, 2018/03/19
- Re: libobjc2 and powerpc., Fred Kiefer, 2018/03/19
- Re: libobjc2 and powerpc., David Chisnall, 2018/03/20
- Re: libobjc2 and powerpc., bertrand, 2018/03/20
- Re: libobjc2 and powerpc., David Chisnall, 2018/03/21
- GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), bertrand, 2018/03/21
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"),
David Chisnall <=
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), bertrand, 2018/03/21
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), David Chisnall, 2018/03/21
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), bertrand, 2018/03/22
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), Wolfgang Lux, 2018/03/22
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), Richard Frith-Macdonald, 2018/03/22
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), bertrand, 2018/03/22
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), Richard Frith-Macdonald, 2018/03/22
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), bertrand, 2018/03/22
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), Richard Frith-Macdonald, 2018/03/22
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), bertrand, 2018/03/22