[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc")
From: |
bertrand |
Subject: |
Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc") |
Date: |
Wed, 21 Mar 2018 15:06:30 +0100 |
Le mercredi 21 mars 2018 à 13:43 +0000, David Chisnall a écrit :
> > 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.
>
I've tried it. I could put this in my gnustep_install.sh script but the
user will have to manually toggle off the tests. A commandline line
would be better.
Anyway, better than totally avoiding tests, I should try to see which
build and which don't, to adapt them for ppc.
> > 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?
Yes it's there : /usr/include/Block.h. Block_private.h also.
>
> > 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...
Then I will try with it.
>
> > 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.
>
Then should I build libobjc2 before of after gnustep-make ?
> > 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
>
Thanks.
Bertrand
>
- 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, 2018/03/21
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"),
bertrand <=
- 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
- Re: GNUstep + libobjc2 and powerpc ( was "libobjc2 on powerpc"), Josh Freeman, 2018/03/22