Crossbuilding DFly on old FBSD

Barry Bouwsma freebsd-misuser at remove-NOSPAM-to-reply.NOSPAM.dyndns.dk
Tue Jun 8 02:26:05 PDT 2004


[As a non-subscriber, I'm not sure if this will get through via
 mail.  Also, my address above is IPv6 only; removing only the
 hostname part makes it work everywhere, but then only when I'm
 online which is unfortunately rare these days.  So, keep any
 replies on the list and I'll try to catch up later from the
 archives/newsfroup.  thanks]


Well hello there.

I note that in the DFly building instructions, it's said that one
can use an up-to-date FreeBSD4 system to crossbuild DragonFlyBSD.

Is there any interest in getting this to work with, say, a not-so-
up-to-date FreeBSD4, or perhaps something entirely different?

What I have is a userland from several years ago on my FreeBSD4
machine, on which I cross-build DFly.  Needed to work around a
few difficulties along the way, but eventually I completed the
buildworld.  (Need to do it again with the benefit of knowledge
gained, to verify it wasn't a fluke after all.)

Would anyone be interested to know where I needed to hack the
source in order for my compilation to succeed, in order to
incorporate proper fixes into DragonFly?

The problems include `patch' now taking an option unsupported
by my old native `patch'; different includes files over the
years; an out-of-date `makeinfo' (probably at a time when no
doc needs to be built anyway).  Still-older systems might have
additional problems.



I'm sure you're aware that NetBSD now has a build infrastructure
that permits a successful crossbuild on pretty much anything.
Rather impressive.  I'd like to see the same for all BSDen,
as over time they diverge from their common ancestry and cross-
building becomes difficult...




thamnks
barry bouwsma

Addendum:  I've taken a look at the NetBSD build process to see
if I could steal any of those ideas, and come up with something
slightly better than my original gross hacks.  Basically,
:-)  I've added another target to the top-level makefile, which
     builds a basic includes directory, and then given that
     priority in the search path, to get up-to-date headers;
:-)  I've frobbed one of the crossbuild targets to do the above
     before building bootstrap tools -- it seems this would
     avoid the need to `make includes' that occasionally is
     given as advice when people have problems, if done routinely;
:-)  I've disabled building of the documentation in the tools
     stages;
:-)  I changed the `patch' reference to something that can be
     overridden, and invoked it as the `patch' built in the
     bootstrap-tools process.  Perhaps it would be preferable
     for me to frob the PATH during the build to give preference
     to just-built tools, which should automagically use the
     newer `patch', but I didn't.  That solution may well fix
     other problems I didn't have too, as might using the
     above include directory everywhere.

I'd be happy to divulge my hacks to do the above, unless the
ideas are All Wrong, though someone with reasonable makefile
competence can undoubtedly convert the above ideas into proper
code, rather than risk nausea by seeing my crude hacks.

(oh yeah, the build from scratch completed, woo hoo)






More information about the Kernel mailing list