Cannot compile using cc1.

Jim Wilson jimw@sifive.com
Mon Oct 8 20:42:00 GMT 2018


On 10/06/2018 06:07 AM, Tejas Joshi wrote:
> I have gcc source code, stage1-build and test directories as siblings
> and I've been trying to compile test.c in test/ using:
> 
> ../stage1-build/gcc/cc1 test.c

That isn't expected to work.  You need to use the compiler driver, which 
is called xgcc in the build dir, and pass an option to let it know where 
the cc1 binary is.  So this should instead be

../stage1-build/gcc/xgcc -B../stage1-build/gcc/ test.c

The trailing slash on the -B option path is important.  If that doesn't 
work, then you may have configured your gcc tree wrong.  Some operating 
systems require specific configure options to be used to get a working 
compiler.  You can see the configure options used by the default 
compiler by using "/usr/bin/gcc -v".  Debian/Ubuntu require 
--enable-multiarch for instance, and the compiler build may not succeed 
if that configure option is missing.

If you want to run cc1 directly, you may need to pass in extra default 
options that the compiler driver normally passes to it.  You can see 
these options by passing the -v option to the gcc driver while compiling 
a file.  E.g. running "../stage1-build/gcc/xgcc -B../stage1-build/gcc/ 
-v test.c" and looking at the cc1 line will show you the options you 
need to pass to cc1 to make it work.

Jim



More information about the Gcc mailing list