Sep 252012
 

Haiku LogoAnd so the quest continues, today, a new operating system type: BeOS, in its modern open source form: Haiku. BeOS was originally developed in the 90s as a multimedia operating system to compete with Microsoft Windows and Apple MacOS. However, the operating system never quite took off. In more recent times, the entire OS has been resurrected under a new, japanese name: Haiku.

Still featuring a BeOS style kernel, the OS has been equipped with a lot of Posix & GNU tools to easy the pain of porting and developing software for the OS. It actually looks and feels very tidy, fast and cool.

In recent development builds, there are even versions with GCC 4.6 shipped, but on top of that, what you get is also a complete modern GNU build toolchain, including but not limited to yasm, autoconf, make, imake etc. So I tried to build and link libav and x264 obviously, but failed. One problem was that some OS functions (like Posix thread implementation) are implemented in different libraries (libroot instead of libm or libpthread), so modifications of linker flags are necessary, e.g. -lroot instead of -lm.

But there were more severe problems prohibiting me from linking x264 against libav or ffmpeg itself. I have as of yet not been able to fully figure out why, but it’s most definitely a linker problem with failing library/header detections and even missing references on linking. Maybe some of the libs are even actually missing, but I am not sure why they wouldn’t have built when compiling libav and/or ffmpeg. Well, maybe I’ll manage in the future, meanwhile, check out this Haiku screenshot, it does look rather cool:

Haiku Screenshot

CC BY-NC-SA 4.0 x264+libav on Haiku: A failure by lacking skill © 2012 by The GAT at XIN.at is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  4 Responses to “x264+libav on Haiku: A failure by lacking skill”

  1. If you have too much time, try the x264 benchmark on MenuetOS:
    http://www.menuetos.net/

    • The systems I managed to compile libav+x264 on so far have one thing in common: They are all POSIX, or at least “almost POSIX” like OpenSolaris. Even Windows, when used with CygWin… Haiku was an oddball with some functions found in strange libraries, partly similar to some problems I have also encountered on Solaris, but I managed.

      But there are some areas that are simply over my head! One was [FAFNER], the VAX 7000/820 of a german professor running OpenVMS (sadly shut down and replaced with OpenVMS on ALPHA now). The guy gave me telnet access to that antiquity, but porting something over to using OpenVMS’ own build system+compiler was far, FAR too hard for me. The entire system, even the command line and FS structure were extremely weird and alien.

      And one such area is MenuetOS. I can handle some BSDs, even Haiku and Solaris now, but there are systems so far away from any common standards, that editing some configure scripts, Makefiles and small parts of C/C++ code just won’t cut it. ;) There isn’t even a GCC or LLVM! ;)

  2. It’s actually a cool and helpful piece of info. I am happy that you simply shared this useful information
    with us. Please stay us informed like this. Thank you for sharing.

    • Actually, I managed to [get it done] in the meantime! The corresponding guide hasn’t been published on this weblog directly, but added to my [x264 benchmark project] instead. Here is the link:

      [Building x264+libav on Haiku OS]

      It’s partially specific to my x264 benchmark, but the parts about libav and x264 itself are pretty generic. So with that you should be able to get your libav+x264 build done on Haiku. Not sure whether there were any changes in the past months, but I guess this still works as it did back then!

 Leave a Reply

CC BY-NC-SA 4.0 logo GPLv3 logo All text and images/files you post here will be implicitly licensed under the free [CC BY-NC-SA 4.0] license, and all source code you post will be implicitly licensed under the free [GNU General Public License version 3.0] unless explicity stated otherwise by yourself in your comment!

Warning 1: This site runs very modern software on an [ancient server] with four Pentium II Overdrive 333MHz CPUs. It's really slow when handling comments! Please click on "Submit Comment" only once! Do not click repeatedly, or the spambot detection system may ban you! Even if you land on a "white page of death" or receive a timeout, do not re-send your comment, it'll likely still have gone through. Consider re-sending it only if I haven't approved it within a few days. Check the newest post on this weblog to make sure I'm not on vacation or something, increasing the time it'd take for me to approve comments.

Warning 2: This site uses [Akismet] to reduce spam. The following parts of your comment data need to be shared with its operator, [Automattic]: IP, nick name, eMail, user agent, referrer, URL and the comments' content. [Learn how your comment data is processed].

Note: Your eMail address will not be published!

You may use these HTML tags and attributes: <em>⋯</em> <i>⋯</i> <b>⋯</b> <s>⋯</s> <u>⋯</u> <sub>⋯</sub> <sup>⋯</sup> <strike>⋯</strike> <strong>⋯</strong> <p style="">⋯</p> <code>⋯</code> <pre lang="" line="" escaped="">⋯</pre> <a href="" title="">⋯</a> <abbr title="">⋯</abbr> <acronym title="">⋯</acronym> <blockquote cite="">⋯</blockquote> <cite>⋯</cite> <q cite="">⋯</q> <span style="">⋯</span>. You may also use the [spoiler][/spoiler] shortcode to insert spoilers.

(required)

(required)