Skip to content

New IBM * XL toolset. #438

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Mar 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ indent_style = space
[*.jam]
indent_style = space

[*.sh]
indent_style = space

[.clangd]
indent_size = 2
indent_style = space
3 changes: 3 additions & 0 deletions doc/src/history.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

== Version 5.3.0

* *New*: Replace the old `vacpp` and `xlcpp` with a new `ibmcxx` toolset that
supports the old compilers and the new "IBM XL" and "IBM Open XL" compilers.
-- _René Ferdinand Rivera Morell_ and _Chris Ward_
* *New*: Add generic `cc` toolset for simply, direct, configuration of unknown
C compiler toolsets (for example `tcc`).
-- _René Ferdinand Rivera Morell_
Expand Down
2 changes: 1 addition & 1 deletion doc/src/reference.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -335,10 +335,10 @@ include::../../src/tools/embarcadero.jam[tag=doc]
include::../../src/tools/emscripten.jam[tag=doc]
include::../../src/tools/gcc.jam[tag=doc]
include::../../src/tools/hp_cxx.jam[tag=doc]
include::../../src/tools/ibmcxx.jam[tag=doc]
include::../../src/tools/intel.jam[tag=doc]
include::../../src/tools/msvc.jam[tag=doc]
include::../../src/tools/sun.jam[tag=doc]
include::../../src/tools/vacpp.jam[tag=doc]
:leveloffset: -3

=== Third-party libraries
Expand Down
35 changes: 9 additions & 26 deletions src/engine/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ You can specify the toolset as the argument, i.e.:
./build.sh [options] gcc

Toolsets supported by this script are:
acc, clang, como, gcc, intel-darwin, intel-linux, kcc, kylix, mipspro,
pathscale, pgi, qcc, sun, sunpro, tru64cxx, vacpp
acc, clang, como, gcc, ibmcxx-clang, intel-darwin, intel-linux,
kcc, kylix, mipspro, pathscale, pgi, qcc, sun, sunpro, tru64cxx

For any toolset you can override the path to the compiler with the '--cxx'
option. You can also use additional flags for the compiler with the
Expand Down Expand Up @@ -223,20 +223,9 @@ check_toolset ()
if test_toolset tru64cxx && test_uname OSF1 && test_compiler cc ; then B2_TOOLSET=mipspro ; return ${TRUE} ; fi
# QNX (qcc)
if test_toolset qcc && test_uname QNX && test_compiler QCC ; then B2_TOOLSET=qcc ; return ${TRUE} ; fi
# Linux XL/VA C++ (xlcpp, vacpp)
if test_toolset xlcpp vacpp && test_uname Linux && test_compiler xlC_r ; then
if /usr/bin/lscpu | grep Byte | grep Little > /dev/null 2>&1 ; then
# Little endian linux
B2_TOOLSET=xlcpp
return ${TRUE}
else
# Big endian linux
B2_TOOLSET=vacpp
return ${TRUE}
fi
fi
# AIX VA C++ (vacpp)
if test_toolset vacpp && test_uname AIX && test_compiler xlC_r ; then B2_TOOLSET=vacpp ; return ${TRUE} ; fi
# AIX IBM Open XL (ibmcxx-clang)
IBMCXX=`ls -1 -r /opt/IBM/openxlC/17.*/bin/ibm-clang++_r`
if test_toolset ibmcxx-clang && test_uname AIX && test "" != "${IBMCXX}" && test_compiler "${IBMCXX}" ; then B2_TOOLSET=ibmcxx-clang ; return ${TRUE} ; fi
# PGI (pgi)
if test_toolset pgi && test_compiler pgc++ -std=c++11 ; then B2_TOOLSET=pgi ; return ${TRUE} ; fi
# Pathscale C++ (pathscale)
Expand Down Expand Up @@ -335,16 +324,10 @@ case "${B2_TOOLSET}" in
B2_CXXFLAGS_DEBUG="-O0 -g -static-intel"
;;

vacpp)
CXX_VERSION_OPT=${CXX_VERSION_OPT:--qversion}
B2_CXXFLAGS_RELEASE="-O3 -s -qstrict -qinline"
B2_CXXFLAGS_DEBUG="-g -qNOOPTimize -qnoinline -pg"
;;

xlcpp)
CXX_VERSION_OPT=${CXX_VERSION_OPT:--qversion}
B2_CXXFLAGS_RELEASE="-s -O3 -qstrict -qinline"
B2_CXXFLAGS_DEBUG="-g -qNOOPTimize -qnoinline -pg"
ibmcxx-clang)
CXX_VERSION_OPT=${CXX_VERSION_OPT:---version}
B2_CXXFLAGS_RELEASE="-O3 -Wl,-s -Wno-deprecated-declarations"
B2_CXXFLAGS_DEBUG="-O0 -fno-inline -g -Wno-deprecated-declarations"
;;

como)
Expand Down
2 changes: 2 additions & 0 deletions src/engine/jam.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,9 @@
#define PATH_DELIM '/'

#ifdef _AIX
#ifndef unix
#define unix
#endif
#define MAXLINE 23552 /* 24k - 1k, max chars per command line */
#define OSMINOR "OS=AIX"
#define OS_AIX
Expand Down
Loading
Loading