[configure/make] Propagate names of build host tools when making BuildTools
authorMeador Inge <meadori@codesourcery.com>
Tue, 25 Mar 2014 21:45:41 +0000 (21:45 +0000)
committerMeador Inge <meadori@codesourcery.com>
Tue, 25 Mar 2014 21:45:41 +0000 (21:45 +0000)
When cross-compiling LLVM itself the configure/make scripts get confused when
creating the needed build host tools.  For example, building and configuring
like:

  CC_FOR_BUILD='i686-pc-linux-gnu-gcc' CXX_FOR_BUILD='i686-pc-linux-gnu-g++'
  CXX='i686-mingw32-g++' CC='i686-mingw32-gcc' LD='i686-mingw32-ld' /scratch
  /meadori/llvm-trunk/src/trunk/configure --host=i686-mingw32

  CC_FOR_BUILD='i686-pc-linux-gnu-gcc' CXX_FOR_BUILD='i686-pc-linux-gnu-g++'
  CXX='i686-mingw32-g++' CC='i686-mingw32-gcc' LD='i686-mingw32-ld' make

causes the following build break:

  checking whether the C compiler works... configure: error: cannot run C
  compiled programs.
  If you meant to cross compile, use `--host'.
  See `config.log' for more details.

The 'config.log' shows that i686-mingw32-gcc is being used to create
executables for the build host.

This patch fixes the problem by propogating the names of the build host
tools via BUILD_* when configuring/making BuildTools.

Original patch by Ekaterina Sanina.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204760 91177308-0d34-0410-b5e6-96231b3b80d8

Makefile

index 29653acf993392e73f971eae17939119f8a53a03..2b9468af205381d5b7e25d4dd8873ed560819006 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -112,6 +112,11 @@ cross-compile-build-tools:
          cd BuildTools ; \
          unset CFLAGS ; \
          unset CXXFLAGS ; \
+         AR=$(BUILD_AR) ; \
+         AS=$(BUILD_AS) ; \
+         LD=$(BUILD_LD) ; \
+         CC=$(BUILD_CC) ; \
+         CXX=$(BUILD_CXX) ; \
          unset SDKROOT ; \
          unset UNIVERSAL_SDK_PATH ; \
          configure_opts= ; \