oneTBB icon indicating copy to clipboard operation
oneTBB copied to clipboard

haiku: Add initial platform support

Open kallisti5 opened this issue 2 years ago • 4 comments

Description

Adds initial platform support for Haiku.

Fixes https://github.com/rui314/mold/pull/369

Type of change

Choose one or multiple, leave empty if none of the other choices apply

Add a respective label(s) to PR if you have permissions

  • [ ] bug fix - change that fixes an issue
  • [X] new feature - change that adds functionality
  • [ ] tests - change in tests
  • [ ] infrastructure - change in infrastructure and CI
  • [ ] documentation - documentation update

Tests

  • [ ] added - required for new features and some bug fixes
  • [X] not needed

Documentation

  • [ ] updated in # - add PR number
  • [ ] needs to be updated
  • [X] not needed

Breaks backward compatibility

  • [ ] Yes
  • [X] No
  • [ ] Unknown

Notify the following users

@rui314

Other information

This is enough to get oneTBB functional under Haiku when used within the meld linker. However, oneTBB needs some refactoring around the outdated ucontext code https://github.com/oneapi-src/oneTBB/issues/795 as it is not POSIX compliant.

kallisti5 avatar Feb 28 '22 23:02 kallisti5

Seems related with: https://github.com/oneapi-src/oneTBB/pull/580

pavelkumbrasev avatar Mar 02 '22 12:03 pavelkumbrasev

Oh, #580 seems to be implemented much better than my patchset. That one has been sitting around since 2021... what needs to happen on it?

kallisti5 avatar Mar 02 '22 14:03 kallisti5

@kallisti5

That one has been sitting around since 2021... what needs to happen on it?

There are some permanent problem with support platforms like HAIKU :

  • lack of resources to support them in the CI, thus if it silently brakes - CI will not raise a flag
  • lack of expertise in the team properly keep things working without CI

If you feel a power to volunteer help with let us know :)

Still we will try our best to integrate provided patches, at least to some degree.

@kallisti5 , @extrowerk Which one of these two #796 and #580 patches is more perspective to start review/integration with ?

anton-potapov avatar Mar 30 '22 10:03 anton-potapov

There are some permanent problem with support platforms like HAIKU :

lack of resources to support them in the CI, thus if it silently brakes - CI will not raise a flag lack of expertise in the team properly keep things working without CI

I think these problems exist for most non-mainstream operating systems. As an example your CI pipelines only test ubuntu, while a low-moderate percentage of the Linux ecosystem uses purely Ubuntu. FreeBSD / NetBSD / etc aren't covered either.

Most of the testing of these ports happens outside of the main projects they originate from. Haiku's port system does actually automatically build and test software packages. (much like gentoo portage)

Here's an example recipe: https://github.com/haikuports/haikuports/blob/master/app-misc/task/task-2.6.0~git.recipe#L81

Today we have over 6,966 of these ports.

Here's the CI pipeline that builds all of these recipes for x86_64: https://build.haiku-os.org/buildmaster/master/x86_64/

Haiku currently will not run in containers (Haiku isn't Linux after all), but it does run at cloud providers in vm's and we offer vagrant boxes for automated testing tasks: https://app.vagrantup.com/haiku-os/boxes/r1beta3-x86_64

The general model for Haiku support in projects is "best effort". We groom any fixes / repairs in things like Haikuport recipes, and we upstream the fixes as time permits. This is roughly the same model ArchLinux, Debian, FreeBSD, Gentoo, etc follow.

kallisti5 avatar Mar 30 '22 13:03 kallisti5