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 Linux Hardware Reviews
  1. AMD Launches New FX CPUs, Cuts Prices On Existing Processors
  2. Preview: AMD's FX-9590 Eight-Core At Up To 5.0GHz On Linux
  3. Intel Launches The Core i7 5960X, Mighty Powerful Haswell-E CPUs
  4. AMD Radeon R9 290: Gallium3D vs. Catalyst Drivers
Latest Linux Articles
  1. LLVM Clang 3.5 Brings Some Compiler Performance Improvements
  2. Ondemand vs. Performance CPU Governing For AMD FX CPUs On Linux 3.17
  3. How Intel Graphics On Linux Compare To Open-Source AMD/NVIDIA Drivers
  4. The Fastest NVIDIA GPUs For Open-Source Nouveau With Steam Linux Gaming
Latest Linux News
  1. POCL Is Maturing Well For Running OpenCL On The CPU
  2. New Group Calls For Boycotting Systemd
  3. The Features To Find With The Imminent Release Of LLVM/Clang 3.5
  4. Borderlands 2 Is Coming To Linux
  5. The Witcher 2 Ups The Performance More & Works Around Catalyst Bug
  6. Running Gallium3D's LLVMpipe On The Eight-Core 5GHz CPU
  7. Trying Intel OpenCL On Linux For Video Encoding
  8. GSoC 2014 Yielded Some Improvements For Mesa/X.Org This Year
  9. webOS Lives On As LuneOS With New Release
  10. Marek Lands Radeon Gallium3D HyperZ Improvements
Latest Forum Discussions
  1. Lennart Poettering Talks Up His New Linux Vision That Involves Btrfs
  2. nv and xorg.conf under Debian PPC
  3. AMD graphics doesn't work with AMD Catalyst drivers
  4. Best Radeon for a Power Mac G5?
  5. The dangers of Linux kernel development
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. AMD Releases UVD Video Decode Support For R600 GPUs
  8. SSD seems slow