Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
33 Views

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

Jump to solution
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

Accepted Solutions
Highlighted
Valued Contributor II
33 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
Highlighted
Valued Contributor II
33 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
Highlighted
Valued Contributor II
34 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
Highlighted
Beginner
33 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