Skip to content

Commit

Permalink
Finish the conversion of old content
Browse files Browse the repository at this point in the history
+ describe known host OS setup and feature-related issues.

Some host OSes are TBDs yet where I need to do a clean reinstall and
determine the required packages.

Signed-off-by: Alexey Neyman <stilor@att.net>
  • Loading branch information
stilor committed Mar 26, 2017
1 parent 0ec8d5f commit 94f13f2
Show file tree
Hide file tree
Showing 12 changed files with 465 additions and 586 deletions.
8 changes: 7 additions & 1 deletion _includes/intro.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<div id="intro">
<span class="ctng">crosstool-NG</span> is a versatile (cross) toolchain generator. It supports many architectures and components and has a simple yet powerful menuconfig-style interface. Please read the <a href="{{ "/docs/introduction/" | prepend: site.baseurl }}">introduction</a> and refer to the <a href="{{ "/docs/" | prepend: site.baseurl }}">documentation</a> for more information.
<p>Crosstool-NG is a versatile (cross) toolchain generator.
It supports many architectures and components and has a simple yet powerful
menuconfig-style interface. Please read the
<a href="{{ "/docs/introduction/" | prepend: site.baseurl }}">introduction</a>
and refer to the <a href="{{ "/docs/" | prepend: site.baseurl }}">documentation</a>
for more information.</p>
<p><a href="/testimonials/">See</a> what the users of crosstool-NG have to say!</p>
</div>
16 changes: 13 additions & 3 deletions _pages/docs/2_Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ title: Installing crosstool-NG
permalink: /docs/install/
---

There also two ways how you can obtain the crosstool-NG sources:
Before installing crosstool-NG, you may need to install additional packages on
the host OS. Specific instructions for several supported operating systems and
distributions are provided [here](/docs/tutorials/). Note that not all the
dependencies are currently detected by the `configure` script; missing some of
them may later result in failing `ct-ng build`.

There two ways how you can obtain the crosstool-NG sources:

