Post by NightStrikePost by Mike FrysingerPost by NightStrikePost by Eric BlakeWhat gave you the impression that link tests are not allowed when cross
compiling? We use link tests all the time. It is run tests that
require a fallback when cross-compiling, not link tests.
checking for main in -lpthread... configure: error: link tests are not
allowed after AC_NO_EXECUTABLES
AC_NO_EXECUTABLES is intentionally not documented in the autoconf
manual; here are the comments at its m4 definition:
# AC_NO_EXECUTABLES
# -----------------
# FIXME: The GCC team has specific needs which the current Autoconf
# framework cannot solve elegantly. This macro implements a dirty
# hack until Autoconf is able to provide the services its users
# need.
#
# Several of the support libraries that are often built with GCC can't
# assume the tool-chain is already capable of linking a program: the
# compiler often expects to be able to link with some of such
# libraries.
#
# In several of these libraries, workarounds have been introduced to
# avoid the AC_PROG_CC_WORKS test, that would just abort their
# configuration. The introduction of AC_EXEEXT, enabled either by
# libtool or by CVS autoconf, have just made matters worse.
#
# Unlike an earlier version of this macro, using AC_NO_EXECUTABLES does
# not disable link tests at autoconf time, but at configure time.
# This allows AC_NO_EXECUTABLES to be invoked conditionally.
Why are you using AC_NO_EXECUTABLES? Are you working on gcc? If so,
this question is better asked on the gcc list. If not, then don't use it.
Post by NightStrikePost by Mike Frysingerplease post full config.logs. what you've shown is that your compiler has been
flagged as not being able to produce executables which is very different from
"is it a cross-compiler".
-mike
Attached. Interesting, though, when I don't cross compile, the check
executes. And, I've always seen this when I try to cross compile.
I must have something fundamentally wrong in my understanding.
Hopefully, the attached log helps you to enlighten me.
The reason that gcc rejects link tests is because of historical baggage
of how the uber-tree is used to build an entire cross environment
(libraries, gcc, gdb, and more, all in one go) - in THAT environment,
configure can't perform link tests, because the tests would have to link
against the cross-built libraries, but this is the configure script
trying to set up those cross-built libraries (they don't exist yet, so
the link test will do the wrong thing).
Outside of gcc's special needs, you should generally have no problem
pre-installing cross-built libraries, at which point, you should have no
need for AC_NO_EXECUTABLES in your configure.ac.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org