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

The State Of Gentoo FreeBSD: Gentoo Sans Linux

BSD

Published on 03 July 2012 10:07 AM EDT
Written by Michael Larabel in BSD
13 Comments

To some surprise, Gentoo FreeBSD -- the port of Gentoo running with the FreeBSD kernel rather than the Linux kernel -- is progressing.

Following last month's Phoronix articles of DragonflyBSD 3.0 vs. Debian GNU/kFreeBSD Wheezy and Debian Wheezy GNU/kFreeBSD: Slower Than Linux, Gentoo FreeBSD was brought up within the Phoronix Forums. Gentoo FreeBSD is just like Debian GNU/kFreeBSD, except that it's built around Gentoo rather than pairing the Debian GNU user-land with the non-Linux kernel.

There's also a Gentoo OpenBSD version, but the OpenBSD kernel port for Gentoo isn't as advanced or maintained as the FreeBSD version. Ryao, a Phoronix reader and Gentoo developer, wrote in the forums with more details about the state of Gentoo FreeBSD.
unmaintained/broken probably better describes Gentoo OpenBSD, which currently only lives in our hearts. Gentoo FreeBSD is in fairly good shape, but very minimal development was done due to a lack of developer resources until late last year/early this year. Around that time, the pace of development started to increase. This enabled us to reach a few milestones in the past few months:

1. Gentoo FreeBSD gained amd64 support
2. Gentoo FreeBSD has been updated to FreeBSD 9.0
3. Clang now compiles Hello World programs and nearly all of the packages in the @system set
4. Users can replace pkgconfig with the BSD-licensed pkgconf. This removes the @system set's dependency on glib, but it is not *BSD-specific.

There are some notable things that currently do not work, but most of them have workarounds:

1. GCC 4.6 and up are unable to compile the bootloader. This one is an upstream issue, but people are working on it. For the time being, use either GRUB/GRUB2 or compile sys-boot/boot0 with GCC 4.5.x or earlier.
2. multilib support is broken. Do a 32-bit chroot/jail.
3. GNU Screen is broken. Use tmux with GNU Screen bindings.
4. The X server has not been tested in years. X11 Forwarding works, KDE builds and the Nvidia driver supports the platform.
5. Machine virtualization is in bad shape. KVM client support is in portage, the bug tracker has an ebuild for qemu-kvm and kernel modules for KVM host support are in development. The bug tracker also has an ebuild for open-vm-tools-kmod. Ebuilds to support virtualbox's guest addons and open-vm-tools' userland utilities are planned.
6. Linux emulation support lacks 64-bit support. This is an upstream issue. You can get away with 32-bit binaries for now. No one is working on this one.

There are only a few people (out of roughly 260 Gentoo developers) actively making commits for Gentoo FreeBSD and our time is limited, but development is going at a good pace. I hope to see Gentoo FreeBSD reach parity with Gentoo Linux sometime next year. And by parity, I mean ahead in some areas (e.g. ZFS, Dtrace, Jails, Clang), behind in some areas (e.g. 3D graphics, ISA support, embedded software support) and equal in most areas.

As far as installing Gentoo FreeBSD is concerned, there is a very helpful wiki page on the procedure that a retired Gentoo developer wrote (after he retired):

http://wiki.gentoo.org/wiki/Gentoo_FreeBSD

Just make sure that you build sys-boot/boot0 with GCC 4.5.3. You can do this by doing `emerge sys-devel/gcc:4.5` and then `env CC=gcc-4.5.3 emerge --oneshot sys-boot/boot0`. As for building the kernel, you can install Clang and then use CC=clang when building it to build it with Clang. Also, I know that you like to build things with generic CFLAGS, but unfortunately, that is ridiculous when one of the major strengths of your distribution is that you can customize the CFLAGS with basically no effort. As such, I would like to ask that you test two versions of Gentoo FreeBSD. One with whatever you normally use and another with CFLAGS="-O2 -march=native" CXXFLAGS="${CFLAGS}" in /etc/make.conf. That should produce a fair comparison.

Also, if you want to test a Clang-built system, you can try something like `env CC=clang CXX=clang++ MAKEOPTS=-j5 emerge --keep-going --jobs=5 -ave @world`. That will attempt to rebuild everything with Clang and give you another OS configuration to test. 5 to 6 packages will fail (boot0 included if I recall). There are patches in the bug tracker for most of them. Binutils will also among them, which is due to a regression in 2.22 that we have not had time to fix. Binutils 2.20 is not affected.
More information on Gentoo FreeBSD is available from the Gentoo Wiki.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Articles & Reviews
  1. NVIDIA's $1000+ GeForce GTX TITAN X Delivers Maximum Linux Performance
  2. OS X 10.10 vs. Ubuntu 15.04 vs. Fedora 21 Tests: Linux Sweeps The Board
  3. The New Place Where Linux Code Is Constantly Being Benchmarked
  4. 18-GPU NVIDIA/AMD Linux Comparison Of BioShock: Infinite
  5. Phoronix Test Suite 5.6 Adds New Phoromatic Enterprise Benchmarking Features
  6. OpenGL Threaded Optimizations Responsible For NVIDIA's Faster Performance?
Latest Linux News
  1. Mesa's Android Support Is Currently In Bad Shape
  2. Wayland's Weston Terminal Can Now Be Minimized
  3. Phoronix - Working Towards Faster Page Loads
  4. Improved OpenCL Support For Blender's Cycles Renderer
  5. Mesa 10.5.2 Packs In A Handful Of Fixes
  6. More Fedora/Ubuntu Linux vs. OS X OpenGL Benchmarks
  7. Intel Adds Mesa IR To NIR Translator & Makes Other NIR Improvements
  8. HAMMER2 Gets A Man Page
  9. Kodi 14.2 Released To End Out The "XBMC" 14.x Series
  10. Debian 8.0 Jessie RC2 Installer Released
Most Viewed News This Week
  1. Introducing The Library Operating System For Linux
  2. Allwinner Continues Jerking Around The Open-Source Community
  3. AMD Is Hiring Two More Open-Source Linux GPU Driver Developers
  4. Systemd Change Allows For Stateless Systems With Tmpfs
  5. GNOME Shell & Mutter 3.16.0 Released
  6. GNU Nano 2.4.0 Brings Complete Undo System, Linter Support & More
  7. GNOME 3.16 Released: It's Their Best Release Yet
  8. Red Hat Is Rolling Out A VirtIO DRM/KMS GPU Driver