summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-02-27docs: rename chapter 9Yann E. MORIN"1-0/+0
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-24docs: add chapter 9 to ToCYann E. MORIN"2-2/+8
Missed in the previous commit... :-/ Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-24docs: add an in-depth explanations of the build stepsYann E. MORIN"1-0/+257
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-22complibs/mpc: add latest version 0.9Yann E. MORIN"1-0/+6
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-22complibs/ppl: add latest version 0.11.1Yann E. MORIN"1-0/+6
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-22kernel/linux: fix typo in version stringYann E. MORIN"1-1/+1
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-22cc/gcc: do not build plugins for static toolchainsYann E. MORIN"2-0/+2
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-21libc/glibc: LinuxThreads are no longer supported in latest versionsYann E. MORIN"1-1/+2
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-21libc/glibc: fix dubious construct when installing headersYann E. MORIN"1-1/+6
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-21libc/glibc: only install start files for NPTLYann E. MORIN"1-18/+20
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-21libc/glibc: add fortify optionYann E. MORIN"2-1/+29
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-21internals: don't remove lib64 symlinks in sysrootYann E. MORIN"1-2/+0
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-21kernel/linux: add latest versionsYann E. MORIN"1-27/+17
... and remove old versions. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-18comptools: install them side-to-side with build toolsYann E. MORIN"5-6/+6
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-19buildtools: the buildtools dir is in fact a prefixYann E. MORIN"2-10/+10
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-23buildtools: move to working directoryYann E. MORIN"2-8/+10
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>
2011-02-20buildtools: store path to buildtools in a variableYann E. MORIN"1-7/+8
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-01-22scripts: create the makeinfo wrapper before we set PATHYann E. MORIN"1-7/+7
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-22kernel: move the headers install stepYann E. MORIN"1-1/+1
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-02-17debug/gdb: add versions from LinaroYann E. MORIN"2-1/+21
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-17cc/gcc: add versions from LinaroYann E. MORIN"2-1/+30
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-17internals: fix stripping host binariesYann E. MORIN"1-4/+6
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-12libc/eglibc: Make eglibc 2.11 and 2.12 not experimentalBryan Hundven1-2/+0
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-12libc/eglibc: Add 2.13 branchBryan Hundven1-0/+6
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2011-01-30samples: update the samplesYann E. MORIN"40-381/+704
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-31libc/glibc: add option to force unwindYann E. MORIN"2-2/+33
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-30scripts: update toolsYann E. MORIN"2-10/+13
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-28cc/gcc: enable plugins if neededYann E. MORIN"3-7/+34
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-26scripts: squash the multi-slash in the sysroot symlinkYann E. MORIN"1-3/+4
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-28comptools: add make-3.81Yann E. MORIN"2-0/+31
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-28config: add an option not to remove the destination directoryYann E. MORIN"2-1/+23
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-25samples: update the mingw sampleYann E. MORIN"1-11/+20
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-25libc/mingw: do not remove support symlinkYann E. MORIN"1-3/+4
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-25config/toolchain: force use of sysroot if OBSOLETE is not setYann E. MORIN"1-0/+6
Use of the sysroot is highly recommended, and the non-sysroot case is both obsolete and not widely tested. Before the non-sysroot case can go away, deprecate it. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-25scripts: fix double slash in pathsYann E. MORIN"2-0/+20
Computed paths may contain double slashes. This is not an issue but it is just ugly to look at. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-25config: add an option to name the sysroot directoryYann E. MORIN"5-10/+30
Depending on local policies, some users have expressed a need to have the sysroot be named differently than the hard-coded name. Add an option for that. Default to 'sysroot' to match the existing literature. While at it, replace 'sys-root' with 'sysroot' everywhere we reference the sysroot. Reported-by: Alexey Kuznetsov <Alexey.KUZNETSOV@youtransactor.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22libc: remove now unneeded do_libc_headersYann E. MORIN"8-25/+0
do_libc_headers is now a noop, and is no longer used, so remove that step. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-19libc/glibc-eglibc: misc janitorial cleanups.Yann E. MORIN"2-8/+12
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22libc/glibc: add glibc specifics to the shared code, and use itYann E. MORIN"2-203/+36
Final step at sharing code between glibc and eglibc. Fall, wall of shame, fall!... :-) Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22scripts: PARALLELMFLAGS is evil, renameYann E. MORIN"14-41/+38
The reunification of the glibc/eglibc code paths exposed a nasty bug in the glibc build: use of PARALLELMFLAGS breaks the build. See the explanations in that bug report against FC6: https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=212111 Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22libc/glibc: commonalise assembling the list of addonsYann E. MORIN"2-16/+5
glibc and eglibc each have two very similar ways of building this list. This can, and should definitetly, be shared. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22libc/glibc: commonalise setting of the minimum supported kernel versionYann E. MORIN"2-30/+35
It will be possible to use that also with eglibc, so this hunk belongs to the common code. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22libc/glibc: use the common start_files procedureYann E. MORIN"2-238/+27
Use the common procedure, shared between glibc and eglibc. This requires that glibc-specific bits be included in the shared procedure. But still build the full libc with the glibc-specific procedure. This will be commonalised in a future commit. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-17libc/eglibc: cleanup common code for sharing with glibcYann E. MORIN"1-31/+48
Some stuff is eglibc-specific, so needs to be conditonal. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-17libc/eglibc: move generic code to a common fileYann E. MORIN"2-215/+223
The build procedure for eglibc is generic enough to be shared between glibc and eglibc. This includes: - headers install (empty!) - start files build - complete libc build - libc finish (empty!) - add-ons list Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22libc/mingw: move content of do_libc_headers into do_libc_start_filesYann E. MORIN"1-4/+4
It is unnecessary to split C library preparation into two steps, as only one really makes sense. So, do_libc_headers is bound to be withdrawn short-term, in favor of do_libc_start_files. mingw already had all its start files installation in do_libc_headers, and do_libc_start_files was empty, just migrate the content of the former into the latter. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22libc/uClibc: move content of do_libc_headers into do_libc_start_filesYann E. MORIN"1-6/+5
It is unnecessary to split C library preparation into two steps, as only one really makes sense. So, do_libc_headers is bound to be withdrawn short-term, in favor of do_libc_start_files. uClibc already had all its start files installation in do_libc_headers, and do_libc_start_files was empty, just migrate the content of the former into the latter. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-03libc-glibc: remove 2.3.6Yann E. MORIN"26-1493/+3
This is an obsolete version which is no longer used by any sample (the only user, the ia64 sample, has been removed). It also makes the code path a bit complex, with twists just to accomodate that version. Removing the version will make those twists go away, and will ease commonalisation of glibc and eglibc in the future (hopefully!). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-03arch: remove ia64Yann E. MORIN"4-427/+0
ia64 is broken in every gcc/glibc combinations I tested (except for the existing sample that used very old versions). Nobody complained on the list about not being able to build recent versions. So the only way forward I can see is to remove the architecture altogether. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-14kernel/linux: simplify the download URLYann E. MORIN"1-2/+3
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>