Date: Mon, 8 Dec 2014 02:04:06 -0800 From: Garrett Cooper <yaneurabeya@gmail.com> To: Alfred Perlstein <alfred@freebsd.org> Cc: FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: Re: cross installing freebsd? Message-ID: <26F569E9-3E70-4CE7-810F-5427FF1C7EA0@gmail.com> In-Reply-To: <613884DA-F978-4D9F-9E37-D39581EFEA61@freebsd.org> References: <5483AE21.8090306@freebsd.org> <D925B118-113F-42CB-8F1F-6B9087F0CF4D@gmail.com> <613884DA-F978-4D9F-9E37-D39581EFEA61@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Dec 7, 2014, at 21:48, Alfred Perlstein <alfred@freebsd.org> wrote:
>> Hi Alfred,
>> Reading your examples...
>> 1. I’m wondering if we should formalize CROSS_BUILD_TESTING in Makefile.inc1:
>>
>> 188 .if ${MACHINE} == ${TARGET} && ${MACHINE_ARCH} == ${TARGET_ARCH} && !defined(CROSS_BUILD_TESTING)
>> 189 OBJTREE= ${MAKEOBJDIRPREFIX}
>> 190 .else
>> 191 OBJTREE= ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH}
>> 192 .endif
>>
>> 2. MAKEWHATIS seems like it should be added to ITOOLS. Do you agree?
>> 3. Seems like strip should be added to ITOOLS if CROSS_BUILD_TESTING is defined (or at the very least LOCAL_ITOOLS).
>> 4. Why did you need to explicitly define the path to INSTALL?
>> Thanks!
>
> To be honest I have a gist as to what you're saying but I think the build is suffering from shibboleth-itis. Meaning it's not serviceable unless you're intimately familiar with it…
Right. I didn’t know about all of these magic things until I started reading the Makefiles :).
> I *guess* that ITOOLS or maybe LOCAL_ITOOLS means programs needed to installworld/installkernel?
Yes. Basically for things that can be replaced while make installworld is run, or as Makefile.inc1 says…
"# Required install tools to be saved in a scratch dir for safety.”
All the libraries for the tools are backed up so if the tools get replaced while make distributeworld/installworld is running, your system won’t be hosed (that’s why make installworld works for me the majority of the time, if cp gets replaced and ABI changes — not always, but oftentimes).
> If so, then yes, makewhatis needs to be added to that.
Review opened for that issue: https://reviews.freebsd.org/D1280
> As far as everything else written:
> no idea what "CROSS_BUILD_TESTING" means, it's not documented anywhere I can see in the makefile.
It’s something that ru@ introduced (probably to do comparisons between architectures). I haven’t quite tracked down why make tinderbox works with TARGET_ARCH/TARGET set to the host values, but I’ll probably figure it out soon.
> I can't decode if there will be a target that "just works" for doing a cross-install, will there be? What will it be named and how will people invoke it?
>
> Can we have cross-installworld and cross-installkernel targets please?
Setting TARGET/TARGET_ARCH should be sufficient in an ideal world. Jumping through hoops to do this with a myriad of variables which should be automatically determined via sane defaults seems wrong/unusable… there shouldn’t be a reason for why we need to introduce autoconf variable style hell for building/installing world, unless someone is intentionally skating around sane defaults.
I think that creating more custom targets will only complicate/muddle the build process, and create more potential for bugs like the one that I just addressed with xdev.
Thanks!
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org
iQEcBAEBCgAGBQJUhXeWAAoJEMZr5QU6S73edM0H/iuNhF/ZGdu8+NvVzr6krQ3s
rkzNWELvsL/mDDgs6ItZqGW3gbE0y9sej3tsKjFmkn/d3AZNygZDSyaIjjLRla6d
iSi1dc8uhE1oDEAZuChr7qhudEQ2IEcb0WbGhPoHgdO4Ts0KK6PWku6ZikdhJKoI
KVtsm56cO0UjpqCoLoviBdEyloecpbYYGFkGl5zexuHgAbMmM4jB4KHtsLUX3uH0
Zih2K89MxBrE5kxaBpSAawylDo2TEz8W6Bp6v0Hcn7E+QlTDS8HOhJ9OYWLz7r14
ibtVUiBGKOA1D7jWDm/y9zdyZOe0xzurbrDteiMeyxQcDaZNygQ7Cfxelhpy+vo=
=HtXj
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?26F569E9-3E70-4CE7-810F-5427FF1C7EA0>
