[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