gnustep-dev
[Top][All Lists]
Advanced

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

Once more cross compilation


From: Fred Kiefer
Subject: Once more cross compilation
Date: Wed, 14 Jul 2004 00:37:36 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040114

I did not get any responce on my last mail on cross compilation. Perhaps this time, as I will try to male more concret proposals.

As I stated in the last mail I think that GNUstep make mixes up the three different computer system involved in a cross compilcation. There are BUILD, HOST and TARGET. The first and the last are easy to explain. BUILD is the system where the compilcation is run and TARGET is the system where the result of the application will be used. HOST is the system where the result of the compilation will be used. Normally HOST and TARGET are the same. The only difference is when building a cross compiler HOST will be the system the cross compiler runs on and TARGET the system where the generated code will run.

A few examples:
- Most often all three systems are the same.
- When compiling for MinGW in a Cygwin environment BUILD and HOST are Cygwin whereas Target is MINGW. - When compiling GNUstep on a Intel Linux machine to run it on a Zaurus ARM processor BUILD is x86-* and HOST and Target both are arm-*.

And in the last case GNUstep goes wrong. There are a few obvious problems in the make package. For example target.make tests on line 1010 for GNUSTEP_HOST_CPU, where obviously GNSUSTEP_TARGET_CPU should be used. But this is only a minor problem, compared to the fact that I think almost everywhere in the GNUstep make files and make helpers that BUILD should be used in place of HOST. For example ld_lib_path.sh uses only HOST, but never BUILD to determine and even common.make uses $(GNUSTEP_MAKEFILES)/$(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)/which_lib to find which GNUstep libraries to link. Of course this fails as soon as HOST!=BUILD. When cross compiling GNUstep you first build make for the BUILD and than for the TARGET, so this would work with HOST replaced by BUILD. And this is what I suggest, replacing HOST with BUILD in most make files. As I seem to be the only one trying to cross compile GNUstep, I will make these changes myself, if nobody opposes.

Fred




reply via email to

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