Boost logo

Boost-Build :

From: Sam Partington (Sam.Partington_at_[hidden])
Date: 2004-01-29 10:58:26


Hi all,

I'm trying to set up boost build to build a project using a rather unusual
toolset.

The toolset is based a gcc (2.95.2 cygwin) cross compiler for an unusual
embedded architecture. (Sorry I'm not at liberty to say what) The thing
about this architecture is that it is a hardware multi-threaded core (up to
4 threads). Note that multi-threaded is a rather poor term for it as
essentially they are more like multi-process, or multi-processor.

This makes the link phase of the build a bit unusual. For example take a
very simple two threaded example :

Thread0.c -> gcc -> Thread0.o -> ld -> Thread0.preelf
Thread1.c -> gcc -> Thread1.o -> ld -> Thread1.preelf

Neither of these elf's are executable. They are essentially relocatable
libraries.

They then go through a post-link stage called ldlk, which collects all of
the preelf's together. (There may be one per thread, plus a possible one
preelf for code to be shared amongst all threads). And creates an 'ldr'
file which would be used to burn into the flash. And one elf for each
hardware thread for debugging symbols :

Thread0.preelf \
-> ldlk -> Project.ldr
Thread1.preelf / Project_t0.elf
Project_t1.elf

So my question is how do I go about introducing the extra 'post-link' stage
into the build?

I've so far been trying to do something like this :

gccmt.jam :

...

# Make the "o" suffix used for gcc toolset on all
# platforms
type.set-generated-target-suffix OBJ : <toolset>gccmt : o ;
type.set-generated-target-suffix EXE : <toolset>gccmt : preelf ;
type.set-generated-target-suffix LDR : <toolset>gccmt : ldr ;
type.set-generated-target-suffix STATIC_LIB : <toolset>gccmt : a ;

...

# Declare generators
generators.register-ldlk gccmt.ldlk : EXE : LDR : <toolset>gccmt ;
generators.register-linker gccmt.link : LIB OBJ : EXE : <toolset>gccmt ;

But I get the feeling I'm going about this the wrong way, and that I need to
change builtin.jam.

Any clues anyone?

TIA

Sam

******************
This e-mail has been sent from Imagination Technologies Limited.
PowerVR, Metagence, Ensigma and PURE Digital are divisions
of Imagination Technologies Limited.

The information contained in this e-mail, including any attachment,
is confidential and may be legally privileged. It is intended solely
for the addressee(s) and access to this e-mail by anyone else is
unauthorised. If you are not the intended recipient, any disclosure,
copying or distribution or use of the information contained in this
e-mail, is prohibited and may be unlawful. If you have received this
e-mail in error, please notify the sender by return e-mail and then
delete it from your system.

Internet communications cannot be guaranteed to be secure,
error or virus-free. The sender does not accept liability for any errors
or omissions which arise as a result.

Any views expressed in this message are those of the author, except
where the author specifies and, with authority, states them to be the
views of Imagination Technologies Ltd.

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk