Date: Sat, 4 Jan 2014 17:30:27 -0800 From: Adrian Chadd <adrian@freebsd.org> To: Nathan Dorfman <na@rtfm.net> Cc: "freebsd-mips@freebsd.org" <freebsd-mips@freebsd.org> Subject: Re: Couple of snags cross-installing after cross-compiling Message-ID: <CAJ-Vmo=P6a5U%2B_9ztHhP9shmXhRVhUXWwC4=YwZGZb0bJtHX%2BQ@mail.gmail.com> In-Reply-To: <CADgEyUuGxaydh%2BwiHR8Z%2BAS4AUAFDV%2B8CqC7xNVP1HeDKiBPdA@mail.gmail.com> References: <CADgEyUuGxaydh%2BwiHR8Z%2BAS4AUAFDV%2B8CqC7xNVP1HeDKiBPdA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi! Cool! would you mind filing a PR with this information? I think your analysis (strip -> ITOOLS) is correct. Thanks! -a On 4 January 2014 11:35, Nathan Dorfman <na@rtfm.net> wrote: > Hello all, > > I have a small FreeBSD/mips machine (the EdgeRouter Lite), and I want to > cross-build world and kernel on my larger amd64 machine, then install the > result on the target system. I'm doing this by exporting via NFS from the build > machine, and it seems to be working well, just two small snafus along the way. > Hopefully this isn't considered crazy and unsupported, because it almost > works. :) > > Note: this is releng/10 (r260251), not head. > > The only trouble is that buildworld produces a toolchain for the host, not > target, machine in $WORLDTMP, which is first in the PATH for subsequent > commands. So, when installkernel is run on the mips64 target, it tries to > execute those amd64 binaries: > > -------------------------------------------------------------- > >>> Installing kernel ERL > -------------------------------------------------------------- > cd /usr/obj/usr/src/sys/ERL; [...] > PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin > make KERNEL=kernel install > > cc: Exec format error > make[2]: "/usr/src/share/mk/bsd.compiler.mk" line 9: warning: "cc > --version" returned non-zero status > [...] > > If for some reason installworld is run first, it fails similarly. To get around > this, all that's needed is rm -rf $WORLDTMP. The install proceeds using the > tools in /bin and /usr/bin. I also tried changing the definition of WORLDTMP in > Makefile.inc1 from just 'tmp' to 'tmp.$(MACHINE_ARCH)' before running the > buildworld, and that works to stop this error before it occurs. > > This probably isn't right since I think I want to be running new, not > previously installed, binaries here. There's no cross-compiling of $WORLDTMP, > but can I just point it at the entire freshly built world, /usr/obj/usr/src, > instead? In any case, for the time being, with the wrong-arch $WORLDTMP not > there, installkernel succeeds and installworld proceeds to fail slightly later, > with this: > > ===> lib/libc (install) > install -C -o root -g wheel -m 444 libc.a /usr/lib > install -C -o root -g wheel -m 444 libc_p.a /usr/lib > install -s -o root -g wheel -m 444 -fschg -S libc.so.7 /lib > install: exec(strip): No such file or directory > > Here, the default system path (/usr/bin, etc.) is not in the PATH; it consists > only of the various subdirs of $WORLDTMP, followed by one new directory > /tmp/install.3aqj2XwQ. I noticed that this path was only just created by a > preceding step, and easily fixed the error by adding strip to the list of > ITOOLS= in Makefile.inc1. > > Here's what's confusing: why does that /tmp/install directory exist in the > first place? It's behind $WORLDTMP in the path, so under normal circumstances, > it wouldn't be used. I began to suspect that might be unintentional, but I > don't know much about the FreeBSD build system, so I'd like to ask someone who > does! > > Anyway, after adding strip to ITOOLS, installworld also succeeds, and life is > good. > > Thanks, > -nd. > _______________________________________________ > freebsd-mips@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-mips > To unsubscribe, send any mail to "freebsd-mips-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=P6a5U%2B_9ztHhP9shmXhRVhUXWwC4=YwZGZb0bJtHX%2BQ>
