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@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