Commit Graph

2287 Commits

Author SHA1 Message Date
Yann E. MORIN"
7bfa4139ad scripts: leave changelog in build dir, copy to install dir
Users tend to look for the build log in the current working directory,
rather than in the toolchain's installation dir. While bundling the build
log in the toolchain installation dir is nice for distribution and review,
it can be easier to have the build log readily available in the working
directory, as it is quicker to get to it.

So, the build log stays in the working directory until the toolchain is
completely and successfully built, and then a (compressed) copy is made.

Reported-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 00:02:21 +01:00
Yann E. MORIN"
a5d9facb14 complibs/ppl: add latest version
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-17 22:08:33 +01:00
Yann E. MORIN"
59751df290 kernel/linux: add newer versions
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-19 22:24:29 +01:00
Yann E. MORIN"
876d9a6259 scripts: fix stripping in finalisation step
The heuristic to find shell script is deficient. Fix it.

Reported-by: Kyle Grieb <grieb.kyle@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-19 21:43:26 +01:00
Yann E. MORIN"
965c646afd samples: new PPC e300c3 sample
Gustavo wrote:

---8<---
Attached my ct-ng e300c3 toolchain config for:

powerpc-e300c3-linux-gnu  [l X]
    OS             : linux-2.6.36.3
    Companion libs : gmp-5.0.1 mpfr-3.0.0 ppl-0.10.2 cloog-ppl-0.15.10 mpc-0.8.2 libelf-0.8.13
    binutils       : binutils-2.21
    C compiler     : gcc-4.5.2 (C,C++)
    C library      : eglibc-2_12
    Tools          :
---8<---

Reported-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
["Yann E. MORIN" : updated to match new config options]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-14 22:16:01 +01:00
Yann E. MORIN"
8a16f04055 scripts: update config.{guess,sub}
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-05 18:47:08 +01:00
Yann E. MORIN"
5473fb7bf2 binutils/binutils: use log level CFG for ./configure
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 23:29:07 +01:00
Yann E. MORIN"
55b57a8230 complibs/libelf: use log level CFG for ./configure
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 23:26:59 +01:00
Yann E. MORIN"
32fd4c0963 scripts: do not chmod u+w the whole source directory
Doing a chmod on the whole source dir after every packages
are extracted can take a hell of a lot of time.

The offending packages are far from legion, and they now
have their own chmod u+w to cleanup their own mess...

Reported-by: ANDY KENNEDY <ANDY.KENNEDY@adtran.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 23:46:03 +01:00
Yann E. MORIN"
55052c0d84 comptools/libtool: chmod files to u+w
The libtool-2.2.6b tarball contains RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:32:05 +01:00
Yann E. MORIN"
eb5cebe144 comptools/autoconf: chmod files to u+w
The autoconf-2.65 tarball contains RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:30:22 +01:00
Yann E. MORIN"
3ed184a1f2 comptools/make: chmod files to u+w
The make-3.81 tarball contains RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:28:16 +01:00
Yann E. MORIN"
897abbe362 comptools/automake: chmod files to u+w
The automake-1.11.1 tarball contains RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:28:40 +01:00
Yann E. MORIN"
30e16a4dff debug/gdb: chmod ncurses files to u+w
The ncurses-5.7 tarball contains only RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:26:08 +01:00
Yann E. MORIN"
ef429a5a5d kernel/linux: add latest 2.6.37.2 version
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-27 22:14:12 +01:00
Yann E. MORIN"
ae2ca9a8d8 binutils/sstrip: build statically for static toolchains
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-27 15:34:30 +01:00
Yann E. MORIN"
b37efbd994 binutils/elf2flt: remove trailing spaces
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-27 16:20:47 +01:00
Yann E. MORIN"
00a590e696 docs: rename chapter 9
Rename the file so that it is the same name as the chapter.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-27 15:27:54 +01:00
Yann E. MORIN"
638565ee4a docs: add chapter 9 to ToC
Missed in the previous commit... :-/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-24 22:38:08 +01:00
Yann E. MORIN"
dd6ea2508a docs: add an in-depth explanations of the build steps
The build process is quite complex: gcc is built three times, there are
two C library steps, there are those companion libraries...

