OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [doc/] [configterms.texi] - Diff between revs 816 and 826

Only display areas with differences | Details | Blame | View Log

Rev 816 Rev 826
@c Copyright (C) 2001, 2002, 2004, 2008 Free Software Foundation, Inc.
@c Copyright (C) 2001, 2002, 2004, 2008 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@c For copying conditions, see the file gcc.texi.
 
 
@node Configure Terms
@node Configure Terms
@section Configure Terms and History
@section Configure Terms and History
@cindex configure terms
@cindex configure terms
@cindex canadian
@cindex canadian
 
 
The configure and build process has a long and colorful history, and can
The configure and build process has a long and colorful history, and can
be confusing to anyone who doesn't know why things are the way they are.
be confusing to anyone who doesn't know why things are the way they are.
While there are other documents which describe the configuration process
While there are other documents which describe the configuration process
in detail, here are a few things that everyone working on GCC should
in detail, here are a few things that everyone working on GCC should
know.
know.
 
 
There are three system names that the build knows about: the machine you
There are three system names that the build knows about: the machine you
are building on (@dfn{build}), the machine that you are building for
are building on (@dfn{build}), the machine that you are building for
(@dfn{host}), and the machine that GCC will produce code for
(@dfn{host}), and the machine that GCC will produce code for
(@dfn{target}).  When you configure GCC, you specify these with
(@dfn{target}).  When you configure GCC, you specify these with
@option{--build=}, @option{--host=}, and @option{--target=}.
@option{--build=}, @option{--host=}, and @option{--target=}.
 
 
Specifying the host without specifying the build should be avoided, as
Specifying the host without specifying the build should be avoided, as
@command{configure} may (and once did) assume that the host you specify
@command{configure} may (and once did) assume that the host you specify
is also the build, which may not be true.
is also the build, which may not be true.
 
 
If build, host, and target are all the same, this is called a
If build, host, and target are all the same, this is called a
@dfn{native}.  If build and host are the same but target is different,
@dfn{native}.  If build and host are the same but target is different,
this is called a @dfn{cross}.  If build, host, and target are all
this is called a @dfn{cross}.  If build, host, and target are all
different this is called a @dfn{canadian} (for obscure reasons dealing
different this is called a @dfn{canadian} (for obscure reasons dealing
with Canada's political party and the background of the person working
with Canada's political party and the background of the person working
on the build at that time).  If host and target are the same, but build
on the build at that time).  If host and target are the same, but build
is different, you are using a cross-compiler to build a native for a
is different, you are using a cross-compiler to build a native for a
different system.  Some people call this a @dfn{host-x-host},
different system.  Some people call this a @dfn{host-x-host},
@dfn{crossed native}, or @dfn{cross-built native}.  If build and target
@dfn{crossed native}, or @dfn{cross-built native}.  If build and target
are the same, but host is different, you are using a cross compiler to
are the same, but host is different, you are using a cross compiler to
build a cross compiler that produces code for the machine you're
build a cross compiler that produces code for the machine you're
building on.  This is rare, so there is no common way of describing it.
building on.  This is rare, so there is no common way of describing it.
There is a proposal to call this a @dfn{crossback}.
There is a proposal to call this a @dfn{crossback}.
 
 
If build and host are the same, the GCC you are building will also be
If build and host are the same, the GCC you are building will also be
used to build the target libraries (like @code{libstdc++}).  If build and host
used to build the target libraries (like @code{libstdc++}).  If build and host
are different, you must have already built and installed a cross
are different, you must have already built and installed a cross
compiler that will be used to build the target libraries (if you
compiler that will be used to build the target libraries (if you
configured with @option{--target=foo-bar}, this compiler will be called
configured with @option{--target=foo-bar}, this compiler will be called
@command{foo-bar-gcc}).
@command{foo-bar-gcc}).
 
 
In the case of target libraries, the machine you're building for is the
In the case of target libraries, the machine you're building for is the
machine you specified with @option{--target}.  So, build is the machine
machine you specified with @option{--target}.  So, build is the machine
you're building on (no change there), host is the machine you're
you're building on (no change there), host is the machine you're
building for (the target libraries are built for the target, so host is
building for (the target libraries are built for the target, so host is
the target you specified), and target doesn't apply (because you're not
the target you specified), and target doesn't apply (because you're not
building a compiler, you're building libraries).  The configure/make
building a compiler, you're building libraries).  The configure/make
process will adjust these variables as needed.  It also sets
process will adjust these variables as needed.  It also sets
@code{$with_cross_host} to the original @option{--host} value in case you
@code{$with_cross_host} to the original @option{--host} value in case you
need it.
need it.
 
 
The @code{libiberty} support library is built up to three times: once
The @code{libiberty} support library is built up to three times: once
for the host, once for the target (even if they are the same), and once
for the host, once for the target (even if they are the same), and once
for the build if build and host are different.  This allows it to be
for the build if build and host are different.  This allows it to be
used by all programs which are generated in the course of the build
used by all programs which are generated in the course of the build
process.
process.
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.