> Having all the core components in-tree makes it a lot easier to maintain > the system cleanly in lock-step, add support for OS-specific features in > lock-step with the OS release, deploy to new targets, update to new ABIs, > and otherwise manage the core system as a cohesive whole. That's not true. We don't blindly use svn:externals or similar tools, but use a clearly identified version of the external packages. So, we can update them only as needed and matching the OS releases if we need so. We used to copy all the 3rd party sources inside our tree. This was changed for several reasons : - We had to convert all the build systems to use jam instead of their own stuff. This usually introduces bugs in the 3rd-party software - Updates have to be done manually, and it's a mess of merging/reworking our patches against mainline sources - Building all this stuff makes the Haiku build longer and more memory hungry than it needs to be. The argument that bootstrapping a new target is a problem is still valid. But the Haiku build system makes it quite easy to build a toolchain for other archs and use it for building the software. The proper fix is to make haikuporter (and/or setgcc) aware of the different compilers. -- Adrien.