- by [downloading a released tarball](#download-tarball);

Expand All @@ -15,11 +21,11 @@ There also are two ways you can use crosstool-NG:
- [build and install it](#install-method), then get rid of the sources like
you’d do for most programs;

- or only [build it and run from the source directory](#hackers-way).
- or [only build it and run from the source directory](#hackers-way).

The typical workflow assumes using a released tarball and installing crosstool-NG.
If you intend to do some development on crosstool-NG and/or submit patches,
you'd likely want a clone of the repository.
you'd likely want a clone of the repository and running from the source directory.


Downloading a released tarball <a name="download-tarball"></a>
Expand All @@ -29,6 +35,10 @@ First, download the tarball:

wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-VERSION.tar.bz2

or

wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-VERSION.tar.xz

Starting with 1.21.0, releases are signed with Bryan Hundven's PGP key. The
fingerprint is:

Expand Down
3 changes: 1 addition & 2 deletions _pages/docs/3_Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,5 +143,4 @@ Then, you can review and change the configuration by running:
> crosstool-NG version. Perform `ct-ng oldconfig` prior to building the toolchain!
> Otherwise, the options introduced in the new release will not be set to their
> default values, and this will result in errors later on! If you cloned a Git
> repository, you need to do `ct-ng oldconfig` each time you do a `git pull` or
> `git fetch`.
> repository, you need to do `ct-ng oldconfig` each time you do a `git pull`.
6 changes: 3 additions & 3 deletions _pages/docs/6_Toolchain_Types.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ anyway. There are a few caveats, though.

While building a "native" toolchain, crosstool-ng will currently still
compile new version of libc for the target. There is currently no way
to use the system libc as a part of the toolchain. This may work if you
choose a compatible version (i.e., the applications compiled with the toolchain
will load the system libc).
to use the system libc and/or system kernel headers as a part of
the toolchain. This may work if you choose a compatible version (i.e.,
the applications compiled with the toolchain will load the system libc).

A "cross-native" toolchain can be built as a trivial case of the "canadian"
toolchain. It is suboptimal, as it makes crosstool-NG build the tools
Expand Down
139 changes: 0 additions & 139 deletions _pages/docs/B_Known_issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,86 +72,6 @@ So now, on for the real issues...
**Workaround**:
Uninstall ccache.

--------------------------------
**Symptoms**:
The extract and/or path steps fail under Cygwin.

**Explanations**:
This is not related to crosstool-NG. Mounts under Cygwin are by default not
case-sensitive. You have to change a registry setting to disable
case-insensitivity. See:
http://cygwin.com/faq.html section 4, question 30.

**Status**:
DEPRECATED

**Fix**:
Change the registry value as per the instructions on the Cygwin website.

**Workaround**:
None.

--------------------------------
**Symptoms**:
uClibc fails to build under Cygwin.

**Explanations**:
With uClibc, it is possible to build a cross-ldd. Unfortunately, it is
not (currently) possible to build this cross-ldd under Cygwin.

**Status**:
DEPRECATED

**Fix**:
None so far.

**Workaround**:
Disable the cross-ldd build.

--------------------------------
**Symptoms**:
On 64-bit build systems, the glibc build fails for
64-bit targets, because it can not find libgcc.

**Explanations**:
This issue has been observed when the companion libraries are built
statically. For an unknown reason, in this case, the libgcc built by the
core gcc is not located in the same place it is located when building
with shared companion libraries.

**Status**:
DEPRECATED

**Fix**:
None so far.

**Workaround**:
Build shared companion libraries.

--------------------------------
**Symptoms**:
Warning: `libtool.m4: error: problem compiling FC test program`

**Explanations**:
The gcc build procedure tries to run a Fortran test to see if it has a
working native fortran compiler installed on the build machine, and it
can't find one. A native Fortran compiler is needed (seems to be needed)
to build the Fortran frontend of the cross-compiler.
Even if you don't want to build the Fortran frontend, gcc tries to see
if it has one, but fails. This is no problem, as the Fortran frontend
will not be built. There is nothing to be worry about (unless you do
want to build the Fortran frontend, of course).

**Status**:
CURRENT

**Fix**:
None so far. It's a spurious error, so there will probably never be
a fix for this issue.

**Workaround**:
None needed, it's a spurious error.

--------------------------------
**Symptoms**:
Build fails with: `unable to detect the exception model`
Expand All @@ -173,65 +93,6 @@ So now, on for the real issues...
default 'M') in the menuconfig, option `CT_CC_GCC_SJLJ_EXCEPTIONS`
labeled "Use sjlj for exceptions".

--------------------------------
**Symptoms**:
Build fails with `configure: error: forced unwind support is required`

**Explanations**:
The issue seems to be related to building NPTL on old versions
of glibc on some architectures (seen on powerpc, s390, s390x and x86_64).

**Status**:
CURRENT

**Fix**:
None so far. It would require some glibc hacking.

**Workaround**:
Try setting "Force unwind support" in the "C-library" menu.

--------------------------------
**Symptoms**:
glibc start files and headers fail with: `/usr/include/limits.h Error 1`

**Explanations**:
Old glibc Makefiles break with make-3.82.

**Status**:
CURRENT

**Fix**:
None so far. It would require some glibc hacking.

**Workaround**:
There two possible workarounds:
1- Ask crosstool-NG to build make-3.81 just for this build session.
Select the following options:
````
Paths and misc options --->
[*] Try features marked as EXPERIMENTAL
Companion tools --->
[*] Build some companion tools
[*] make
````
2- manually install make-3.81 to take precedence over the system make.

--------------------------------
**Symptoms**:
The build fails with `mixed implicit and normal rules. Stop.`

**Explanations**:
Old glibc Makefiles break with make-3.82.

**Status**:
CURRENT

**Fix**:
None so far. See above issue.

**Workaround**:
See above issue.

--------------------------------
**Symptoms**:
On x86_64 hosts with 32bit userspace the GMP build fails with:
Expand Down
Loading

0 comments on commit 94f13f2

Please sign in to comment.