Boost logo

Boost Users :

From: Vladimir Michl (vladimir.michl_at_[hidden])
Date: 2006-01-12 08:10:43


Hi Stering,

thank you for your ideas.

As looking onto boost web pages, probably the list what you suggested
boost-build is better to discuss this issue. Going to drop a message
there.

Vlad

On Wed, 2006-01-11 at 08:36 +0100, Stering Wolfram wrote:
> Vladimir,
>
> >recently I was put into task to cross compile boost for ARM platform
> >with GCC.
> >
> >My building platform is i386 Linux with gcc and cross compiling to arm
> >Linux.
> >
> >
>
> I had the very same problem for my Coldfire cross-build (target
> "m68k-elf"), working under Windows XP using Cygwin.
> I didn't find a "standard way" of doing a cross-build of boost in its
> build documentation.
>
> >Standard way for this kind of compilation is, that name of cross
> >compiler (running under i386 but producing arm code) and all cross
> >binary utilities are prefixed by target plarform, so like arm-linux-gcc,
> >arm-linux-g++, arm-linux-ar, arm-linux-objcopy for arm-linux.
> >
> >
>
> This applies when using the GNU toolchain. But nowadays, most cross
> compilers are gcc based.
>
> >And this is causing a bit of problem with boost.
> >
> >I can force GCC and GXX, but still have a problem with ar and objcopy.
> >
> >I've tried to setup GCC_BIN_DIRECTORY but it didn't work.
> >
> >
>
> I did basically the same thing to tools/build/v1/gcc-tools.jam as you
> did, at least with respect to ar and objcopy being available as
> variables that can be set on jam command line.
> I then used "-sGXX=m68k-elf-g++ -sGCC=m68k-elf-gcc -sAR=m68k-elf-ar" on
> my build command line.
>
> Additionally, I added support for selecting the CPU model
> (architecture/instruction-set) by adding the following:
> (I don't know how/why this works, just imitated the respective block for
> other architectures).
> Perhaps, boost build system should support (kind of) multilib builds for
> cross compilation, in a similar way that gcc/g++ does when
> cross-compiling it for targets where this applies?
>
> This enabled me to add
> "-sBUILD=debug release <runtime-link>static <optimization>size
> <architecture>m68k <instruction-set>5200"
> to the build command line for a Coldfire cross-build. It even somehow
> worked, as gcc got called with the correct -m option...
>
> # Coldfire and other m68k (WS, Tue Dec 20 16:46:10 2005).
> .ARCH = <architecture>m68k <architecture>native ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>default : -m5200 ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>68000 : -m68000 ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>5200 : -m5200 ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>5206e : -m5206e ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>528x : -m528x ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>5307 : -m5307 ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>5407 : -m5407 ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>cpu32 : -mcpu32 ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>68040 : -m68040 ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>68060 : -m68060 ;
> flags gcc CFLAGS <architecture>m68k/<instruction-set>soft-float :
> -msoft-float ;
>
> >So I've done a small patch to tools/build/v1/gcc-tools.jam adding
> >GCC_PREFIX variable, that if set up, will prefix names of all tools with
> >that prefix.
> >
> >So I can compile boost with
> >
> >bjam -sTOOLS=gcc -sGCC_PREFIX=arm-linux- stage
> >
> >
>
> Ah, your approach with using GCC_PREFIX is even better!
> Perhaps call it "-sCROSS_TARGET=arm-linux" ?
>
> >May be it will be useful to add the same functionality to
> >gcc-stlport-tools.jam or mingw.
> >
> >So please find attached changes.
> >
> >It is possible to include them into next boost release?
> >
> >
> I strongly vote for integrating cross-compilation support (at least
> using GNU toolchain, after all that's what most use!) in the Boost build
> system. But I don't know or use jam or bjam (other than building (parts
> of) boost itself), so unfortunately I would be of little help... :-(
> I replied to the post becuase somone else might find the information
> helpful as well, I hope.
>
> >By the way, the same problem appears when boost jam is used to compile
> >some third-party libraries. Is this place good to talk about boost jam
> >and its Jambase file?
> >
> >
> Probably move to the boost-build list?
>
> -wolfi
>

-- 
Vladimir Michl <vladimir.michl_at_[hidden]>, ICQ# 312939054
Tel: +447793527010
     +447906361574
     +420608413590

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net