Cannot build boost 1.63 with Windows Intel compiler because cpu_relax

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Cannot build boost 1.63 with Windows Intel compiler because cpu_relax

Boost - Build mailing list
Hello,
I'm trying to build the boost 1.63 library with the Intel 17.0 compiler (latest update) in the vs2015 environment. Several targets fail to build because the definition of the cpu_relax macro isn't correct.

This change corrects the problem and allows the build to complete successfully.  Is this the right way to correct the problem?

diff _unchanged/boost_1_63_0/boost/fiber/detail/cpu_relax.hpp boost_1_63_0/boost/fiber/detail/cpu_relax.hpp
17c17
< #if BOOST_COMP_MSVC
---
> # if BOOST_COMP_MSVC || BOOST_COMP_MSVC_EMULATED
40c40
< # if BOOST_COMP_MSVC
---
> # if BOOST_COMP_MSVC || BOOST_COMP_MSVC_EMULATED
 
Without this change I get a message like this:

./boost/fiber/detail/spinlock_ttas.hpp(66): error: invalid constant in assembly language instruction
                      asm volatile ("pause" ::: "memory");;
                                    ^

This change allows the macro to compile to YieldProcessor()

I work for Intel, on the Intel C++ compiler.

Thanks and regards, Melanie Blower
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: Cannot build boost 1.63 with Windows Intel compiler because cpu_relax

Boost - Build mailing list
On 3/9/2017 2:17 PM, Blower, Melanie via Boost-build wrote:
> Hello,
> I'm trying to build the boost 1.63 library with the Intel 17.0 compiler (latest update) in the vs2015 environment. Several targets fail to build because the definition of the cpu_relax macro isn't correct.
>
> This change corrects the problem and allows the build to complete successfully.  Is this the right way to correct the problem?

First you should put [fiber] at the beginning of the title to your message.

Secondly it is better to createa PR against the fiber library on Github.

>
> diff _unchanged/boost_1_63_0/boost/fiber/detail/cpu_relax.hpp boost_1_63_0/boost/fiber/detail/cpu_relax.hpp
> 17c17
> < #if BOOST_COMP_MSVC
> ---
>> # if BOOST_COMP_MSVC || BOOST_COMP_MSVC_EMULATED
> 40c40
> < # if BOOST_COMP_MSVC
> ---
>> # if BOOST_COMP_MSVC || BOOST_COMP_MSVC_EMULATED
>
> Without this change I get a message like this:
>
> ./boost/fiber/detail/spinlock_ttas.hpp(66): error: invalid constant in assembly language instruction
>                       asm volatile ("pause" ::: "memory");;
>                                     ^
>
> This change allows the macro to compile to YieldProcessor()
>
> I work for Intel, on the Intel C++ compiler.
>
> Thanks and regards, Melanie Blower


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build