Commit Graph

92 Commits

Author SHA1 Message Date
Yann E. MORIN"
1c625d676c Push the calculation of the tuple's kernel part down to kernel's build scripts:
- update the kernel script's API with the function CT_DiKernelTupleValues
- update doc accordingly (also with the architecture change, missing in the previous commit)
- small clean-up in the main script, remove useless test

 /trunk/scripts/build/kernel/bare-metal.sh |    5     5     0     0 +++++
 /trunk/scripts/build/kernel/linux.sh      |    5     5     0     0 +++++
 /trunk/scripts/crosstool.sh               |   31    13    18     0 +++++++++++++------------------
 /trunk/scripts/functions                  |   15     8     7     0 ++++++++-------
 /trunk/docs/overview.txt                  |   13     9     4     0 +++++++++----
 5 files changed, 40 insertions(+), 29 deletions(-)
2008-10-23 13:45:48 +00:00
Yann E. MORIN"
82c9d1aceb Simplify the Tools and Debug facilities menu entries:
- each config file no longer have to define their own 'menuconfig foo - if FOO - endif' gym
 - each build script no longer has to say wether they are enabled
 - generation of the 'menuconfig' entries for the Tools and Debug facilities now uses the same code
Some re-ordering of the code to be consistent with the steps ordering (tools, then debug).

 /trunk/kconfig/kconfig.mk                  |   66    43    23     0 +++++++++++++++++++++++-------------
 /trunk/scripts/build/debug.sh              |   14     9     5     0 +++++---
 /trunk/scripts/build/tools/000-template.sh |    7     0     7     0 ----
 /trunk/scripts/build/tools/100-libelf.sh   |    3     0     3     0 --
 /trunk/scripts/build/tools/200-sstrip.sh   |    2     0     2     0 -
 /trunk/scripts/build/debug/000-template.sh |    7     0     7     0 ----
 /trunk/scripts/build/debug/100-dmalloc.sh  |    3     0     3     0 --
 /trunk/scripts/build/debug/400-ltrace.sh   |    3     0     3     0 --
 /trunk/scripts/build/debug/300-gdb.sh      |    3     0     3     0 --
 /trunk/scripts/build/debug/500-strace.sh   |    3     0     3     0 --
 /trunk/scripts/build/debug/200-duma.sh     |    3     0     3     0 --
 /trunk/scripts/build/tools.sh              |   14     9     5     0 +++++---
 /trunk/scripts/crosstool.sh                |    2     1     1     0
 /trunk/config/debug/ltrace.in              |   14     3    11     0 ++------
 /trunk/config/debug/dmalloc.in             |    9     1     8     0 +----
 /trunk/config/debug/gdb.in                 |    9     1     8     0 +----
 /trunk/config/debug/strace.in              |   10     1     9     0 -----
 /trunk/config/debug/duma.in                |   10     1     9     0 -----
 /trunk/config/tools/libelf.in              |   12     2    10     0 +------
 /trunk/config/tools/sstrip.in              |   10     1     9     0 -----
 /trunk/config/config.in                    |    4     2     2     0 +-
 21 files changed, 74 insertions(+), 134 deletions(-)
2008-10-10 14:30:44 +00:00
Yann E. MORIN"
93c2e1f7fb Install the config script following the naming of other files, eg. "${CT_TARGET}-" instead of "${CT_TARGET}." .
/trunk/scripts/crosstool.sh |    4     2     2     0 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
2008-10-06 21:23:31 +00:00
Yann E. MORIN"
b8d189b296 Separate the architecture config file and function script.
/trunk/kconfig/kconfig.mk   |   46    23    23     0 +++++++++++++++++++++++-----------------------
 /trunk/scripts/crosstool.sh |    2     1     1     0 +-
 /trunk/docs/overview.txt    |   28    11    17     0 +++++++++++-----------------
 3 files changed, 35 insertions(+), 41 deletions(-)
2008-10-05 15:32:00 +00:00
Yann E. MORIN"
dcb7ca29ba Fourth shot at moving arch/ into config/arch/ .
/trunk/scripts/crosstool.sh |    2     1     1     0 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
2008-10-03 13:01:10 +00:00
Yann E. MORIN"
16c6cc994f Save the toolchain configuration to its own file, as an auto-extracting shell script:
- get rid of the 'extractconfig' action, it was cumbersome to use, and badly documented,
 - introduce a skeleton for the config script,
 - update auto-completion,
 - document the config script.

 /trunk/kconfig/kconfig.mk        |    9     2     7     0 ++-------
 /trunk/scripts/crosstool.sh      |    6     5     1     0 +++++-
 /trunk/docs/overview.txt         |   21     9    12     0 +++++++++------------
 /trunk/tools/toolchain-config.in |    8     8     0     0 ++++++++
 /trunk/ct-ng.comp                |    2     1     1     0 +-
 5 files changed, 25 insertions(+), 21 deletions(-)
2008-10-01 18:10:40 +00:00
Yann E. MORIN"
799672a641 Introduce a new EXPERIMENTAL feature: BARE_METAL.
This should ultimately llow to build bare-metal compilers, for targets that have no kernel and no C library.
Move the C library build script to their own sub-directory; introduce an empty build script for bare-metal.
Move the compiler build script to its own sub-directory.
Move the kernel build script to its own sub-directory; introduce an empty build script for bare-metal.
Update the ARM target tuples to enable bare-metal targets.
Add two ARM bare-metal samples.
Add latest Linux kernel versions.

 /trunk/scripts/build/kernel/none.sh              |   77     6    71     0 +----
 /trunk/scripts/build/cc/gcc.sh                   |   58    41    17     0 ++-
 /trunk/scripts/build/libc/none.sh                |  513     9   504     0 +-----------------------------
 /trunk/scripts/crosstool.sh                      |   17     9     8     0 +
 /trunk/scripts/functions                         |    6     4     2     0 +
 /trunk/scripts/showSamples.sh                    |    6     3     3     0
 /trunk/samples/arm-unknown-elf/crosstool.config  |  225   225     0     0 +++++++++++++
 /trunk/samples/arm-unknown-eabi/crosstool.config |  223   223     0     0 +++++++++++++
 /trunk/config/kernel/linux_headers_install.in    |   64    27    37     0 ++--
 /trunk/config/kernel.in                          |    9     8     1     0 +
 /trunk/config/toolchain.in                       |    1     1     0     0 +
 /trunk/config/cc/gcc.in                          |    3     3     0     0 +
 /trunk/config/debug/dmalloc.in                   |    1     1     0     0 +
 /trunk/config/debug/gdb.in                       |    4     3     1     0 +
 /trunk/config/debug/strace.in                    |    1     1     0     0 +
 /trunk/config/debug/duma.in                      |    1     1     0     0 +
 /trunk/config/cc.in                              |    8     8     0     0 +
 /trunk/config/target.in                          |   13    13     0     0 +
 /trunk/config/binutils.in                        |    1     1     0     0 +
 /trunk/config/gmp_mpfr.in                        |    1     1     0     0 +
 /trunk/config/libc.in                            |   17    11     6     0 +
 /trunk/arch/arm/functions                        |    3     1     2     0 -
 22 files changed, 600 insertions(+), 652 deletions(-)
2008-09-14 16:21:07 +00:00
Yann E. MORIN"
7a0e770be1 Remove the now really obsolete Linux kernel headers copy and sanitised.
Remove orphanned Linux kernel patchsets.
Initiate a kernel build scripts directory. Move the Linux kernel build script there.

 /trunk/scripts/build/kernel/linux.sh |  146    11   135     0 +++---------------------------------------
 /trunk/scripts/crosstool.sh          |    2     1     1     0
 /trunk/steps.mk                      |    1     0     1     0 -
 /trunk/config/kernel/linux.in        |   49     0    49     0 --------------
 /trunk/config/kernel.in              |    4     4     0     0 +
 5 files changed, 16 insertions(+), 186 deletions(-)
2008-09-10 21:40:23 +00:00
Yann E. MORIN"
4a7d144844 Allow using ash as the shell for ./configure and make.
After an idea by "Martin Guy" <martinwguy@yahoo.it>:
http://sourceware.org/ml/crossgcc/2008-08/msg00037.html

 /trunk/scripts/crosstool.sh          |    4     4     0     0 ++++
 /trunk/config/global/build-behave.in |   14    14     0     0 ++++++++++++++
 2 files changed, 18 insertions(+)
2008-08-25 19:44:39 +00:00
Yann E. MORIN"
ef0f400c26 Introduce four new ARCH specific variables that CT_DoArchValues can set if they want:
- CT_ARCH_CC_CORE_EXTRA_CONFIG
  - CT_ARCH_CC_EXTRA_CONFIG
  - CT_ARCH_TARGET_CLFAGS
  - CT_ARCH_TARGET_LDFLAGS
This will hopefully enable architectures to specify specific flags.
PowerPC will need them to introduce SPE (coming RSN).

 /trunk/scripts/crosstool.sh |    2     2     0     0 ++
 /trunk/scripts/functions    |    4     2     2     0 ++--
 /trunk/docs/overview.txt    |   45    22    23     0 ++++++++++++++++++++++-----------------------
 /trunk/config/target.in     |   10    10     0     0 ++++++++++
 4 files changed, 36 insertions(+), 25 deletions(-)
2008-08-07 15:18:18 +00:00
Yann E. MORIN"
e348d316b7 Beautify final output.
/trunk/scripts/crosstool.sh |    7     4     3     0 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
2008-08-07 07:52:09 +00:00
Yann E. MORIN"
379ea09dba Michael ABBOTT reported that populate is not relocatable.
Fix this by determining both the cross-readelf and the sys-root at runtime, not at build time.

 /trunk/configure            |    1     1     0     0 +
 /trunk/scripts/crosstool.sh |   14     6     8     0 ++++++--------
 /trunk/tools/populate.in    |    6     4     2     0 ++++--
 3 files changed, 11 insertions(+), 10 deletions(-)
2008-08-04 08:44:54 +00:00
Yann E. MORIN"
4eeadf87e2 Rework a little bit of the LAN mirror and proxy settings.
/trunk/scripts/crosstool.sh      |  105     4   101     0 +------------------------
 /trunk/scripts/functions         |  151   129    22     0 +++++++++++++++++++++++++++++++-----
 /trunk/config/global/download.in |  193    99    94     0 ++++++++++++++++++++++++----------------------
 3 files changed, 232 insertions(+), 217 deletions(-)
2008-08-01 09:23:58 +00:00
Yann E. MORIN"
5a28e26b8d Fix building x86_64 on x86_64 (and hopefully all other *64 archs on the same *64):
- symlink all lib64/ dirs to the corresponding lib/ dir
Also, prevent gcc from installing some of its target libs outside of the sys-root, in the first place.
Thanks to Laurent DUFRECHOU for reporting the bug and testing the fix.

 /trunk/scripts/build/cc_gcc.sh |   26     0    26     0 --------------------------
 /trunk/scripts/crosstool.sh    |   14    14     0     0 ++++++++++++++
 2 files changed, 14 insertions(+), 26 deletions(-)
2008-07-27 16:35:37 +00:00
Yann E. MORIN"
e64bc999d5 Hmmm. The debug pause at each step never ever worked... Sigh...
/trunk/scripts/crosstool.sh       |    2     1     1     0 +-
 /trunk/config/global/ct-behave.in |    2     1     1     0 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
2008-07-25 22:57:35 +00:00
Yann E. MORIN"
ba5a96ad78 Remove the check for absolutely needed tools now ./configure checks for them.
Move the check for 'lynx' to where it is needed (that is when sstrip from buildroot is selected).

 /trunk/scripts/build/tools/200-sstrip.sh |    1     1     0     0 +
 /trunk/scripts/crosstool.sh              |    5     0     5     0 -----
 2 files changed, 1 insertion(+), 5 deletions(-)
