Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to tell what optimizations bjam is using to build boost

Tags:

c++

boost

bjam

I'm building the boost libraries with bjam for both the intel compiler and vs2008, and I can't tell what optimizations are being passed to the compiler from bjam. For one of the compiler's gcc, I can see some optimizations in one of the bjam files, but I can't find the optimization flags for the compilers I care about. So, my questions are -

  1. Does anyone know where the default optimization flags are located?
  2. If they're declared within bjam, does anyone know how I can override them?
like image 389
Steve Avatar asked May 08 '10 14:05

Steve


1 Answers

If you are interested in looking at the entire set of options that are passed to invoke the compiler when building you can run bjam with the -n -a options and the rest of the building options to give you the complete set of commands invoked, and any response files generated (see Boost Jam Options). Also you can look at the Boost Build sources directly and see what the specified features are translated into (see Boost Build Tools Files). For example:

  • For GCC see gcc.jam
  • For MSVC see msvc.jam

You can likely figure out the same for other compilers by just looking through the sources as they are fairly self explanatory. And you can just search for "<optimization>" and "<inlining>" in the *.jam sources.

You can override them in the command line by specifying the feature=value option in the command line when building. The options match the <feature>value specifications you see in the toolset files. For example, to override the optimizations feature you would specify in the command line some like "optimization=speed". If you want more fine grained control you would have to delve into Boost Build specifications and likely have to create a variant of your own to define specific options and features to build with.

like image 134
GrafikRobot Avatar answered Sep 28 '22 06:09

GrafikRobot