oneTBB
oneTBB copied to clipboard
haiku: Add initial platform support
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.
Seems related with: https://github.com/oneapi-src/oneTBB/pull/580
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
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 ?
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.