From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-10-26 22:21:22


Boris Gubenko wrote:
> [...] I think the flag should be in boost/tools/jam/src/build.jam
> which is a jamfile jam0 is using for building bjam.

Indeed: see '-fno-strict-aliasing' on gcc command below. Note
that the patch below is against SVN trunk. The version of build.jam
in 1.34.1 is not identical to that in trunk, but the same fix should
work for 1.34.1, I believe (I did not try it with 1.34.1).

Index: build.jam
===================================================================
--- build.jam (revision 40483)
+++ build.jam (working copy)
@@ -175,7 +175,7 @@
     : -L$(--python-lib[1]) -l$(--python-lib[2]) ;
 ## GCC 2.x, 3.x, 4.x
 toolset gcc gcc : "-o " : -D
- : -pedantic
+ : -pedantic -fno-strict-aliasing
     [ opt --release : [ opt --symbols : -g : -s ] -O3 ]
     [ opt --debug : -g -O0 -fno-inline ]
     -I$(--python-include) -I$(--extra-include) -Wno-long-long

bash-2.03$ ./bootstrap/jam0 -a -d2 -f build.jam --toolset=gcc --toolset-root=
...found 47 targets...
...updating 1 target...
[COMPILE] bin.hpuxia64/bjam

    "gcc" -o
bin.hpuxia64/bjam -DNDEBUG -DOPT_HEADER_CACHE_EXT -DOPT_GRAPH_DEBUG_EXT -DOPT_SEMAPHORE
 -DOPT_AT_FILES -DOPT_DEBUG_PR
OFILE -DOPT_FIX_TARGET_VARIABLES_EXT -DOPT_IMPROVED_PATIENCE_EXT -DYYSTACKSIZE=5000
 -pedantic -fno-strict-aliasing -s -O3 -Wno-long-
long command.c compile.c debug.c expand.c glob.c hash.c hcache.c headers.c
hdrmacro.c jam.c jambase.c jamgram.c lists.c make.c make
1.c mem.c newstr.c option.c output.c parse.c regexp.c rules.c scan.c search.c
subst.c w32_getreg.c timestamp.c variable.c modules.c
strings.c filesys.c builtins.c pwd.c class.c native.c modules/set.c
modules/path.c modules/regex.c modules/property-set.c modules/se
quence.c modules/order.c execunix.c fileunix.c pathunix.c

HTH,
  Boris