Opened 17 years ago
Closed 16 years ago
#146 closed task (fixed)
Address using chroot to build ix86 from i686 or x86_64
Reported by: | Joe Ciccone | Owned by: | Joe Ciccone |
---|---|---|---|
Priority: | major | Milestone: | CLFS Standard 1.1.0 |
Component: | BOOK | Version: | CLFS Standard 1.1.0 |
Keywords: | Cc: |
Description
This probably holds true for other architectures too, but it's not seen as much. The target triplet of the final system is determined by config.guess, not CLFS_TARGET. This is probably a minor misconception that will cause people grief if they were to try to build a i686 machine from a x86_64 or some similar scenario where the host architecture can execute the target architecture but the target architecture is not compatible with the host architecture. Quickest way around it is with a uname hack. Ex, the one at: http://cross-lfs.org/~jciccone/uname_hack-20071212.tar.bz2 . Or you can follow the boot method.
Change History (5)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
setarch is without a doubt the best path to use. Util-Linux-NG provides setarch. We do build a select few items there. We could add setarch for the hosts that don't provide it.
comments?
comment:3 by , 16 years ago
Well, I found one problem with setarch, It will only set the target to i686, not i486 or i586 etc... This can be a problem if the target system you're building for is a i486 compatible. I would have to recommend the uname_hack and then mention setarch aswell.
comment:4 by , 16 years ago
Owner: | changed from | to
---|
comment:5 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
This pesky bugger is finally closed in r3968. Someone to proof read the page would be nice.
Well, if only I had seen this before building for 486 on X64 :p
What I did was use setarch i486 before env -i at going into chroot, which made it think it was a 686, and then used --build=i486-pc-linux-gnu on every package. Bit more work, but it worked though.