Meador Inge
2014-Mar-18 16:55 UTC
[LLVMdev] Problems building host tools when cross compiling LLVM
Hi All, I recently ran into an issue that was posted several years back on LLVMdev [1]. A brief recap of the problem is that 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: configure:2185: checking for C compiler default output file name configure:2212: i686-mingw32-gcc conftest.c >&5 configure:2215: $? = 0 configure:2261: result: a.exe configure:2266: checking whether the C compiler works configure:2276: ./a.exe run-detectors: unable to find an interpreter for ./a.exe configure:2279: $? = 2 The patch mentioned in [1] does fix the issue. Is there any particular reason that patch was not applied or shouldn't be? [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-November/036651.html -- Meador Inge CodeSourcery / Mentor Embedded
Eric Christopher
2014-Mar-18 18:51 UTC
[LLVMdev] Problems building host tools when cross compiling LLVM
On Tue, Mar 18, 2014 at 9:55 AM, Meador Inge <meadori at codesourcery.com> wrote:> Hi All, > > I recently ran into an issue that was posted several years back on LLVMdev [1]. > A brief recap of the problem is that 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: > > configure:2185: checking for C compiler default output file name > configure:2212: i686-mingw32-gcc conftest.c >&5 > configure:2215: $? = 0 > configure:2261: result: a.exe > configure:2266: checking whether the C compiler works > configure:2276: ./a.exe > run-detectors: unable to find an interpreter for ./a.exe > configure:2279: $? = 2 > > The patch mentioned in [1] does fix the issue. > > Is there any particular reason that patch was not applied or shouldn't be? >I missed it coming across the first time (and that's a long time ago). I haven't had a chance to look at it and the archives don't have the actual patch. Can you send it? -eric> [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-November/036651.html > > -- > Meador Inge > CodeSourcery / Mentor Embedded
Meador Inge
2014-Mar-18 19:25 UTC
[LLVMdev] Problems building host tools when cross compiling LLVM
On 03/18/2014 01:51 PM, Eric Christopher wrote:> I missed it coming across the first time (and that's a long time ago). > I haven't had a chance to look at it and the archives don't have the > actual patch. Can you send it?Sure. See attached. This is the same as the patch provided by Ekaterina Sanina in the thread I linked. I can build fine with this applied for the scenario I described and the changes seem reasonable, but I am not all that familiar with the Makefile bits and might be missing something. -- Meador Inge CodeSourcery / Mentor Embedded -------------- next part -------------- A non-text attachment was scrubbed... Name: Makefile-cross-build-tools.patch Type: text/x-patch Size: 453 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140318/94e67113/attachment.bin>