2008-07-17 21:17:19 +00:00
Yann E. MORIN"
78d1209616 Move the check for tsocks' availability just before using tsocks: make it clear we check before we use.
Use CT_DoExecLog to validate tsocks configuration.
Don't use gawk, but awk. awk *is* GNU awk, check by ./configure.

 /trunk/scripts/crosstool.sh |    9     5     4     0 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
2008-07-16 21:57:12 +00:00
Yann E. MORIN"
6180cc0ea5 Allow to store working files outside the build tree (eg. incase the working tree is on the network).
/trunk/scripts/crosstool.sh   |    9     5     4     0 +++++----
 /trunk/config/global/paths.in |   23    22     1     0 ++++++++++++++++++++++-
 2 files changed, 27 insertions(+), 5 deletions(-)
2008-06-24 16:19:45 +00:00
Yann E. MORIN"
aa8a936a1d Help glibc build by exporting PARALLELMFLAGS.
/trunk/scripts/crosstool.sh |    1     1     0     0 +
 1 file changed, 1 insertion(+)
2008-06-17 11:30:36 +00:00
Yann E. MORIN"
1eaa6e6cbf Some makeinfo versions are a pain in [somewhere very painful].
Work this around with a wrapper that always succeeds, and leave incomplete files in place.

 /trunk/scripts/crosstool.sh |    7     7     0     0 +++++++
 1 file changed, 7 insertions(+)
2008-06-15 22:02:45 +00:00
Yann E. MORIN"
8dd0e17c51 Use the arch-specific target LDFLAGS into the final target LDFLAGS.
Fix a help entry in the CFLAGS_for_target config entry.

 /trunk/scripts/crosstool.sh |    4     3     1     0 +++-
 /trunk/config/target.in     |    2     1     1     0 +-
 2 files changed, 4 insertions(+), 2 deletions(-)
2008-05-24 22:38:07 +00:00
Yann E. MORIN"
0c4633c37f Get rid of all command (which is a bashism), and replace them with $(command), which is POSIX.
Get rid of all remaining \"text\" in log messages and replace them with 'text'.
Optimise the progress bar, should go un-noticed at log level DEBUG and below.

 /trunk/scripts/build/tools/200-sstrip.sh  |   16     8     8     0 ++--
 /trunk/scripts/build/libc_glibc.sh        |   50    25    25     0 +++++++-------
 /trunk/scripts/build/libc_uClibc.sh       |    4     2     2     0
 /trunk/scripts/build/debug/100-dmalloc.sh |    2     1     1     0
 /trunk/scripts/build/debug/400-ltrace.sh  |    2     1     1     0
 /trunk/scripts/build/debug/300-gdb.sh     |    8     4     4     0 +-
 /trunk/scripts/build/debug/200-duma.sh    |    6     3     3     0 +-
 /trunk/scripts/build/kernel_linux.sh      |   30    15    15     0 ++++----
 /trunk/scripts/build/cc_gcc.sh            |   14     7     7     0 ++--
 /trunk/scripts/crosstool.sh               |   54    27    27     0 ++++++++--------
 /trunk/scripts/functions                  |  128    64    64     0 ++++++++++++++++++------------------
 /trunk/scripts/saveSample.sh              |    4     2     2     0
 /trunk/scripts/tarball.sh.broken          |   20    10    10     0 +++---
 /trunk/tools/addToolVersion.sh            |    8     4     4     0 +-
 /trunk/tools/populate.in                  |   18     9     9     0 ++--
 15 files changed, 182 insertions(+), 182 deletions(-)
2008-05-20 21:32:39 +00:00
Yann E. MORIN"
ec169f9cc7 Fix forcing source extraction.
/trunk/scripts/crosstool.sh |    5     3     2     0 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
2008-05-15 20:42:45 +00:00
Yann E. MORIN"
4ebe15e6b4 Sanitise and use CT_CC_NATIVE.
Comment inclusion of scripts/functions.

 /trunk/scripts/build/cc_gcc.sh |    6     6     0     0 ++++++
 /trunk/scripts/crosstool.sh    |    7     6     1     0 ++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)
