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 R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  2. Intel Pentium G3258 On Linux
  3. SilverStone Precision PS10
  4. ASRock Z97 Extreme6
Latest Linux Articles
  1. KVM Benchmarks On Ubuntu 14.10
  2. X.Org Server 1.16 Officially Released With Terrific Features
  3. Ubuntu With Linux 3.16 Smashes OS X 10.9.4 On The MacBook Air
  4. Preview: Benchmarking CentOS 7.0 & Scientific Linux 7.0
Latest Linux News
  1. Fedora 21 Has Been Delayed By Three Weeks
  2. Mono Begins To Focus On Performance, Assembles A Team
  3. Oracle Linux 7 Released Today As Its RHEL7 Clone
  4. Unigine Develops City Traffic System, A Driving Simulator
  5. Intel 3.0 X.Org Driver Still Baking, New Development Release
  6. Eric Anholt Makes Progress With Broadcom VC4 Graphics Driver
  7. Intel Is Getting Very Close To OpenGL 4.0/4.1/4.2 Mesa Support
  8. Valve Is Still Hiring For SteamOS, Linux Work
  9. Users Warned About Possible Regressions With DRI3
  10. GNOME Shell Gets Wayland HiDPI Fonts, Mutter Gets Touch Gestures
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. Radeon related kernel bug??
  3. AMD Publishes Open-Source Linux HSA Kernel Driver
  4. Next-Gen OpenGL To Be Announced Next Month
  5. Open-Source Radeon Performance Boosted By Linux 3.16
  6. Remote gui not accessible in Phoronix Test Suite 5.2
  7. AMD "Hawaii" Open-Source GPU Acceleration Still Not Working Right
  8. In Road To Qt, Audacious Switches From GTK3 Back To GTK2