Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Mesa graphics stack fails to compile with Intel Parallel Studio XE 2017 for Linux / 64bit.

jordan_j_1
Beginner
644 Views
Hi, I was trying to compile MESA (64bit) on Archlinux 64bit with Intel Parallel Studio XE 2017 for Linux / 64bit and hit a failure. ***I've attached a log from the build. The ArchLinux distribution and many Linux distributions are enabling the DX3D9 support in MESA (DirectX 3d 9 'nine' driver via the --enable-nine flag), however, due to ICC not supporting x86_64-ms_abi / __builtin_ms_va_list which IS supported in GCC and LLVM, ICC will fail to build MESA. I've brought up this issue in the past, including recently in this post; https://software.intel.com/en-us/forums/intel-c-compiler/topic/691352 ... Supporting __builtin_ms_va_list within the compiler is becoming more and more relevant, I really wish that the XE developers would seriously consider adding support for this, as it would be very useful and greatly appreciated... The current solution is to either disable MESA's DX3D9/nine driver (via --disable-nine flag) or build mesa with GCC. Thanks, jordan
0 Kudos
1 Solution
SergeyKostrov
Valued Contributor II
644 Views
>>...Supporting __builtin_ms_va_list within the compiler is becoming more and more relevant,... I would say that Intel C++ compiler is a very "neutral" C++ compiler and supports first of all Released C and C++ Standards, than provides compatibility with Microsoft C++ compiler, and tries to be compatible with all the rest C++ compilers, like GCC, LLVM, etc. GCC and LLVM C++ compilers are less "neutral" and they full of features which are Not included in Released C and C++ Standards. These two teams could introduce some extensions to deliberately break compatibility with Intel C++ compiler and the same applies to MESA developers. If MESA developers would be interested to support Intel C++ compiler then sources would be implemented in a different more compatible way.

View solution in original post

0 Kudos
3 Replies
SergeyKostrov
Valued Contributor II
644 Views
>>...ICC not supporting x86_64-ms_abi / __builtin_ms_va_list which IS supported in GCC and LLVM,.. If __builtin_ms_va_list is Not a part of some C or C++ oficcially released Standard Intel C++ compiler could Not support it. I think you need to proceed with a workaround, that is re-implement not supported functionality with a more standard and supported functionality, to compile sources with Intel C++ compiler.
0 Kudos
SergeyKostrov
Valued Contributor II
645 Views
>>...Supporting __builtin_ms_va_list within the compiler is becoming more and more relevant,... I would say that Intel C++ compiler is a very "neutral" C++ compiler and supports first of all Released C and C++ Standards, than provides compatibility with Microsoft C++ compiler, and tries to be compatible with all the rest C++ compilers, like GCC, LLVM, etc. GCC and LLVM C++ compilers are less "neutral" and they full of features which are Not included in Released C and C++ Standards. These two teams could introduce some extensions to deliberately break compatibility with Intel C++ compiler and the same applies to MESA developers. If MESA developers would be interested to support Intel C++ compiler then sources would be implemented in a different more compatible way.
0 Kudos
jordan_j_1
Beginner
644 Views
Hi Sergey, Thank you for your insightful posts. For Mesa, I doubt I will worry about it, as I can just just disable the 'nine' driver. For Wine (in my other post), I have had some success at least getting 64bit version to build recently, but it will still require some hacking / workarounds before it will be useful to any real degree ~ I've found some old mailing list posts from when they were porting to 64bit and MacOSX that are helpful/relevant, in that they have pointed me to the code that will need to be modified. Currently on my 64bit build; most apps crash (but that is expected, as I've only just gotten started on it) Unfortunately, I have been busy with other projects... As an aside; While __builtin_ms_va_list has been a slight annoyance ~ I've had some good successes with Intel XE compiler. I've managed to get a fix merged into some software (CloudCompare: Point Cloud / 3d meshing software) to fix icc compilation on Linux. Some of my optimized builds (PGO optimized) have impressive performance too.
0 Kudos
Reply