[Boost-bugs] [Boost C++ Libraries] #2107: Preprocessor Token Conflict with Intel Math Kernel Library (MKL)

Subject: [Boost-bugs] [Boost C++ Libraries] #2107: Preprocessor Token Conflict with Intel Math Kernel Library (MKL)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-07-11 13:38:02


#2107: Preprocessor Token Conflict with Intel Math Kernel Library (MKL)
-------------------------------------------+--------------------------------
 Reporter: Brad Howes <howes_at_[hidden]> | Owner: agurtovoy
     Type: Bugs | Status: new
Milestone: | Component: mpl
  Version: Boost 1.35.0 | Severity: Regression
 Keywords: |
-------------------------------------------+--------------------------------
 A very obscure bug just cropped up in our code when we moved to Boost 1.35
 from 1.34.1. We use VSPL++, which uses LAPACK, which is provided in our
 installation by Intel's Math Kernel Library (MKL). After including
 <vsip/math.hpp> which brings in the LAPACK and MKL stuff, we cannot
 compile code using Boost routines that uses stuff from <boost/mpl>. In
 particular, we get a compile failure in various files found in the
 <boost/mpl/aux_/preprocessed> directory that have templates with a
 parameter called P4. This is defined in an MKL header to have the value 2
 on our machine, which makes the template useless.

 I doubt that I can get Intel to not pollute the token space with 'P4'. I
 will try and get the VSIPL++ coders to '#undef P4' in a key spot in their
 code, and might be able to convince them that it would be OK to do so. But
 I was wondering if general uglification is necessary in the Boost code to
 reduce this type of problem in the future. I'll understand if the answer
 is "No" and this is rejected.

-- 
Ticket URL: <http://svn.boost.org/trac/boost/ticket/2107>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:58 UTC