By no means do I claim to have done things the right way, but it seems that
work that I did plus work based on Emmanuel's patches did things right for
Android.

It may be worth looking through my commits around April and May 2013 into
-make and -base. Then look at:
  http://bitbucket.org/ivucica/gnustep-android/

I never completed the work, but I tried it Thursday and:
- nonupstreamed patches failed to apply due to changes in GNUstep
- there was a linker error, IIRC with sysinfo(), probably because Bionic
doesn't expose that.

There have been some warnings and errors from configure scripts mentioning
that I am incorrectly trying to cross-compile but I didn't look into that
closely yet.

IIRC there wasn't much need for deep 'hacking' of the build process itself
(otherwise I wouldn't try to upstream it; Emmanuel's patches tried to hack
a lot of things which is why they could not be applied -- they'd break
other platforms).
On 29 Dec 2013 16:06, "David Chisnall" <thera...@sucs.org> wrote:

> I managed to get -base cross-compiled, at least.  I had to hack the
> GNUmakefile, because even when I tell it that it's cross compiling for a
> modern runtime, it correctly defines the OBJC2RUNTIME thing in the features
> header, but not in the GNUmakefile.
>
> I couldn't manage to persuade our autoconf stuff to pass the required
> [OJB]C[XX]FLAGS when trying to build things, so I had to make little
> wrapper scripts that invoked clang[++] with the required arguments (-B,
> --sysroot, -target, and so on).
>
> Note that poor cross-build support makes supporting embedded platforms
> difficult, and embedded these days can easily mean 1GHz CPU and 256MB of
> RAM.  Unfortunately, this appears to be part of the legacy of autotools /
> GNUstep Make.
>
> David
>
> On 29 Dec 2013, at 15:20, Fred Kiefer <fredkie...@gmx.de> wrote:
>
> > On 29.12.2013 13:56, David Chisnall wrote:
> >> Hello everyone,
> >>
> >> I'm trying to cross-compile GNUstep, and since I'm sure I'm not the
> first person to try this, I wondered if anyone had written up how to do it?
>  I am trying to build from FreeBSD/amd64 for FreeBSD/MIPS64.  I have a
> cross-compiler and sysroot setup.  Building the runtime was trivial - just
> point cmake at the cross-compile toolchain file - what do I need to do for
> Make / base so that:
> >>
> >> - It knows that I don't actually want -make on the target platform.
> >> - I get an installed version somewhere on my local machine that I can
> copy to a different location on the remote
> >> - All of the correct cross-compile flags are passed to the compiler
> >>
> >> I think Ivan has been through all of this recently for Android?
> >
> > Hi David,
> >
> > you probably know about our wiki page on this subject
> > http://wiki.gnustep.org/index.php/Cross_Compiling
> > that isn't all that helpful.
> >
> > I tried to cross compile GNUstep myself years ago but failed in that
> > attempt. The two biggest issues I remember where the configure scripts
> > and GNUstep make. We rely heavily on our configure scripts to figure out
> > how GNUstep core components should be compiled. The best thing you can
> > do is copy the configure scripts over to the target system and try to
> > run them there. Of course this requires all the development tools to be
> > installed there as well. You then have the resulting configuration files
> > (different ones for each component when I remember correctly) that you
> > copy back to the cross-compilation environment. You could of course rely
> > on autoconf to sort things out for you, but it didn't work for me or try
> > to guess everything yourself :-(
> >
> > The problem with GNUstep make as I remember it was that it had a
> > somewhat different view of the host/build/target triple than any other
> > cross compilation system I know of. As a result helper tools get
> > compiled for the target environment but will get run during the build.
> >
> > The best instructions I can find at the moment are in the INSTALL file
> > of make.
> >
> > Hope this helps,
> > Fred
> >
> >
> >
> > _______________________________________________
> > Gnustep-dev mailing list
> > Gnustep-dev@gnu.org
> > https://lists.gnu.org/mailman/listinfo/gnustep-dev
>
>
>
> -- Send from my Jacquard Loom
>
>
> _______________________________________________
> Gnustep-dev mailing list
> Gnustep-dev@gnu.org
> https://lists.gnu.org/mailman/listinfo/gnustep-dev
>
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to