Opened 14 years ago
Closed 12 years ago
#2107 closed Bugs (invalid)
Preprocessor Token Conflict with Intel Math Kernel Library (MKL)
Reported by: | Owned by: | Aleksey Gurtovoy | |
---|---|---|---|
Milestone: | Component: | mpl | |
Version: | Boost 1.35.0 | Severity: | Regression |
Keywords: | Cc: |
Description
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.
Change History (5)
follow-up: 2 comment:1 by , 14 years ago
comment:2 by , 13 years ago
Replying to anonymous:
I wonder why Intel wouldn't agree to depollute the token namespace..
Brad,
With Intel 11.1.046 on my Leopard system I have no problem compiling MKL lapack headers and files from MPL. Can you provide more information such as the OS, compiler, which version of MKL, and whether this is still a problem with 1.41?
-- Noel
follow-up: 4 comment:3 by , 12 years ago
Noel --
If you never got an answer back, and the problem no longer occurs, can we close this bug? I see that the MPL stuff still uses template parameters P4, so I'm wondering: Is the MLK still #define-ing P4?
comment:4 by , 12 years ago
Replying to marshall:
Noel --
If you never got an answer back, and the problem no longer occurs, can we close this bug? I see that the MPL stuff still uses template parameters P4, so I'm wondering: Is the MLK still #define-ing P4?
Hi Marshall,
I didn't get a response so I'd say close this issue. I haven't checked if MKL defines P4.
-- Noel
comment:5 by , 12 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Closed as it seems Intel has removed the P4 macro.
I wonder why Intel wouldn't agree to depollute the token namespace..