Commit Graph

31 Commits

Author SHA1 Message Date
Chris Packham
376a289777 Add option to build toolchain tarball
Add TARBALL_RESULT option that will produce a tarball of the final
toolchain to make it easier to deploy the toolchain to other machines.

The implementation uses `find | sort` instead of `tar --sort` because
this was introduced in GNU Tar v1.28, which is not available in some LTS
Linux distributions. This is  a variation of the command recommended
here: https://wiki.debian.org/ReproducibleBuilds/FileOrderInTarballs

Closes #1262

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-06-15 21:51:58 +12:00
Norbert Lange
ff0e8ac7ca move BUILD_DIR variable into Kconfig
this allows users to reference this variable,
for ex. in TARGET_CFLAGS to remap paths.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
2019-10-19 00:20:55 +02:00
Alexey Neyman
2219aab336 Implement an option to store downloads in subdirs
... following the buildroot model.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-13 01:05:13 -08:00
Alexey Neyman
8fe21d70a2 Make license collection optional, on by default
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-11-07 12:59:29 -08:00
Alexey Neyman
2acab2f061 Make CT_PREFIX_DIR/CT_WORK_DIR/CT_BUILD_TOP_DIR absolute
... if they aren't already.

Fixes #1010.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-09-27 01:01:20 -07:00
Alexey Neyman
2f286ce5ab Retire BACKEND stuff
... it is possible to just not set it in the configuration, why force
it? It just increases the complexity in Kconfig.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-04-23 00:24:41 -07:00
Alexey Neyman
832bee87c0 Make build-all rely on kconfig options.
For that, make CT_BUILD_TOP_DIR a non-settable config option (so that it is
recursively expanded with CT_HOST/CT_TARGET). Use a common prefix, with
same default as for regular sample build.

Use showConfig.sh to determine host toolchain path (for canadian crosses)
and build directory to be removed.

Remove LIBC_SYSROOT_ARG (unused).

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-19 18:08:29 -08:00
Alexey Neyman
3e4d4870c9 Simplify config saving.
Instead of hardcoding defaults in saveSample.sh.in, have the same
defaults in config. Then we can just remove them when saving the
config.
2017-01-19 18:08:29 -08:00
Alexey Neyman
c0cc73cd6f Install canadian crosses into a separate subdir.
Makes them sorted out by host, and removes the need for similar hack in
samples.mk.

Change how canadian crosses are named: using `=' character resulted in
Glibc build failure.

Move loading config into a common function, CT_LoadConfig.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-19 18:08:29 -08:00
Alexey Neyman
5c985041fd Kill CT_INSTALL_DIR.
We now use CT_PREFIX and expect the resulting toolchain to be relocatable.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-19 11:45:24 -08:00
Bryan Hundven
9d835eddcf config: Remove CUSTOM_LOCATION_ROOT_DIR
On top of making <component>_CUSTOM much more complicated to rewrite,
you couldn't depend on a requirement for all of the components to treat
custom sources the same with it around.

If you need a custom source for a component, define it in the component.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-12-08 07:20:35 -08:00
Bryan Hundven
2a89c32193 gcc: Remove gcc <= 4.7.x
As per #222, in crosstool-NG >= 1.23.0, we will only support:

 [upstream supported gcc versions] - 1

As of this writing, these versions are:

* 5.2.0
* 4.9.3
* 4.8.5 (the -1, since development on 4.8.x is now closed)

I plan to keep 4.8.5 around because of some architectures having issues
with over-optimization or just faulty optimization in the 4.9.x and
possibly newer versions.

I also cleaned up a requirement for glibc to depend on >= gcc-4.6.x for
>= glibc-2.20, but since the lowest gcc we support after this change is
>= 4.8.5, this condition can go away.

Patches for older gcc versions are removed in the next commit.

This closes #222

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-29 17:36:58 -08:00
Ilya Lyubimov
69405c3b32 Use install-strip target for gcc optionally 2015-11-11 12:29:54 +03:00
Yann E. MORIN"
db5b6a4915 all: unmark experimental features
It's been some time now we've had those features, so unmark them
being experimental.

It does not mean everything is perfect, but may gather some more
testing of those features.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-12-26 20:05:19 +01:00
David Holsgrove
f242016a09 scripts/functions: add a generic custom location infrastructure
Add a generic custom location infrastructure (inspired by the one in
kernel/linux) to allow the user to use custom tarballs or directories
for any component.

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
[yann.morin.1998@free.fr: move config option, improve help text, fix API doc]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <131c163c69f9cc81d2be.1349931191@localhost.localdomain>
PatchWork-Id: 190784
Message-Id: <0bbaba9190a76ba97f72.1349931192@localhost.localdomain>
PatchWork-Id: 190785
2012-10-04 13:26:14 +10:00
Yann E. MORIN"
74d555b2c3 scripts: add support for building manuals
Add support for building the HTML and PDF manuals for the major
components.  Implement for binutils, GCC, GDB, and GLIBC.

Always build all manuals and install a subset.  Be explicit about the
subset to reduce the clutter and to avoid getting copies of common
manuals like bfd from all of the sourceware based components.  Downside of
being explicit is that you need to update it when a new component
comes along.

Build the manuals as part of the last GCC build, namely 'cc' for glibc
based ones and cc_core_pass_2 for baremetal.

An example of the output is at:
 http://people.linaro.org/~michaelh/incoming/crosstool-NG/

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: depends on ! remove docs; gold manual install]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-16 10:06:21 +13:00
Yann E. MORIN"
c009897aee misc: fix more typos here and there...
Reported-by: "Antony N. Pavlov" <antony@niisi.msk.ru>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 16:53:40 +02:00
Benoît THÉBAUDEAU"
96245813d8 kconfig: remove useless 'default n'
kconfig bools are disabled by default, so specifying 'default n' is useless and
noisy. This patch removes all occurrences of 'default n'.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 16:27:39 +02:00
Yann E. MORIN"
cd348634e9 config: small help fix up for work dir default
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-28 01:10:23 +02:00
Yann E. MORIN"
7817bcebe7 config: add an option not to remove the destination directory
In certain circumstances, removing the destination/installation directory
is a bad idea. For example, when the build environment is already taking
care of sanitising the build tree, and pre-installs stuff in there, it is
a very bad idea to remove the destination directory.

This happens now in buildroot, as the crostool-NG backend now installs the
toolchain in the common host-tools directory, and pre-install there a few
host-utilities (eg. host-automake and host-gawk).

Provide a config knob to turn on/off the removal of the destination
directory, defaulting to 'y' (previous behavior), and forced to 'n' when
used as a backend.

Reported-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-28 22:06:49 +01:00
Yann E. MORIN"
72ad9d45f8 config: change name of default build dir
'targets' is not really meaningfull.
'build' means what it means.
'.build' just hides it as well! :-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-12 21:38:12 +02:00
Remy Bohmer
b1ac0964f4 scripts: add option to strip all toolchain executables
To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
2010-05-27 23:18:19 +02:00
Yann E. MORIN"
bf785b301b config: hide paths when used as a backend
When crosstool-NG is used as a backend, it is the responsibility of the
upper-layer build-system to properly set paths, so we just hide the
prompts in this case.
2010-03-29 12:04:27 +02:00
Yann E. MORIN"
539a2357df config: move the patch choice to the extract section
Choosing the origin of the patches to apply is best
done in the 'extract' section.
2009-08-31 22:55:26 +02:00
Yann E. MORIN"
2efc2b2319 config: add fallback to patch order
Add the possibility to fallback to either bundled or local patches
if local or bundled are missing.
2009-08-31 12:47:58 +02:00
Yann E. MORIN"
b09e70bda5 config: add the local,bundled patch order
This ordering first applies the local patches, then the bundeld ones.
2009-08-31 12:51:53 +02:00
Yann E. MORIN"
dc836b5e4d config: make selecting the patch origin a choice rather than a bool 2009-08-31 12:05:52 +02:00
Yann E. MORIN"
2166fb982f Change some config items' default values.
/trunk/config/global/paths.in   |    4     2     2     0 ++--
 /trunk/config/global/logging.in |    2     1     1     0 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
2008-08-01 08:23:29 +00:00
Yann E. MORIN"
710b79ab7a Change default path where toolchain will run from to "${HOME}/x-tools/${CT_TARGET}".
/trunk/config/global/paths.in |    2     1     1     0 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
2008-06-25 06:24:51 +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"
dd862bd7a4 Move config files around, and clean up the mess in the config/ directory.
config/kernel/kernel_linux.in            |   12     6     6     0 +-
 config/paths.in                          |   89     0    89     0 ----------------
 config/kernel_linux_headers_install.in   |  168     0   168     0 ------------------------------
 config/kernel.in                         |    2     1     1     0
 config/kernel_linux_headers_copy.in      |   42     0    42     0 --------
 config/cc.in                             |    2     1     1     0
 config/logging.in                        |  110     0   110     0 --------------------
 config/build-behave.in                   |   45     0    45     0 --------
 config/libc_uClibc.in                    |  101     0   101     0 ------------------
 config/kernel_linux_headers_sanitised.in |   62     0    62     0 -----------
 config/ct-behave.in                      |   82     0    82     0 ---------------
 config/kernel_linux.in                   |  134     0   134     0 ------------------------
 config/global.in                         |   10     5     5     0 +-
 config/download_extract.in               |  171     0   171     0 -------------------------------
 config/cc_gcc.in                         |  130     0   130     0 ------------------------
 config/libc_glibc.in                     |  124     0   124     0 ----------------------
 config/libc.in                           |    4     2     2     0
 17 files changed, 15 insertions(+), 1273 deletions(-)
2008-04-17 20:26:25 +00:00