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

Allan McRae allan at archlinux.org
Tue Mar 9 01:16:10 CET 2010


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.

Allan


More information about the arch-dev-public mailing list