Skip to content

MacOS: NVCC builds crashed after updating boost #1009

@qipeng

Description

@qipeng

Recently I pulled the latest dev from origin, which seemed to require boost 1.56 features that I didn't have on my boost 1.55 (homebrew version).

After upgrading, all nvcc builds failed with some nvcc compatibility issue with boost (seems to be a known issue to nVidia).

I managed to solve one obvious issue with __int128, but still nvcc seems unhappy about a lot of boost header files in head_traits, hash, atomic, etc. Here's a (partial) snippet of the errors:

/usr/local/include/boost/type_traits/is_abstract.hpp(72): error: identifier "__is_abstract" is undefined

/usr/local/include/boost/type_traits/is_abstract.hpp(72): error: function call is not allowed in a constant expression

/usr/local/include/boost/type_traits/is_abstract.hpp(72): error: type name is not allowed

/usr/local/include/boost/type_traits/is_convertible.hpp(486): error: identifier "__is_convertible_to" is undefined

/usr/local/include/boost/type_traits/is_convertible.hpp(486): error: function call is not allowed in a constant expression

/usr/local/include/boost/type_traits/is_convertible.hpp(486): error: type name is not allowed

/usr/local/include/boost/type_traits/is_convertible.hpp(486): error: type name is not allowed

/usr/local/include/boost/type_traits/is_enum.hpp(180): error: identifier "__is_enum" is undefined

These seem to have been caused by the boost references in common.hpp (and/or some headers it included) which is indirectly included by all .cu files. Does anyone have a (quick and dirty, at least) solution to this?

From the Googling I've done (and things I've tried that didn't work), the best solution so far seems to be that we separate all CUDA compilations from anything that's related to boost, and let only the host compiler care about boost related stuff -- which hopefully someone more familiar with the project structure would come up with a good workaround.

Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions