Update of /cvsroot/boost/boost/tools/build/v2/tools
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv2155/tools/build/v2/tools
Modified Files:
Tag: RC_1_34_0
python.jam vacpp.jam
Log Message:
Apply patches from Michael for building on IBM pSeries for AIX and Linux.
(ticket #583)
Index: python.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/python.jam,v
retrieving revision 1.12.2.52
retrieving revision 1.12.2.53
diff -u -d -r1.12.2.52 -r1.12.2.53
--- python.jam 31 May 2007 23:34:46 -0000 1.12.2.52
+++ python.jam 1 Jun 2007 15:43:22 -0000 1.12.2.53
@@ -626,6 +626,8 @@
case hpux : return <library>rt ;
+ case aix : return <library>pthread <library>dl ;
+
case * : return <library>pthread <library>dl
<toolset>gcc:<library>util ;
}
}
@@ -926,6 +928,18 @@
{
alias python_for_extensions : python : $(target-requirements) ;
}
+ # On AIX we need Python extensions and Boost.Python to import symbols
+ # from the Python interpreter. Dynamic libraries opened with dlopen()
+ # do not inherit the symbols from the Python interpreter.
+ else if $(target-os) = aix
+ {
+ alias python_for_extensions
+ :
+ : $(target-requirements)
+ :
+ : $(usage-requirements)
<linkflags>-Wl,-bI:$(libraries[1])/python.exp
+ ;
+ }
else
{
alias python_for_extensions
Index: vacpp.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/vacpp.jam,v
retrieving revision 1.9
retrieving revision 1.9.2.1
diff -u -d -r1.9 -r1.9.2.1
--- vacpp.jam 16 Feb 2006 07:47:09 -0000 1.9
+++ vacpp.jam 1 Jun 2007 15:43:22 -0000 1.9.2.1
@@ -5,13 +5,14 @@
# or copy at http://www.boost.org/LICENSE_1_0.txt)
#
-# Boost.Build V2 toolset for the IBM VisualAge compiler
+# Boost.Build V2 toolset for the IBM XL C++ compiler
#
import toolset : flags ;
import feature ;
import common ;
import generators ;
+import os ;
feature.extend toolset : vacpp ;
toolset.inherit vacpp : unix ;
@@ -19,43 +20,65 @@
generators.override vacpp.searched-lib-generator : searched-lib-generator ;
feature.subfeature toolset vacpp : version ;
-# Configures the vacpp toolset.
+# Configure the vacpp toolset
rule init ( version ? : command * : options * )
{
}
-
# Declare generators
generators.register-c-compiler vacpp.compile.c : C : OBJ : <toolset>vacpp ;
generators.register-c-compiler vacpp.compile.c++ : CPP : OBJ : <toolset>vacpp ;
-# Declare flags.
+# Allow C++ style comments in C files
+flags vacpp CFLAGS : -qcpluscmt ;
+
+# Declare flags
flags vacpp CFLAGS <optimization>off : -qNOOPTimize ;
flags vacpp CFLAGS <optimization>speed : -O3 -qstrict ;
flags vacpp CFLAGS <optimization>space : -O2 -qcompact ;
+# Discretionary inlining (not recommended)
flags vacpp CFLAGS <inlining>off : -qnoinline ;
flags vacpp CFLAGS <inlining>on : -qinline ;
-flags vacpp CFLAGS <inlining>full : -qinline ;
+#flags vacpp CFLAGS <inlining>full : -qinline ;
+flags vacpp CFLAGS <inlining>full : ;
+# Exception handling
flags vacpp C++FLAGS <exception-handling>off : -qnoeh ;
flags vacpp C++FLAGS <exception-handling>on : -qeh ;
+# Run-time Type Identification
flags vacpp C++FLAGS <rtti>off : -qnortti ;
flags vacpp C++FLAGS <rtti>on : -qrtti ;
-# flags vacpp LINKFLAGS <runtime-link>static : -llibstd_v2.a ;
-# flags vacpp LINKFLAGS <runtime-link>shared : -llibstd_v2.sl ;
+# Enable 64-bit memory addressing model
+flags vacpp CFLAGS <address-model>64 : -q64 ;
+flags vacpp LINKFLAGS <address-model>64 : -q64 ;
+flags vacpp ARFLAGS <address-model>64 : -X 64 ;
-# We want the full path to the sources in the debug symbols because otherwise
-# the debugger won't find the sources when we use boost.build.
-flags vacpp CFLAGS <debug-symbols>on : -g ;
-flags vacpp LINKFLAGS <debug-symbols>on : -g ;
+# Use absolute path when generating debug information
+flags vacpp CFLAGS <debug-symbols>on : -g -qfullpath ;
+flags vacpp LINKFLAGS <debug-symbols>on : -g -qfullpath ;
flags vacpp LINKFLAGS <debug-symbols>off : -s ;
-# V2 does not have <shared-linkable>, not sure what this meant in V1.
-#flags vacpp CFLAGS <shared-linkable>true : +Z ;
+if [ os.name ] = AIX
+{
+ # Tell the linker to discard unneeded object files from archive libraries.
+ # Please note that the static constructors contained by the discarded
object
+ # files will not be invoked.
+ flags vacpp.compile C++FLAGS : -qfuncsect ;
+ flags vacpp.link LINKFLAGS <link>static : -qtwolink ;
+
+ # Run-time linking
+ flags vacpp.link EXE-LINKFLAGS <link>shared : -brtl ;
+}
+else
+{
+ # Linux PPC
+ flags vacpp.compile CFLAGS <link>shared : -qpic ;
+}
+# Profiling
flags vacpp CFLAGS <profiling>on : -pg ;
flags vacpp LINKFLAGS <profiling>on : -pg ;
@@ -79,25 +102,25 @@
flags vacpp VA_CXX_COMPILER <threading>single : xlC ;
flags vacpp VA_CXX_COMPILER <threading>multi : xlC_r ;
-ROOT = /usr/vacpp/bin ;
+
actions vacpp.link bind NEEDLIBS
{
- $(ROOT)/$(VA_CXX_COMPILER) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH)
-L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)
+ $(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH)
-L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)
}
actions vacpp.link.dll bind NEEDLIBS
{
- xlC_r -qmkshrobj $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH)
"$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)
+ xlC_r -G $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)"
"$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)
}
actions vacpp.compile.c
-{
- $(ROOT)/$(VA_C_COMPILER) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES)
$(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
+{
+ $(VA_C_COMPILER) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS)
-I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
actions vacpp.compile.c++
{
- $(ROOT)/$(VA_CXX_COMPILER) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES)
$(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
+ $(VA_CXX_COMPILER) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS)
$(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}
actions updated together piecemeal vacpp.archive
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs