2011-07-24cc-gcc: the frontends are responsible for mkdir/chdir
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 24 Jul 2011 19:35:24 +0200] rev 2900
cc-gcc: the frontends are responsible for mkdir/chdir

The build dir are created depending on the host (host for that specific
backend, not host for the toolchain). Only the frontends know what host
this is, so only the frontends can create non-ambiguous dirs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2012-01-01libc/glibc: use CT_mkdir_pushd helper
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 01 Jan 2012 17:35:10 +0100] rev 2899
libc/glibc: use CT_mkdir_pushd helper

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2011-07-24functions: add new helpers that create a dir and cd/pushd into it
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 24 Jul 2011 20:08:13 +0200] rev 2898
functions: add new helpers that create a dir and cd/pushd into it

A lot of places are currently doing:
mkdir -p foo/bar
cd foo/bar

Or even:
mkdir -p foo/bar
pushd foo/bar
[...]
popd

Provide both wrapper to ease doing this.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2011-07-24cc/gcc: fix core backend's API doc
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 24 Jul 2011 19:24:02 +0200] rev 2897
cc/gcc: fix core backend's API doc

Make it more in line with the final backend's doc,
and make it simpler as well.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2011-07-24cc/gcc: no need to build a static core pass-1 gcc for baremetal
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 24 Jul 2011 19:33:04 +0200] rev 2896
cc/gcc: no need to build a static core pass-1 gcc for baremetal

The only user of the static core compiler in pass-1 was the newlib
C library. Now that it is build in a later step, we do no longer
need to build a static core compiler in pass-1.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2011-07-17libc/newlib: build newlib in the proper step
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 17 Jul 2011 18:01:28 +0200] rev 2895
libc/newlib: build newlib in the proper step

Currently, newlib is built in the start_file step, which is wrong, but was
needed when the baremetal integration was... well, 'unfinished'.

Now that we build the baremetal compiler from the final cc step, and a
proper core gcc in pass-1 and pass-2, we can move the newlib build to the
step do_libc, where it belongs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2012-02-13cc/gcc: comonalise the manuals build decision
"Yann E. MORIN" <yann.morin.1998@free.fr> [Mon, 13 Feb 2012 22:18:02 +0100] rev 2894
cc/gcc: comonalise the manuals build decision

Let the final frontend decide whether or not to build the manuals.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2011-07-17cc/gcc: do not use the core pass-2 to build the baremetal compiler
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 17 Jul 2011 22:43:07 +0200] rev 2893
cc/gcc: do not use the core pass-2 to build the baremetal compiler

In case we build a baremetal compiler, use the standard passes:
- core_cc is used to build the C library;
- as such, it is meant to run on build, not host;
- the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2011-07-17cc/gcc: add the backend/frontend infra for final gcc
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 17 Jul 2011 22:46:47 +0200] rev 2892
cc/gcc: add the backend/frontend infra for final gcc

Currently, we issue the bare-metal compiler from the pass_1 & pass_2
core compilers, because the final gcc breaks while doing so.

This implies we have to build some libces during the start_files step,
instead of the standard libc step. This is the case for newlib.

By adding a backend/frontend infra to the final gcc, we can abstract
what backend to call: the standard backend for non-bare-metal gcc,
and the core backend for bare-metal.

This patch is just an no-op, it just adds the final backend and
frontend without changing the way bare-metal is built, to come in a
subsequent patch.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

2011-08-23cc/gcc: add 'cflags' paramater to the core backend
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 23 Aug 2011 21:11:26 +0200] rev 2891
cc/gcc: add 'cflags' paramater to the core backend

As the core backend is used to generate the bare-metal compiler,
we need to pass it the host CFLAGS.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>