Building Haiku x86_64 from within Ubuntu Bionic Beaver

I did the following, in this order, using the instructions provided from the site:

  1. sudo apt install git nasm autoconf automake texinfo flex bison gawk build-essential unzip wget zip less zlib1g-dev xorriso libtool mtools gcc-multilib python3

  2. git clone https://review.haiku-os.org/buildtools

  3. git clone https://review.haiku-os.org/haiku

  4. cd haiku

  5. mkdir generated.x86_64

  6. cd generated.x86_64

  7. …/configure --build-cross-tools x86_64 …/…/buildtools

  8. jam -q -j2 @nightly-anyboot

At #8, it told me: "Command ‘jam’ not found, but can be installed with:

sudo apt install ftjam
sudo apt install jam

I assumed I should use “sudo apt install jam”, because I didn’t know what “ftjam” was.

Upon trying to jam again, it told me: “You can only build Haiku with Haiku’s Jam, not Perforce Jam or some other variant (you are using 2.6).”

Thinking maybe I needed to run …/configure again, I tried, and it said:

“…/configure: could not find setfattr, assuming host has no extended attributes.” and quit, saying the crosstools already exist and that it was configured successfully.

So, it won’t let me Jam, because I don’t have Haiku’s Jam and, try as I might, I can’t find anything anywhere that explains why or how to solve.

You have to install Haiku’s jam:

This is the third or fourth time we link this to you, why dont you read it?

Ok, I went to /buildtools/jam and typed “make” and then “sudo ./jam0 install” and it still is telling me that I need to use Haiku’s Jam, when I go to the generated.x86_64 directory and try to run Jam. Do I need to reboot? If not, what am I missing? I’m reading that page and I see NOTHING I haven’t already done! Except some “setfattr” thing that the ./configure command is telling me isn’t found. Is THAT what is missing?

Remove the jam what you installed with apt. You shouldnt install that in the first place.

Not sure how to do that, but even if I do, I’m still stuck with:

Command ‘jam’ not found, but can be installed with:

sudo apt install ftjam
sudo apt install jam

So, HOW do I build the Haiku version of Jam, if the way I’ve tried is not working? Or are the two versions (one that I sudo’d and the other one which I "make"d) now conflicting with each other? And removing the one will release the other, to function correctly?

Ok, all I needed to do was reboot. Then I did a “jam -v” and it showed the correct Haiku version. No need to remove the Jam I installed with sudo apt.

Ok, call me TOTALLY blown away!

No need for a new computer. My AMD FX (Vishera) system, with Ubuntu “Bionic Beaver” (what a crazy name!) is PERFECTLY fine!

I downloaded both /buildtools and /haiku within MINUTES, at 5-7Mbytes/sec, not the glacial 350Kbytes/sec in Haiku x86_64. How on EARTH is Haiku’s networking that slow? Is Ubuntu using some proprietary code that unleashes extra bandwidth or something? If Haiku is using BSD implementation of networking, is BSD that slow also?

Of course, with Haiku’s inability to handle more than two cores on my AMD FX (Vishera), it’s kind of a pointless venture to use Haiku to build Haiku on this system, so it’s nice to find out that Ubuntu unleashes all the potential I can’t get otherwise.

And Jam completed a fresh (1st time) build of Haiku x86_64 in a shocking 8 minutes!!!

WHOO-HOO! AUSA!

It’s a beta version of Haiku, the kernel is built in debug mode, we have not even started to optimize anything. We’ll do that someday. It’s not BSD fault, Netflix servers run BSD and I’m fairly sure they do need the network to perform… reasonably well?

Is there a way to disable debug mode, just to see what the speed difference would be?

Haiku does not use BSD’s network stack as far as I know. It uses a driver compatibility layer to be able to use network drivers from FreeBSD. Most WiFi and some ethernet drivers use it.

As far as I remember, there were some TCP/IP optimizations done as GSOC project a few years ago. Have they been merged already?

Yes, they have.

1 Like