1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

DragonEgg-ing Mesa & Banging It With Clang

Michael Larabel

Published on 8 December 2011
Written by Michael Larabel
Page 1 of 3 - 4 Comments

What happens if you build Mesa/Gallium3D with LLVM's Clang compiler or the LLVM DragonEgg plug-in with GCC? It has been asked before, so here is an answer.

With the recent release of LLVM 3.0 and respective updates for the Clang C/C++ compiler front-end and a much-improved DragonEgg plug-in for GCC, I decided to see whether these alternatives to the GNU Compiler Collection would now play well with Mesa/Gallium3D. When attempting to build out Mesa with earlier versions of LLVM, there were show-stopping problems.

This time around when building out Mesa, namely using the "make linux-llvm" option for building the Mesa/Gallium3D with the LLVMpipe driver to test the software acceleration on the CPU, things worked out when using LLVM/Clang/DragonEgg 3.0. There were no build errors and the generated binaries worked.

The only configuration where the Mesa build failed was when using GCC 4.6.2 with the DragonEgg plug-in from LLVM 3.0 while also passing the "-fplugin-arg-dragonegg-enable-gcc-optzns" switch that is meant for delivering "ultimate performance" by combining the LLVM and GCC optimizers. However, DragonEgg on GCC 4.6 without any extra optimizations had built a working Mesa stack along with Clang.

I also tried building the mainline Linux kernel (3.2 Git) using LLVM/DragonEgg 3.0, but that failed when it came to hitting some unsupported Assembly. A year ago, LLVM's Clang compiler hit the milestone of building the Linux kernel (well, most of it) but it required out-of-tree patches and other changes. That work still has not landed in mainline to allow Clang to build a vanilla kernel nor has the Clang Linux kernel source code on the GitHub project page been updated since this past May.

Latest Articles & Reviews
  1. Khronos Group Announces Vulkan, OpenCL 2.1, SPIR-V
  2. Samsung 850 EVO SSD Linux Benchmarks
  3. Kubuntu 15.04 Is Turning Out Quite Nice, Good Way To Try Out The Latest KDE
  4. 5-Way Linux Distribution Comparison On The Core i3 NUC
  5. OCZ ARC 100 Linux SSD Benchmarks
  6. Lenovo ThinkPad X1 Carbon Works Great As A Linux Ultrabook
Latest Linux News
  1. NVIDIA Announces Shield Set-Top Gaming Box
  2. Valve Launches $49 Steam Link, SteamOS-Powered Streaming Device
  3. Valve Announces Source 2, It's Going To Be Free To Content Developers
  4. Gitorious Gets Acquired By GitLab
  5. Unity 5.0 Brings PhysX 3.3, WebGL Preview, Animation System Work
  6. Linux 4.0-rc2 Kernel Released After Delay Due To Intel DRM Driver
  7. Linux 3.19 Officially Lands For Ubuntu 15.04
  8. Clutter Now Supports Quad-Buffer Stereo Displays, Mir Backend
  9. Pricing Details On The Alleged MJ Ubuntu Tablet Design
  10. Understanding The Linux Kernel's BPF In-Kernel Virtual Machine
Most Viewed News This Week
  1. More Proof That Allwinner Is Violating The GPL
  2. The Tremendous Features Of Fedora 22
  3. Krita 2.9 Released, Their Biggest Release Ever
  4. A Single UEFI Executable With The Linux Kernel, Initrd & Command Line
  5. Xfce 4.12 Released After Nearly Three Years Of Work
  6. LLVM 3.6 & Clang 3.6 Deliver More Features, Complete C++14 Support
  7. ALSA 1.0.29 Released
  8. Canonical's Latest Demo Of Ubuntu Unity 8 Convergence In Action
%%CLICK_URL_UNESC%%