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