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. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  2. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  3. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
  4. AMD Radeon R9 285 Tonga Performance On Linux
Latest Linux Articles
  1. Ubuntu 14.10 XMir System Compositor Benchmarks
  2. Btrfs RAID HDD Testing On Ubuntu Linux 14.10
  3. Ubuntu 14.10 Linux 32-bit vs. 64-bit Performance
  4. AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver
Latest Linux News
  1. Open-Source, Linux Support For Corsair Link Devices Slowly Materializing
  2. Cairo-Dock 3.4 Shows A Lot Of Progress, Works Toward EGL/Wayland Support
  3. Mesa 10.4 Tentatively Planned For Early December
  4. SteamOS Update 145 Brings Compositor, Update Fixes
  5. GStreamer 2014 Conference Videos Posted: Wayland, HTML5, 3D
  6. Nouveau Now Supports DRI3 Without GLAMOR
  7. Features Of The Linux 3.18 Kernel
  8. Debian Now Defaults To Xfce On Non-x86 Desktops
  9. Phoenix Is Trying To Be An Open Version Of Apple's Swift
  10. Linux 3.19 To Have Skylake Graphics, PPGTT Enablement
Latest Forum Discussions
  1. HOPE: The Ease Of Python With The Speed Of C++
  2. Users/Developers Threatening Fork Of Debian GNU/Linux
  3. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  4. AMD Releases UVD Video Decode Support For R600 GPUs
  5. Proof that strlcpy is un-needed
  6. xbox one tv tuner
  7. Bye bye BSD, Hello Linux: A Sys Admin's Story
  8. Updated and Optimized Ubuntu Free Graphics Drivers