Boost logo

Boost-Build :

From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2004-08-26 03:13:56


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

 --------------010308020307000607050002 Content-Type: text/plain;
name="patch1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="patch1"

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
;

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 ;
+
flags tru64cxx65 CFLAGS <cflags> ;
flags tru64cxx65 C++FLAGS <cxxflags> ;
flags tru64cxx65 DEFINES <define> ;
 --------------010308020307000607050002--


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