[arch-dev-public] i686 pkg built in chroot on x86_64 doesn't work
paul at mattal.com
Mon Mar 8 23:20:24 CET 2010
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>
>> sed s/mirrorlist/mirrorlist-i686/< /etc/pacman.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:
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.
More information about the arch-dev-public