Opened 12 years ago

Last modified 10 years ago

#5001 new Bugs

Failure to compile boost_1_45 and boost-trunk on ia64 (itanium2) with toolset intel-linux

Reported by: Stefan Janecek <stejanecek@…> Owned by: Vladimir Prus
Milestone: Boost 1.49.0 Component: build
Version: Boost 1.45.0 Severity: Problem
Keywords: Cc:

Description

Hi all,

I have tried to compile boost_1_45_0 using the Intel compiler on an Itanium machine, but it seems to fail with a segfault:

xxx@cn002:~/src/boost_1_45_0> ./bootstrap.sh --with-toolset=intel-linux --show-libraries --prefix=$HOME
Building Boost.Jam with toolset intel-linux... 
Failed to build Boost.Jam
Consult 'bootstrap.log' for more details
xxx@cn002:~/src/boost_1_45_0> cat bootstrap.log 
###
### Using 'intel-linux' toolset.
###
rm -rf bootstrap
mkdir bootstrap
icc -o bootstrap/jam0 command.c compile.c debug.c expand.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c pathunix.c pathvms.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c pwd.c class.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c
expand.c(85): warning #181: argument is incompatible with corresponding format string conversion
          printf( "expand '%.*s'\n", end - in, in );
                                     ^

./bootstrap/jam0 -f build.jam --toolset=intel-linux --toolset-root= clean
...found 1 target...
...updating 1 target...
[DELETE] clean
./build.sh: line 13: 27407 Segmentation fault      (core dumped) $@

So far, I have gathered the following information:

  • I've done this on two different Itanium machines I've got access to. It fails with the same error message on both machines.
  • I have used Intel compilers 11.1, 11.0, 10.1. Same error message with all of them.
  • Compiling on x86_64 with the above compilers works as expected.

Next, I have checked out the boost trunk from the subversion rep. Here, it does not offer any libraries to compile:

xxx@cn002:~/src/boost-trunk> ./bootstrap.sh --with-toolset=intel-linux --show-libraries
Building Boost.Jam with toolset intel-linux... tools/build/v2/engine/src/bin.linuxia64/bjam

The following Boost libraries have portions that require a separate build
and installation step. Any library not listed here can be used by including
the headers only.

The Boost libraries requiring separate building and installation are:
xxx@cn002:~/src/boost-trunk> 

I decided to still give it a go:

xxx@cn002:~/src/boost-trunk> ./bootstrap.sh --with-toolset=intel-linux --with-libraries=iostreams,mpi,serialization
Building Boost.Jam with toolset intel-linux... tools/build/v2/engine/src/bin.linuxia64/bjam
Unicode/ICU support for Boost.Regex?... not found.
Generating Boost.Build configuration in project-config.jam...

Bootstrapping is done. To build, run:

    ./bjam
    
To adjust configuration, edit 'project-config.jam'.
Further information:

   - Command line help:
     ./bjam --help
     
   - Getting started guide: 
     http://www.boost.org/more/getting_started/unix-variants.html
     
   - Boost.Build documentation:
     http://www.boost.org/boost-build2/doc/html/index.html

xxx@cn002:~/src/boost-trunk> ./bjam
Segmentation fault (core dumped)

No luck either :(

At this point, I'm running out of ideas - anything else I could try?

Cheers, Stefan

Change History (8)

in reply to:  description ; comment:1 by ulf.markwardt@…, 11 years ago

I have to report the same problem. It was not fixed in version 1.46 or 1.47. - Is there a workaround to safely install the libraries without bjam?

Regards, Ulf

in reply to:  1 comment:2 by anonymous, 11 years ago

Replying to ulf.markwardt@…:

I have to report the same problem. It was not fixed in version 1.46 or 1.47. - Is there a workaround to safely install the libraries without bjam?

I can only confirm the problem still exists over here with 1.47, too.

Seems a bit odd that an issue that is practically a showstopper for a whole platform goes by unnoticed for 8 months - should I have cc'ed someone when I first reported it? Any other method to attract attention to this? Anybody out there on Itanium, too?

comment:3 by ulf.markwardt@…, 11 years ago

The problem is bjam (b2). Here is my workaround: compile bjam with your systems's gcc. Simply ./bootstrap.sh Adapt the file tools/build/v2/user-config.jam like this

using intel-linux : 11.1.056 : icpc : -O2 -ftz -fPIC -shared-intel -shared ;

After adding all other stuff (like MPI) to this config file you can run bjam like this:

./bjam  --prefix=/sw/libraries/boost/1.47  toolset=intel-linux install

Best regards,

Ulf

comment:4 by René Rivera, 11 years ago

Component: Building Boostbuild
Milestone: To Be DeterminedBoost 1.49.0
Owner: set to Vladimir Prus
Severity: ShowstopperProblem

This is likely fixed with the recent cleanup Steven did to b2 engine. So I'm downgrading as expected to work in the next release. But obviously someone needs to try the specific toolset/platform configuration.

comment:5 by csubich@…, 10 years ago

I can confirm that this error is still present on Itanium machines with ICC 11.0 and boost 1.51.0

$ icc --version
icc (ICC) 11.0 20081105
Copyright (C) 1985-2008 Intel Corporation.  All rights reserved.
$ ./bootstrap.sh --with-toolset=intel-linux > /dev/null && echo success
success
$ ./b2
Segmentation fault

comment:6 by Vladimir Prus, 10 years ago

Sorry, but it seems like somebody with access to intel shall debug this, then.

comment:7 by stejanecek@…, 10 years ago

I can only confirm this bug still exists in 1.53.

I have now access to an Itanium machine again - is there anything I can do to help debug this?

comment:8 by Steven Watanabe, 10 years ago

Okay, first please try the current trunk. (svn checkout http://svn.boost.org/svn/boost/trunk/tools/build/v2/engine b2_source; cd b2_source; ./build.sh) Then use b2_source/bin*/b2.

If that fails, then build b2 with --debug, and get a backtrace from the crash. If this succeeds, then we have an optimization problem. Build b2 with --symbols instead and get a backtrace.

That should give me an idea of what to look at, and we can go from there.

Note: See TracTickets for help on using tickets.