2008-05-14 17:56:33 +00:00
Yann E. MORIN"
86c54d8079 Merge the fortran stuff to trunk now it works!
Fortran is not supported for all targets, though. ARM at least does not work.

 /trunk/scripts/build/binutils.sh |    8     8     0     0 ++++++++
 /trunk/scripts/build/cc_gcc.sh   |   11     6     5     0 ++++++-----
 /trunk/scripts/crosstool.sh      |   10     9     1     0 +++++++++-
 /trunk/tools/addToolVersion.sh   |    3     3     0     0 +++
 /trunk/steps.mk                  |    2     2     0     0 ++
 /trunk/config/cc/gcc.in          |   16    16     0     0 ++++++++++++++++
 6 files changed, 44 insertions(+), 6 deletions(-)
2008-04-30 10:43:41 +00:00
Yann E. MORIN"
daa31a0c34 Building target libraries before the cross-compiler is available is doomed! Move build binutils' target libraries after final gcc.
Have a unique list of steps, it's easier to maintain.

 /trunk/scripts/build/binutils.sh |    8     5     3     0 +++++---
 /trunk/scripts/crosstool.sh      |   16     2    14     0 ++--------------
 /trunk/steps.mk                  |   29    16    13     0 ++++++++++++++++-------------
 3 files changed, 23 insertions(+), 30 deletions(-)
2008-04-28 07:38:36 +00:00
Yann E. MORIN"
e6ca02b829 Configure tsocks with a simple heuristic.
Consider the proxy has to be in a 'local' network. It means it is directly
reachable by the local machine, even if the local machine has to hop through
one or more gates to reach the proxy (often the case in enterprise networks
where class A 10.0.0.0/8 is in fact sub-divided into smaller networks, each
one of them in a different location, eg. 10.1.0.0/16 in a place, while
10.2.0.0/16 would be on the other side of the world). Not being in the same
subnet does not mean the proxy is not available.

So we will build a mask with at most high bits set, which defines a network
that has both the local machine and the proxy. Because a machine may have
more than one interface, build a mask for each of them, removing 127.0.0.1
which is added automagically by tsocks, and removing duplicate masks.

If all of this does not work, then it means the local machine can NOT in fact
reach the proxy, which in turn means the user mis-configured something (most
probably a typo...).

 /trunk/scripts/crosstool.sh |   61    52     9     0 +++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 52 insertions(+), 9 deletions(-)
2008-04-26 21:31:05 +00:00
Yann E. MORIN"
08f2c57f96 Tss.... I was bieng real stupid while building up the tsocks.conf file. Implement a much simpler way.
/trunk/scripts/crosstool.sh |   27     5    22     0 +++++----------------------
 1 file changed, 5 insertions(+), 22 deletions(-)
2008-04-20 18:04:20 +00:00
Yann E. MORIN"
59ed1ed600 Using SOCKS 4/5 proxy is no easy task:
- a machine may well be able to reach the proxy, even if it is not on the same sub-net(s) as the machine itself (absolutely legitimate)
 - tsocks.conf needs a list of so-called 'local' networks that can be reached without the need for a SOCKS connection
 - SOCKS proxies are expected to be in 'local' networks
 - there is absolutely NO way to tell what networks are local, besides the sub-net(s) the machine is in

Therefore, appropriate configuration of SOCKS 4/5 configuration is really complex, and attempts to correctly overcome this issue are doomed.

 /trunk/scripts/crosstool.sh              |   52    46     6     0 ++++++++++++++++++++++++++++++++++----
 /trunk/config/global/download_extract.in |   39    31     8     0 +++++++++++++++++++++++------
 2 files changed, 77 insertions(+), 14 deletions(-)
2008-04-18 22:16:28 +00:00
Yann E. MORIN"
b44e4e652a Fix using HTTP proxy.
/trunk/scripts/crosstool.sh              |    9     5     4     0 +++++----
 /trunk/config/global/download_extract.in |    2     1     1     0 +-
 2 files changed, 6 insertions(+), 5 deletions(-)
