Crossdev
crossdev is [[Article description::a set of wrapper scripts that provides cross-compilation capability to Portage.]] It is written in bash and is dependent on a basic Gentoo subsystem.
crossdev is primary developed by Gentoo developer SMW::offMike Frysinger (vapier)SMW::on.
Installation
Emerge
root #emerge --ask sys-devel/crossdevCrossdev Overlay
You may want to consider creating a local repository overlay for crossdev.
Usage
Please note that the -S option (for stable) should not be used on arches with no stable keywords or a mixed (unstable, inconsistent) profile, e.g. mips or riscv.
Invocation
user $crossdev --helpUsage: crossdev [options] --target TARGET
Options:
--b, --binutils ver Specify version of binutils to use
--g, --gcc ver Specify version of gcc to use
--k, --kernel ver Specify version of kernel headers to use
--l, --libc ver Specify version of libc to use
Note: versions support depend atom syntaxes:
e.g. ">=2.20" "~4.6.1" "=2.13.1-r3"
-A, --abis abis Specify ABIs to build, first one is the default
--host-abi abi Specify the ABI of the compiler itself
--env env Specify env settings for all packages (see below)
--[bdgkl]env env Specify env settings for binutils/gdb/gcc/kernel/libc
Note: make sure to quote: 'VAR="some value"\nFOO="cow"'
-f, --force I don't need a seat belt!
-S, --stable Use latest stable versions as default
-C, --clean target Uninstall specified target
-P, --portage opts Options to pass to emerge (see emerge(1))
--with[out]-headers Build C library headers before C compiler?
--show-fail-log If the build fails, dump the failing log
Overlay Options:
-oS, --overlays list Space delimited list of overlays to search
[default: `portageq repositories_configuration`]
-oO, --ov-output path Overlay to write crossdev package links
[default: uses repo with name 'crossdev', or
'cross-${CTARGET}', or falls back to first
from --overlays list]
-ob, --ov-binutils path Overlay for binutils ebuilds [default: search]
-od, --ov-gdb path Overlay for gdb ebuilds [default: search]
-og, --ov-gcc path Overlay for gcc ebuilds [default: search]
-ok, --ov-kernel path Overlay for kernel ebuilds [default: search]
-ol, --ov-libc path Overlay for C library ebuilds [default: search]
-ox, --ov-extra path Overlay for extra packages [default: search]
Stage Options:
-s0, --stage0 Build just binutils
-s1, --stage1 Also build a bare C compiler (no C library/
C++/shared GCC libs/C++ exceptions/etc...)
-s2, --stage2 Also build kernel headers
-s3, --stage3 Also build the C library
-s4, --stage4 Also build a full compiler [default]
(shared libs GCC/various lang frontends/etc...)
External Tooling Options:
--show-target-cfg Display target settings that crossdev will use
--init-target Setup config/overlay/etc... files only
Extra Fun (must be run after above stages):
--ex-only Skip the stage steps above
--ex-gcc Build extra gcc targets (gcj/ada/etc...)
--ex-gdb Build a cross gdb
--ex-pkg pkg Build extra packages (may be used multiple times)
Target (-t) takes a tuple ARCH-VENDOR-OS-LIBC; see 'crossdev -t help'
To see the supported architectures, C libraries, and special targets:
user $crossdev --target helpSupported Architectures: - alpha - arm / armeb / aarch64 - hppa (parisc) - ia64 - i386 / i486 / i586 / i686 (x86) - m68k - mips / mipsel / mips64 / mips64el - powerpc (ppc) / powerpc64 (ppc64) - sparc / sparc64 - s390 / s390x - sh / sh[1-5] / sh64 - x86_64 (amd64) Supported C Libraries: - glibc (gnu) - klibc [prob wont work] - musl - newlib [bare metal/no operating system] - uclibc [not all arches are ported] Special Targets: - avr http://www.nongnu.org/avr-libc/ - bfin http://blackfin.uclinux.org/ - h8300 http://h8300-hms.sourceforge.net/ - mingw32 http://www.mingw.org/ - mingw64 http://mingw-w64.sourceforge.net/ - msp430 http://www.ti.com/msp430 - nds32 http://github.com/nds32 - nios2 http://www.altera.com/products/ip/processors/nios2/ni2-index.html - xc16x http://www.infineon.com/ - ee / iop / dvp (ps2) [Playstation 2 targets] - ppu / spu (cell) [Cell/Playstation 3 targets] Softfloat toolchains: Include 'softfloat' in the 'vendor' field e.g. armeb-softfloat-linux-uclibc powerpc-booya_softfloat-linux-gnu
Removal
Unmerge
root #emerge --ask --depclean --verbose sys-devel/crossdevSee also
- Cross build environment — provides instructions on creating a cross build environment using crossdev.
- Catalyst — Gentoo's release building tool.
- Creating a cross-compiler (Embedded Handbook)
- ARM — compiling code for an ARM processor, taking advantage of its FPU.
This article is issued from Gentoo. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.