On 08/20/10 14:20, Dag-Erling Smrgrav wrote:
> Nathan Whitehorn<firstname.lastname@example.org> writes:
>> Next up: tinderbox needs to build GENERIC64, not GENERIC, on
>> powerpc64. make buildkernel is programmed to do the right thing is you
>> don't pass a KERNCONF, but tinderbox apparently passes GENERIC
>> explicitly. This one's in your court!
> There is no way to fix this with the current tinderbox code.
> MHO is that the entire powerpc64 thing is very poorly thought out.
I'm the first to admit that many of the config tricks involved in this
port, and GENERIC64, are ugly hacks, largely because config(8) was not
designed with such things in mind. But the alternatives were much worse:
- A sys/powerpc64 that duplicated most of sys/powerpc, which would have
been a maintenance nightmare (see sun4v).
- A sys/powerpc64 that was mostly symlinks and stub includes, which is
inelegant at best, and could cause kinds of fascinating problems for
user programs including things in machine/.
- Bunches of new make variables like TARGET_BIG_ENDIAN and TARGET_64BIT
and such like mips and arm have, which is way more awful, as well as
precluding tinderbox and make universe coverage in a reasonable way.
powerpc64 is the first architecture trying out this new
multi-architecture MACHINE approach, which Warner designed to kill off
things like TARGET_BIG_ENDIAN, so there are going to be some interesting
rough patches along the way, and I really appreciate your patience in
sorting them out.
To address the immediate problem, I think the best solution is to use
the -m option to config to reject kernel configs for different
architectures, the way the tinderbox scripts currently skip kernel
configs that they are asked to build that don't exist. If you think this
is a reasonable approach, I'm happy to code up a patch to tinderbox to
do this over the weekend. You can feel free to disconnect powerpc64 from
tinderbox in the interim.