Project:Toolchain/use native symlinks

= Overview =

Packages should not normally use or rely on, and similar commands at build time. They should use user's preferred tools specified in, and similar variables. If unset portage normally uses CHOST-prefixed tools like.

To ease catching of ebuilds that hardcode, and similar a few toolchain packages provide mode. Disabling removes unprefixed tools from.

Currently and provide the mechanism.

Why would you use it?

 * multilib environments and cross-compiler environments can use tools like or  by accident and target wrong ABI as a result.  is especially tricky as preprocessor rarely fails. It just generates wrong data.
 * environments with non-standard tools like or even  have a better chance being applied consistently

TODO: links to more details on discoverable tools and expand on cross-compilation use case.

Removing native symlinks
Currently the flags are masked as many packages including base system fail to build if native symlinks are not present. Ideally they all should be fixed.

You need to unforce flags first:

And then disable USE:

Example fixes
TODO: autotools examples, make-based examples, leaking/embedding '/lib/cpp' into other toolchains examples.

Links and references

 * : tracker with known to fail ebuilds