2008-04-18 08:41:30 +00:00
Yann E. MORIN"
9e9d061e01 Add an option to use a SOCKS 4/5 proxy to connect to the internet.
As for the HTTP proxy, this is completetly untested, as I have no such proxy at home.

 scripts/crosstool.sh |   45    31    14     0 +++++++++++++++++--------
 config/global.in     |   95    81    14     0 +++++++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 112 insertions(+), 28 deletions(-)
2008-04-17 18:07:26 +00:00
Yann E. MORIN"
0b89b1a938 Allow using an HTTP proxy to tunnel FTP and HTTP requests.
scripts/crosstool.sh |   14    14     0     0 +++++++++++++
 config/global.in     |   54    54     0     0 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+)
2008-04-13 22:46:02 +00:00
Yann E. MORIN"
07fa611771 Robet P. J. DAY: typoes. 2008-02-14 22:44:34 +00:00
Yann E. MORIN"
34c2acc77a Patch from Michael Abbott <michael@araneidae.co.uk> to allow build to work with ancient findutils. 2008-01-28 18:40:31 +00:00
Yann E. MORIN"
8891e25cd6 Do not try to save new;y downloaded tarballs to local storage if the directory does not exist. 2007-09-23 17:18:18 +00:00
Yann E. MORIN"
b1e693e402 Renamed all patches file names so that locales are now irrelevant to sort the files.
Removed the locale check as it is now irrelevant.
Removed the experimental binutils 2.17.50.0.xx: 2.18 is here now.
2007-09-23 17:08:09 +00:00
Yann E. MORIN"
dd9e2b9602 ARM EABI is now working for little endian ARM targets.
Big endian is still missing, though...
2007-09-16 17:59:18 +00:00
Yann E. MORIN"
60b7c724bd Call architecture-specific functions from all scripts needing them. 2007-09-16 08:52:26 +00:00
Yann E. MORIN"
3f09a4d4c6 Further improve the architecture-specific framework.
Apply this framework into building of glibc and gcc.

(Whoo! 500th commit! Yeah!)
2007-09-15 21:44:18 +00:00
Yann E. MORIN"
8ed77399de We don't support Cygwin yet, no point in having quirks in. 2007-09-15 08:40:07 +00:00
Yann E. MORIN"
9501e62afa Further expand the architecture-specific function: add CT_KERNEL_ARCH building. 2007-09-14 21:50:30 +00:00
Yann E. MORIN"
7b70a704e0 Add the framework to have architecture-specific configuration and functions.
API is not yet defined.
2007-09-14 17:43:16 +00:00
Yann E. MORIN"
ae7e017380 Small eye candy fix. 2007-09-14 17:29:39 +00:00
Yann E. MORIN"
09f0dcc66f Change "triplet" (target triplet) to "tuple". That sounds better!
Document overriding the number of // jobs.
Some small documentation fixes.
2007-08-15 16:18:35 +00:00
Yann E. MORIN"
54cca9f2ba Add the possibility to force the number of // jobs without reconfiguring. 2007-08-15 14:59:37 +00:00
Yann E. MORIN"
e58af8f79e Get rid of the core cc selection. It is now the same as the final compiler. 2007-08-15 10:14:43 +00:00
Yann E. MORIN"
ab8763bedd Introduce new config option: CT_TARGET_ALIAS_SED_EXPR
This option is used as a sed expression to pass onto CT_TARGET to create an alias.
2007-08-07 19:40:38 +00:00
Yann E. MORIN"
feb0328d7a Make use of setsid to spawn removal processes: we don't want the rm's to stop if the main script fails and ends before all directories were removed. 2007-08-07 18:05:41 +00:00
Yann E. MORIN"
72caaf7717 Revert previous spurious commit. 2007-08-07 17:08:13 +00:00
Yann E. MORIN"
f1741dc507 Fix the Makefile.in to correctly remove generated documentation. 2007-08-07 17:07:39 +00:00