1 |
209 |
dgisselq |
This directory contains the source code for the ZipCPU tool-chain--the
|
2 |
|
|
GCC back end, assembler, and linker. The directory also has the patches
|
3 |
|
|
necessary to build the C-library, newlib. This tool-chain is kept in a series
|
4 |
|
|
of patch files--primarily because I found the patch files for the eco32
|
5 |
|
|
CPU *very* helpful to me when I needed to know where to start when building
|
6 |
|
|
the back end for the ZipCPU.
|
7 |
|
|
|
8 |
|
|
You'll also find within this directory the [Makefile](Makefile) used to
|
9 |
|
|
direct the build of this tool-chain, together with basic scripts for building
|
10 |
|
|
[GCC](gcc-script.sh), [binutils](gas-script.sh), and [newlib](nlib-script.sh).
|
11 |
|
|
|
12 |
|
|
If you run into trouble building these components, know this: the
|
13 |
|
|
[Makefile](Makefile) works off of the existence of nonce.txt files to know
|
14 |
|
|
how to proceed from one step to the next. Hence, as an example, when building
|
15 |
|
|
the binutils components, it will start by applying patches to the binutils
|
16 |
|
|
repository found within here. Once completed, it will place a nonce.txt
|
17 |
|
|
file into the resulting (patched) directory. It will then attempt to
|
18 |
|
|
configure binutils. Once done, there will be a `build-gas` directory with
|
19 |
|
|
a `nonce.txt` file within it. This will be `make`s indication to move forward
|
20 |
|
|
and build the compiler. If you have any problems with building, or if you want
|
21 |
|
|
to start the build over, feel free to either remove the patched directories,
|
22 |
|
|
or even to just remove the (empty) `nonce.txt` files and have `make`
|
23 |
|
|
start over.
|
24 |
|
|
|
25 |
|
|
## Common problems building the toolchain
|
26 |
|
|
|
27 |
|
|
The most common problem people have had is the result of not having the
|
28 |
|
|
pre-requisites properly installed on your computer. Sadly, in this case,
|
29 |
|
|
the makefile will exit with some confusing error. You'll need to find the
|
30 |
|
|
`config.log` file of the component that didn't build to find out what is
|
31 |
|
|
missing.
|
32 |
|
|
|
33 |
|
|
Another common error is that GCC needs the cross-built GCC to build it's
|
34 |
|
|
libraries. Hence, you may need to make certain that the install'ed binary
|
35 |
|
|
directory is in your path. I've tried to clean this up so that the
|
36 |
|
|
tool-chain Makefile doesn't require this, but certainly the builds of any
|
37 |
|
|
assembly or C related files will require it.
|
38 |
|
|
|
39 |
|
|
## Installed location
|
40 |
|
|
|
41 |
|
|
Currently, the tool-chain as configured does not install into your system
|
42 |
|
|
directories, but rather into an `install` directory that will be built as a
|
43 |
|
|
subset of this one. This behavior is controlled by the `prefix` flags within
|
44 |
|
|
the various build scripts, which in turn is set by a Makefile variable.
|
45 |
|
|
Should you wish to change this behavior, just remember that the install
|
46 |
|
|
to the system directory will require sys-admin privileges, and it may also
|
47 |
|
|
require you to build the various components manually rather than via the
|
48 |
|
|
make script. (It's not something I've tested.)
|
49 |
|
|
|