> Mark Hobley <[EMAIL PROTECTED]> writes:
> 
> > It is a big problem for packages that I compile myself, using
> > Autotools, because the compiler keeps detecting the architecture as
> > 686 and building for a 686, 

That's because the build host CPU really is i686.  Installing a -486
kernel does not automagically make it i486, e.g. on a Pentium system:

$ egrep '(name|MHz)' /proc/cpuinfo
model name      : Pentium 75 - 200
cpu MHz         : 133.275

$ uname -a
Linux smehurko 2.6.26-1-486 #1 Thu Oct 9 14:22:52 UTC 2008 i586 GNU/Linux

$ /usr/share/misc/config.guess
i586-pc-linux-gnu

Likewise, on a Pentium II or higher with whatever kernel flavor the
result will be "i686-pc-linux-gnu", and that is correct.

The Autoconf AC_CANONICAL_* family of macros use the scripts
config.guess and config.sub to determine the build host (they are not
part of Autoconf).  The former uses uname and tries to detect some
headers only if uname fails (I think).  config.sub just canonicalizes
the triplet.

> > Ideally, I need all the processor detection systems to lie and say
> > that the processors are 486 (albeit extremely fast 486
> > processors),

Pass --build i486-pc-linux-gnu to ./configure, which effectively will
disable running config.guess.  Many Debian packages do exactly that:
pass to --build the result of `dpkg-architecture -qDEB_BUILD_GNU_TYPE'
(which for this architecture is i486-linux-gnu, in turn
"canonicalized" to i486-pc-linux-gnu) and eventually --host if
DEB_BUILD_GNU_TYPE and DEB_HOST_GNU_TYPE differ
(i.e. cross-compilation).

This of course is not a guarantee that the compiled binaries will run
on i486, it depends on many things.

> > and the target architecture is treated as a fast 486 machine.

For this you need to pass --host as well which with configure scripts
generated by modern versions of Autoconf will enter cross-compilation
mode, so i486-linux-gnu-gcc, etc. will be used.  This may cause other
problems because of toolchain bugs (maybe not on x86, but other
architectures) and IMVHO should not be necessary if the package you
are compiling is autoconfiscated properly and its code is portable.

Your complaint doesn't look like a bug in the autoconf package.

Please see 

    info '(autoconf)Canonicalizing'

and follow the references there for more information.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to