zhunan <zhunansjtu at gmail.com> writes:
> Recently I met a question when I want to replace gcc with llvm-gcc
> through configure script(command).
>
> For simply,described like that
>
> I typed as following
>
> 1.zhunan at sjtu:~/workplace/$ ./configure CC=llvm-gcc CFLAGS="-S
> -emit-llvm"
>
> configure will failed when it checks whether C compiler is working
>
> 2.zhunan at sjtu:~/workplace/$ ./configure CC=llvm-gcc CFLAGS="-c
> -emit-llvm"
>
> configure will failed when it checks the default output filename,just
> means the C compiler cannot create executables.
>
>
> I would like to know what's the matter with this replacing attempt?and
> any possibility to overcome the trouble?
Your CFLAGS is telling llvm-gcc that it must not produce an object code
file nor an executable file, but something else (llvm assembler on your
first attempt and llvm bitcode on your second attempt).
`configure' needs a fully working compiler toolset, which means that the
compiler must be able to produce executable files. Your CFLAGS setting
is preventing this.
Execute `configure' with just CC=llvm-gcc and then try
make CFLAGS="-emit-llvm"
if you want LLVM bitcode or
make CFLAGS="-S -emit-llvm"
if you want LLVM assembler.
`make' will fail at the linking phase, but you will have a set of LLVM
bitcode/assembler files for each of your C source files.
If you simply want to replace gcc with llvm-gcc for building your
software, forget about CFLAGS and just do
./configure CC=llvm-gcc && make
--
Óscar