uint8_t conflict between VS 2015 stdint.h and IB ib_al.h in C++ application

The problem arises when I compile both header files

stdint.h (from Visual Studio 2015)

iba/ib_al.h (from MLNX_VPI_WinOF-5_10_All_win2012R2_x64.exe)

in one translation unit in a C++ application.

Compiler reports error C2086: identifier is defined more than once.

The reason is different types for typedefs:

typedef signed char int8_t; (in stdint.h in VS 2015)

typedef __int8 int8_t; (in Mellanox’s SDK\inc\user\complib\cl_types_osd.h)

I resolved this by modifying stdint.h in VS 2015.

Obviously this is a workaround.

Are there more straightforward solutions?

Is it possible to modify Mellanox driver?