[prev in list] [next in list] [prev in thread] [next in thread]
List: haiku-bugs
Subject: [haiku-bugs] Re: [Haiku] #11878: bootstrap is complex and error prone
From: "bonefish" <trac () haiku-os ! org>
Date: 2015-02-28 15:25:40
Message-ID: 060.c4e34ae2db273c405b12176300a9c1c8 () haiku-os ! org
[Download RAW message or body]
#11878: bootstrap is complex and error prone
----------------------------+----------------------------
Reporter: kallisti5 | Owner: bonefish
Type: enhancement | Status: new
Priority: normal | Milestone: R1
Component: Build System | Version: R1/Development
Resolution: | Keywords: bootstrap
Blocked By: | Blocking:
Has a Patch: 1 | Platform: All
----------------------------+----------------------------
Comment (by bonefish):
Replying to [ticket:11878 kallisti5]:
> Our current bootstrap process is extremely complex and error prone. We
really need to reduce some of the complexity of the initial bootstrap.
Port progress is at a standstill as you have to have an entire bootstrap
completed before doing any port work on bootloader, kernel, etc.
Save for Ithamar's BeGeistert spurts of activity and the x86-64 port, port
progress has been at a standstill for about a decade. And that really
doesn't have anything to do with our bootstrap process. In fact we didn't
even have one before PM, i.e. the situation has much improved already.
For a pre-userland boot -- which is the state of all non x86* ports -- you
don't even need to build a complete image. You should get away with
defining a minimal image and adapting/hacking a few source packages
(probably only zlib and libsolv).
> Ideas:
> * Create a new single repo with the most basic tools forked. We tune
the build scripts to be easily executable within the initial bootstrap
environment. We generate one haiku_bootstrap_env hpkg that provides a
basic environment. (coreutils,awk,bison,curl,mawk,flex,m4,make,sed)
That is basically what we already do. haikuports.cross is that repository.
I don't see any advantage in building everything into a single package
instead of building multiple packages as we do now. The bootstrap process
obviously builds a lot more than you need for just booting the system
(since it needs to be a complete build environment). But that's just a
question of defining a respective image, so that only the required subset
is built.
> * Fork busybox to provide all of the core utils + sed,awk,wget,etc. I
have a busybox binary generated on Haiku after some tweaking... their
build system is really rough however and can be flaky when automated.
Sure, add a recipe to haikuports.cross.
> * Introduce a new @basic-raw target which doesn't require a bootstrap.
Just include bootloader, filesystem drivers, kernel.
Yep, that makes a lot of sense. As mentioned above, you will need a few
source packages already, though. I wouldn't call the profile `basic`. We
already have `minimal` which contains a lot more. I'd suggest something
like `kernel-only`.
--
Ticket URL: <https://dev.haiku-os.org/ticket/11878#comment:4>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic