From 0636ba98135684c366edfc3a588b8caef6d3d917 Mon Sep 17 00:00:00 2001 From: Christopher Larson Date: Thu, 25 Jul 2013 10:56:41 -0700 Subject: [PATCH] README.md: add description of how the layer works This information should be informative, covering exactly what the layer.conf and tcmode file are doing. In addition, it should address concerns about configuration migration from old versions of oe-core, without explicitly instructing the user in steps they may not need to perform. This also adds instructions on the use of `external-sourcery-rebuild-libc`. --- README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/README.md b/README.md index 7e8fd31..8b04b05 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,36 @@ Usage & Instructions priority over meta. - Set `EXTERNAL_TOOLCHAIN = "/path/to/your/sourcery-g++-install"` in `conf/local.conf`. +Optional functionality: + +- If the user chooses to, they may optionally decide to rebuild the Sourcery G++ eglibc + from source, if they have downloaded the corresponding source archive from Mentor + Graphics. To so, set `TCMODE = "external-sourcery-rebuild-libc"`, rather than relying + on the default value of `external-sourcery`. + +Description of Behavior +----------------------- + +The meta-sourcery layer.conf automatically defines `TCMODE` for us, so this is no longer +necessary. The tcmode performs a number of operations: + +- Sets `TARGET_PREFIX` appropriately, after determining what prefix is in use by the toolchain +- Sanity checks `EXTERNAL_TOOLCHAIN`: does the path exist? does the expected sysroot exist? +- Sanity checks execution of the toolchain binaries +- Sets preferences so that the `external-sourcery-toolchain` recipe is used in preference + to rebuilding various things from source with their own recipes +- Extracts version information from the toolchain (e.g. by running `${TARGET_PREFIX}gcc -v`), + for use in the `external-sourcery-toolchain` recipe and its binary packages +- Symlinks the toolchain binaries into the toolchain portion of the sysroot. This is done + in preference to adding the toolchain path to the `PATH`, to avoid the aforementioned + ia32 issue, and to let us work around certain issues (For example, we create an `ld.bfd` + link which the kernel build expects, but isn't shipped with the toolchain) +- Adds the external toolchain `PATH` to the setup script emitted when building SDKs (e.g. + when bitbaking meta-toolchain) +- Sets `GCCVERSION` to the gcc version of the toolchain, to prefer a matching gcc version for + the target package, if possible. Certain versions of gcc have trouble being built by other + versions of gcc, so this can avoid such issues. + Contributing ------------