Boost logo

Boost-Build :

From: Rene Rivera (grafik.list_at_[hidden])
Date: 2004-08-26 07:23:05


� wrote:
> As it turned out recently, for the Compaq C++ compiler, to get the full
> ANSI capability, you have to specify a different object model than the
> default one. (Please refer to the discussion "name mangling scheme for
> tru64cxx65" on the boost developer list.)
>
> Therefore I added a new feature called "object-model" to bbv1 which is used
> to select the object model used by the compiler. Currently, it is an Compaq
> C++ only option, I have no idea if other compilers provide different object
> models too.
>
> Attached as a patch which I would like to apply to bbv1. Could I please
> have a go or no-go from the relevant people?
>
> TIA, Markus
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
> Index: features.jam
> ===================================================================
> RCS file: /cvsroot/boost/boost/tools/build/v1/features.jam,v
> retrieving revision 1.25
> diff -c -r1.25 features.jam
> *** features.jam 22 Jul 2004 14:03:46 -0000 1.25
> --- features.jam 26 Aug 2004 08:02:40 -0000
> ***************
> *** 173,178 ****
> --- 173,189 ----
> r2000 r3000 r3900 r4000 r4100 r4300 r4400 r4600 r4650 r5000 r6000 r8000 orion
> ;
>
> + # The object model the compiler uses when compiling C++ code. Currently only
> + # relevant for Compaq C++ V6.3 and newer.
> + feature object-model :
> + # Use the default object model. See compiler manpage for more.
> + default
> + # Select the 'arm' object model. Used for backward compatible binaries.
> + arm
> + # Select the 'ansi' object model. Used to support the complete standard.
> + ansi
> + ;
> +
> gLINK_COMPATIBLE = <shared-linkable>true <target-type> <inlining> ;
>
> gALWAYS_RELEVANT = <target-type> <tag> <default> <build> ;
> ***************
> *** 194,199 ****
> --- 205,211 ----
> <architecture>native
> <instruction-set>default
> <profiling>off
> + <object-model>ansi
> ;

If you have the "default" value, it should be the default. So the base
properties should have <object-model>default. And...

> variant debug : common :
> Index: tru64cxx65-tools.jam
> ===================================================================
> RCS file: /cvsroot/boost/boost/tools/build/v1/tru64cxx65-tools.jam,v
> retrieving revision 1.12
> diff -c -r1.12 tru64cxx65-tools.jam
> *** tru64cxx65-tools.jam 26 Jul 2004 04:45:58 -0000 1.12
> --- tru64cxx65-tools.jam 26 Aug 2004 08:02:41 -0000
> ***************
> *** 45,50 ****
> --- 45,57 ----
> flags tru64cxx65 CFLAGS <profiling>on : -pg ;
> flags tru64cxx65 LINKFLAGS <profiling>on : -pg ;
>
> + # Selection of the object model. This flag is needed on both the C++ compiler
> + # and linker command line.
> + flags tru64cxx65 C++FLAGS <object-model>arm : -model arm ;
> + flags tru64cxx65 C++FLAGS <object-model>ansi : -model ansi ;
> + flags tru64cxx65 LINKFLAGS <object-model>arm : -model arm ;
> + flags tru64cxx65 LINKFLAGS <object-model>ansi : -model ansi ;
> +

You would then need to add handling for <object-model>default to the
toolset:

flags tru64cxx65 C++FLAGS <object-model>default : -model ansi ;
flags tru64cxx65 LINKFLAGS <object-model>default : -model ansi ;

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com - 102708583/icq
 

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