[arch-dev-public] i686 pkg built in chroot on x86_64 doesn't work

Daniel J Griffiths (Ghost1227) ghost1227 at archlinux.us
Tue Mar 9 05:40:47 CET 2010


On 03/08/10 at 11:32pm, Paul Mattal wrote:
> On 03/08/2010 07:16 PM, Allan McRae wrote:
> >On 09/03/10 08:38, Daniel J Griffiths (Ghost1227) wrote:
> >>On 03/08/10 at 05:20pm, Paul Mattal wrote:
> >>>On 03/07/2010 02:33 PM, Paul Mattal wrote:
> >>>>On 02/25/2010 11:49 AM, Aaron Griffin wrote:
> >>>>>On Tue, Feb 23, 2010 at 7:17 PM, Daniel J Griffiths (Ghost1227)
> >>>>><ghost1227 at archlinux.us> wrote:
> >>>>>>I've always thought the method of modifying your local mirrorlist,
> >>>>>>running mkarchroot, then reverting the changes to be more tedious
> >>>>>>than
> >>>>>>necessary for creation of i686 chroots on x86_64. My recent work with
> >>>>>>setting up a dedicated build server gave me plenty of time and an
> >>>>>>excuse to actually do something about it. As such, I've put
> >>>>>>together a
> >>>>>>little patch that allows specification of creation of an i686 chroot
> >>>>>>at runtime. When set, this flag will automatically modify your local
> >>>>>>mirrorlist, create the requested i686 chroot, then revert the changes
> >>>>>>to the mirrorlist file. I don't know if others would find this useful
> >>>>>>or not, but I figured it wouldn't hurt to post it.
> >>>>>
> >>>>>Actually, I *thought* I added a flag to point to an alternate pacman
> >>>>>config when building the chroot, to simplify this. So it'd be as
> >>>>>simple as:
> >>>>>
> >>>>>sed s/x86_64/i686/< /etc/pacman.d/mirrorlist>
> >>>>>/etc/pacman.d/mirrorlist-i686
> >>>>>sed s/mirrorlist/mirrorlist-i686/< /etc/pacman.conf>
> >>>>>/etc/pacman-i686.conf
> >>>>>
> >>>>>mkarchroot -C /etc/pacman-i686.conf ...yada yada...
> >>>>
> >>>>Having some uniform turnkey script to build an i686 chroot on an x86_64
> >>>>box as part of devtools would be useful.
> >>>>
> >>>>I just noticed today that in setting up my chroots, I had replaced my
> >>>>x86_64 in makepkg.conf with i686, but not replaced the x86-64 which
> >>>>occur in CFLAGS and CXXFLAGS. If others have done similar things, it
> >>>>might result in buggy or suboptimal packages.
> >>>>
> >>>>It would at least be nice of someone who knows a lot about building in
> >>>>chroots describes in detail what must be done for i686 chroots in
> >>>>x86_64
> >>>>in the wiki page, just in case there are important details I or others
> >>>>have missed.
> >>>
> >>>So here's one for the chroot gurus.
> >>>
> >>>It appears that even with all my settings fixed, tomcat doesn't work
> >>>when built in my i686 chroot on x86_64:
> >>>
> >>>http://bugs.archlinux.org/task/18604
> >>>
> >>>Building on an actual i686 box, even in a chroot, works.
> >>>
> >>>Can anyone guess why this might be? Are there some guidelines
> >>>someone can give for evaluating whether or not it's safe to build a
> >>>package under an i686 chroot on an x86_64 box?
> >>>
> >>>It seems there's an increased risk we're putting out broken packages
> >>>when we build i686 packages in a chroot on an x86_64 box.
> >>>
> >>>- P
> >>I've seen a few (rare) cases where a package built for i686 on an x86_64
> >>machine _must_ be run with linux32, just using a 32bit chroot doesn't
> >>cut it. This could be one of those cases. On a side note, perhaps I
> >>should
> >>add a flag on pkgbuild.com to enable this just for those off-the-wall
> >>cases...
> >
> >I'd say to always use linux32... You can get some very strange configure
> >errors without it. I have "makechrootpkg64" as an alias to use "linux64
> >makechrootpkg" on my system.
> 
> I've added linux32 to my build scripts on my x86_64 box, since this
> seems like a good idea in general; is there any reason *not* to run
> makechrootpkg for an i686 chroot on an x86_64 box with linux32 all
> the time? I could try to tool up a patch to makechrootpkg to
> automatically detect/do that.
> 
> However, adding it doesn't solve the tomcat building problem; same
> result. This must be some other issue.
> 
> - P
OK... take two at an explanation... the go package won't build in an i686 chroot because the 
build scripts natively use uname to determine arch... possibly something similar in tomcat?
-- 


More information about the arch-dev-public mailing list