People often wonder what all these steps do, and why they are needed.

Recently, someone proposed a tutorial on the crossgcc mailing list:
  http://sourceware.org/ml/crossgcc/2011-01/msg00059.html

This meant that there was a need for such a tutorial, and explanations
on how a toolchain is built. So i decide to extend my answers:
  http://sourceware.org/ml/crossgcc/2011-01/msg00060.html
  http://sourceware.org/ml/crossgcc/2011-01/msg00125.html

into proper documentation in crosstool-NG.

Thanks go to Francesco for suggesting this. He has a fine tutorial
for beginners there:
  http://fturco.org/wiki/doku.php?id=debian:cross-compiler

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-24 22:31:15 +01:00
Yann E. MORIN"
7fdd4ea3e9 complibs/mpc: add latest version 0.9
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-23 00:12:16 +01:00
Yann E. MORIN"
bc175d4e88 complibs/ppl: add latest version 0.11.1
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-23 00:10:57 +01:00
Yann E. MORIN"
3a75a086a1 kernel/linux: fix typo in version string
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-22 23:47:15 +01:00
Yann E. MORIN"
0841e2f820 cc/gcc: do not build plugins for static toolchains
Plugins are shared objects, and when building a toolchain statically,
the gcc build system breaks havok (although there is no hard technical
reasons it should not be possible)...

And consequently, do not enable plugin supoprt in binutils.

Reported-by: Thomas Spurden <thomas@ado.is-a-geek.net>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-22 23:27:42 +01:00
Yann E. MORIN"
b1edc84ae1 libc/glibc: LinuxThreads are no longer supported in latest versions
In fact, it is only supported in a few legacy versions.

Keep LT available for all eglibc versions, although it might need
a similar safeguard...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 23:42:20 +01:00
Yann E. MORIN"
ae126c295b libc/glibc: fix dubious construct when installing headers
This is dubious because if the copy fails, then we'll miss the error.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 19:27:28 +01:00
Yann E. MORIN"
43e89c8ddd libc/glibc: only install start files for NPTL
Building the start files requires a shared-capable compiler, which we do
not have when the threading implementation is LinuxThreads.

So, only build the start files when the threading implementations is NPTL.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 19:20:19 +01:00
Yann E. MORIN"
b93e67f07c libc/glibc: add fortify option
By default, recent versions of glibc and eglibc will build some
functions that take format strings (eg. printf, syslog...) with
run-time checks against some format string attacks. This is
called a fortified build.

Unfortunately, this fails somehow while building the instrumented
version of syslog, with some kind of circular dependency...

Disable fortified builds by default, and hide the enabling option
behind EXPERIMENTAL for daring users...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 23:39:46 +01:00
Yann E. MORIN"
6635f8cd2e internals: don't remove lib64 symlinks in sysroot
The lib64 symlinks are needed for the linker to find the libraries.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 14:39:24 +01:00
Yann E. MORIN"
c785cc5804 kernel/linux: add latest versions
... and remove old versions.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 23:17:45 +01:00
Yann E. MORIN"
3f0d43382c comptools: install them side-to-side with build tools
As companion tools might or might not be used to build each
toolchain, they do belong to that toolchain's build tools,
not to the generic override tools.

Fix a typo in the autoconf URL.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-18 22:55:56 +01:00
Yann E. MORIN"
742a6f6508 buildtools: the buildtools dir is in fact a prefix
Consider the buildtools install directory as a prefix directory,
that is, install buildtools in prefix/bin/, not in prefix/.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-20 00:07:29 +01:00
Yann E. MORIN"
5d175195f6 buildtools: move to working directory
There is absolutely *no* reason for the buildtools (wrappers to gcc, g++,
as, ld... for the local machine) to be in the toolchain directory. Moreover,
they are removed after the build completes.

Move them out of the toolchain directory, and into the build directory (but
yet the part specific to the current toolchain). This means we no longer
need to explicitly remove them either, BTW, but we need to save/restore them
for the restart feature.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-23 20:43:32 +01:00
Yann E. MORIN"
69a876c46e buildtools: store path to buildtools in a variable
Currently, the buildtools are installed relative to ${CT_PREFIX_DIR}.
Change that by introducing ${CT_BUILDTOOLS_DIR}, which is
still set relative to ${CT_PREFIX_DIR}, but which will make it easy
to change in the future.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-20 22:12:43 +01:00
Yann E. MORIN"
7e64cef4b4 scripts: create the makeinfo wrapper before we set PATH
If we set PATH to the tools wrappers before we create the
makeinfo wrapper, then we may well wrap an existing wrapper
from a previous run.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 23:20:18 +01:00
Yann E. MORIN"
7494386046 kernel: move the headers install step
The kernel headers are only needed just before we build
the C library headers, and need not be present before.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:52:57 +01:00
Yann E. MORIN"
a59b794f9c debug/gdb: add versions from Linaro
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-17 23:05:34 +01:00
Yann E. MORIN"
83a004e2c4 cc/gcc: add versions from Linaro
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-17 22:29:33 +01:00
Yann E. MORIN"
1339801661 internals: fix stripping host binaries
The gcc used by linaro has a version number specific to Linaro, but
identifies itself with its upstream version numbering scheme.

This breaks the strip in the finish step, because the actual gcc version
is not the same as the configured one (eg. 4.5.2 vs. linaro-4.5-2011.02-0).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-17 21:54:07 +01:00
Bryan Hundven
efad18c4d6 libc/eglibc: Make eglibc 2.11 and 2.12 not experimental
I haven't noticed the usual experimental testers complain about eglibc
2.11 or 2.12 being unstable. So stop marking them as experimental.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2011-02-12 17:31:12 +01:00
Bryan Hundven
3cb87f6cd8 libc/eglibc: Add 2.13 branch
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2011-02-12 17:30:53 +01:00
Yann E. MORIN"
ea70303d73 samples: update the samples
Release time is coming at a fast pace. It is now time to
update the samples so they apply cleanly.

The canadian-cross sample mingw32,i686-none-linux-gnu has
been replaced with i586-mingw32msvc,i686-none-linux-gnu.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-30 19:25:56 +01:00
Yann E. MORIN"
1838bb1f15 libc/glibc: add option to force unwind
We make it an option, as not all combinations of architectures
vs. compiler vs. glibc/eglibc exhibit the issue. Mostly visible
on old glibc versions, it seems...

This is a missing part from the glibc/eglibc merger... :-/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-31 19:52:18 +01:00
Yann E. MORIN"
f8ea3111b4 scripts: update tools
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-30 19:31:51 +01:00
Yann E. MORIN"
adbf0ff180 cc/gcc: enable plugins if needed
Enabling plugins in binutils is not enough, and gcc also
needs to be ./configured with --enable-plugins, although
this is not documented anywhere... :-/

Reported-by: karthik duraisami <kdconstant@hotmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-28 18:53:37 +01:00
Yann E. MORIN"
a2e31b9c53 scripts: squash the multi-slash in the sysroot symlink
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-26 19:13:18 +01:00
Yann E. MORIN"
15da72b273 comptools: add make-3.81
Since the advent of make-3.82, some packages now break due to changes
in make-3.82, being stricter than 3.81 when interpreting the Makefiles.

This has bugged us a bit too much so far, and I believe fixing all
of them is a long road, while simply building make-3.81 is the easiest
route for now.

Of course, in the long term, packages will get fixed upstream, and we
should back-port the fixes to old versions, and get rid of building
make-3.81. In the meantime...

Reported several times on the mailing list.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-29 00:57:02 +01: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"
4d82364f1f samples: update the mingw sample
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-26 00:12:27 +01:00
Yann E. MORIN"
2014041480 libc/mingw: do not remove support symlink
Under mingw, it seems that there is a mix between the traditional /usr
directory, and a similar-purposed /mingw directory (both in the sysroot).

Currently, we create /mingw as a symlink to /usr, and we removed it in
the libc-finish step.

Unfortunately, this prevents the pre-processor to find the headers.
Keeping the symlink makes it magically work...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-26 00:04:41 +01:00