Date: Sun, 01 Jun 2014 11:51:08 -0700 From: Alfred Perlstein <bright@mu.org> To: Jason Hellenthal <jhellenthal@dataix.net> Cc: FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: Re: Upgrading an i386 machine from amd64. Message-ID: <538B761C.7060300@mu.org> In-Reply-To: <B007D0DE-EFC1-49D8-9E6A-F4A24B66DB8C@dataix.net> References: <538B61EC.9000403@mu.org> <5B82C892-12A4-4251-B3D2-A6D3EAAF90F9@dataix.net> <538B6FCC.9090301@mu.org> <B007D0DE-EFC1-49D8-9E6A-F4A24B66DB8C@dataix.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 6/1/14, 11:42 AM, Jason Hellenthal wrote: > That would be nice. Could've swore there was something similar to that > but memory escapes me as I haven't done backwards cross compiles in > awhile. > > Curious have you done a svn status on your src tree in a while to see > if there are any stale depends laying around that may affect the > compilation ? I use git. :) But the build tree was completely clean. > > Also ALWAYS_CHECK_MAKE=YES defined in make.conf ? No, what does that do? I think once I get this sorted I will make a blog post on it, right now that blog post is basically: export TARGET=i386 make buildworld -j36 make buildkernel -j36 mkdir -p /mnt/target.local /mnt/target make installkernel installworld DESTDIR=/mnt/target.local mount i386target:/ /mnt/target rsync -avvH /mnt/target.local /mnt/target I thought though there was a way to get this to work, obviously there is a bug here that we lose "chflags" bits on install. I wonder if there's a way to restore or preserve them? -Alfred > > -- > Jason Hellenthal > Voice: 95.30.17.6/616 > JJH48-ARIN > > On Jun 1, 2014, at 14:24, Alfred Perlstein <bright@mu.org > <mailto:bright@mu.org>> wrote: > >> >> On 6/1/14, 10:34 AM, Jason Hellenthal wrote: >>> What if you just NFS mount the obj directory from the 386 to the >>> amd64 build world for 386 the mount the src on the i386 and just >>> rebuild strip and friends ? >>> >>> A little more of a hack i know but would get the job done. >> >> I tried that using install(1), then it broke with strip(1), then I >> basically was like, "this is a rabbit hole, forget it" and used rsync. >> >> I was really looking for a "buildinstalltools" or something target >> (as you suggest), but I couldn't find one. >> >> Is there an "buildinstalltools" target? >> >> -Alfred >>> >>> -- >>> Jason Hellenthal >>> Voice: 95.30.17.6/616 >>> JJH48-ARIN >>> >>> On Jun 1, 2014, at 13:25, Alfred Perlstein <bright@mu.org >>> <mailto:bright@mu.org>> wrote: >>> >>>> Hello hackers. >>>> >>>> Is there a way to build on amd64 and then mount over nfs the build >>>> and src and installworld from an i386 machine? >>>> >>>> The problem seems to be that "install" and "strip" and etc are >>>> built as amd64 binaries so that the installworld will fail. >>>> >>>> Below I have a solution I was going to do a blog post about, but >>>> then realized maybe I'd be leading people down the wrong path. >>>> >>>> Can someone verify that I need to use rsync as opposed to >>>> installworld for this to work? >>>> >>>> I have an old i386 based soekris geode box called "soekris": >>>> CPU: Geode(TM) Integrated Processor by AMD PCS (499.91-MHz >>>> 586-class CPU) >>>> Origin = "AuthenticAMD" Id = 0x5a2 Family = 0x5 Model = 0xa >>>> Stepping = 2 >>>> Features=0x88a93d<FPU,DE,PSE,TSC,MSR,CX8,SEP,PGE,CMOV,CLFLUSH,MMX> >>>> AMD Features=0xc0400000<MMX+,3DNow!+,3DNow!> >>>> real memory = 536870912 (512 MB) >>>> avail memory = 502792192 (479 MB) >>>> >>>> Building on this machine is difficult because of the speed and lack >>>> of space, so I decided to use my more powerful amd64 machine "spigot": >>>> CPU: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (3392.37-MHz K8-class CPU) >>>> Origin="GenuineIntel" Id=0x206a7 Family=0x6 Model=0x2a Stepping=7 >>>> ... >>>> real memory = 17179869184 (16384 MB) >>>> avail memory = 16585228288 (15816 MB) >>>> FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads >>>> >>>> So I've built an 10-stable on the amd64 machine using: >>>> >>>> spigot % TARGET=i386 >>>> spigot % make -j24 buildworld >>>> spigot % make -j24 buildkernel >>>> >>>> Works great, I get an i386 object tree under /usr/obj/i386.386/... >>>> >>>> Then I go to install this over NFS and this is where I get stuck. >>>> >>>> If I mount the i386 machine like so and install I get errors on >>>> libc and other libraries: >>>> >>>> spigot % mount soekris:/ /usr/soekris >>>> spigot % cd /usr/src && make installworld >>>> ..... >>>> ===> lib/libcrypt (install) >>>> install -C -o root -g wheel -m 444 libcrypt.a /usr/soekris/usr/lib >>>> install -C -o root -g wheel -m 444 libcrypt_p.a /usr/soekris/usr/lib >>>> install -s -o root -g wheel -m 444 -fschg libcrypt.so.5 >>>> /usr/soekris/lib >>>> install: /usr/soekris/lib/libcrypt.so.5: Input/output error >>>> *** Error code 71 >>>> >>>> Stop. >>>> make[5]: stopped in /usr/trees/freebsd.git/lib/libcrypt >>>> *** Error code 1 >>>> >>>> OK, so that doesn't work... >>>> >>>> Maybe if I mount the amd64 build host under the soekris box, no >>>> that breaks because the bootstrap tools (install(1), strip(1)) are >>>> built for amd64 so the install fails. >>>> >>>> So what I finally did on the amd64 box was: >>>> >>>> spigot % mkdir /use/soekris.local >>>> spigot % make installworld DESTDIR=/usr/soekris.local >>>> spigot % mount soekris:/ /usr/soekris >>>> spigot % rsync -avvH /usr/soekris.local/ /usr/soekris/ >>>> >>>> That hung at the end forever at the end: >>>> var/unbound/ >>>> var/yp/ >>>> var/yp/Makefile >>>> var/yp/Makefile.dist >>>> .... >>>> >>>> but after giving it an hour I just hit ^C and rebooted and >>>> everything was more or less fine. >>>> >>>> Is there a better way to do this? Was the "installworld to NFS" >>>> breaking because of NFS bugs? Should I get those to Rick? I'm >>>> just confused. >>>> >>>> -Alfred >>>> _______________________________________________ >>>> freebsd-hackers@freebsd.org <mailto:freebsd-hackers@freebsd.org> >>>> mailing list >>>> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >>>> To unsubscribe, send any mail to >>>> "freebsd-hackers-unsubscribe@freebsd.org >>>> <mailto:freebsd-hackers-unsubscribe@freebsd.org>" >>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?538B761C.7060300>