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 Benchmarking Platform
Phoromatic Test Orchestration

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. Trying Out The Modern Linux Desktops With 4 Monitors + AMD/NVIDIA Graphics
  2. Turning A Basement Into A Big Linux Server Room
  3. NVIDIA's $1000+ GeForce GTX TITAN X Delivers Maximum Linux Performance
  4. OS X 10.10 vs. Ubuntu 15.04 vs. Fedora 21 Tests: Linux Sweeps The Board
  5. The New Place Where Linux Code Is Constantly Being Benchmarked
  6. 18-GPU NVIDIA/AMD Linux Comparison Of BioShock: Infinite
Latest Linux News
  1. OpenIndiana 2015.03 Updates Its Solaris/Illumos Environment
  2. GNOME 3.16 SDK Runtime Now Available
  3. Initial Intel Braxton Support Might Come To Linux 4.1
  4. Why KDE's KWin Doesn't Integrate Weston/QtCompositor For Wayland Support
  5. Clang Now Supports Targeting The NaCl OS
  6. PC-BSD Updates Its Lumina Desktop (v0.8.3)
  7. Fedora 22 Alpha Now Available For AArch64 & PowerPC64
  8. Systemd Developers Did NOT Fork The Linux Kernel
  9. PulseAudio 7.0 To Enable LFE Remixing By Default
  10. Features & Changes Coming For Mir 0.13
Most Viewed News This Week
  1. Introducing The Library Operating System For Linux
  2. Improved OpenCL Support For Blender's Cycles Renderer
  3. Allwinner Continues Jerking Around The Open-Source Community
  4. Open-Source Driver Fans Will Love NVIDIA's New OpenGL Demo
  5. GNOME 3.16 Released: It's Their Best Release Yet
  6. Systemd Change Allows For Stateless Systems With Tmpfs
  7. Ubuntu 15.04 Final Beta Released
  8. Nuclide: Facebook's New Unified IDE