Scroll to navigation

CROSS-GCC-GENSOURCE(1) cross-gcc-dev documentation CROSS-GCC-GENSOURCE(1)

NAME

cross-gcc-gensource - generates sources to build a Debian cross toolchain

SYNOPSIS

 [TARGET_LIST=<arches to target>] [HOST_LIST=<build arches>] [SUFFIX=.1] cross-gcc-gensource <gcc-version>
 example:
 /tmp$ TARGET_LIST="armel armhf" HOST_LIST="amd64" cross-gcc-gensource 5
 .... lots of verbose output ....
 /tmp$ cd cross-gcc-packages-amd64/cross-gcc-5-armel
 /tmp/cross-gcc-packages-amd64/cross-gcc-5-armel$ ls
 debian
 /tmp/cross-gcc-packages-amd64/cross-gcc-5-armel$ dpkg-buildpackage
 .... building cross-toolchain ....

DESCRIPTION

This is a utility that prepares a directory with debianized sources which build cross toolchain packages. The sources produced by this tool are very small; the code itself comes from the "gcc-version-source" package and the necessary patches and extra build stuff comes from the "cross-gcc-dev" package.

ARGUMENTS

Normal usage is

 cross-gcc-gensource gcc_version

Where "gcc_version" is the base version of the toolchain we're building. At the time of this writing we know about versions 4.9, 5, 6, 7, 8. This commandline argument is required.

Specifying the target architectures

This tool generates a separate source package for each target architecture (the architecture targetted by the cross-compiler being built). By default these architectures are targetted:

If a different set of target architectures is required, set the "TARGET_LIST" environment variable. For instance, to build for "armel" and "armhf":

 TARGET_LIST="armel armhf" cross-gcc-gensource 5

Specifying the host architectures

Similarly, this tool generates a separate source tree for each host architecture (the architecture the cross-compiler being built runs on). By default these architectures are targetted:

If a different set of host architectures is required, set the "HOST_LIST" environment variable. For instance, to build just for "amd64":

 HOST_LIST="amd64" cross-gcc-gensource 5

Specifying a verison suffix

If you need to upload a new source package when the version of gcc-source built-against hasn't changed, then you need to add a version suffix to avoid binary-version clashes. An optional SUFFIX env var allows this.

 TARGET_LIST="armel armhf" SUFFIX=.1 cross-gcc-gensource 5
2023-01-29 cross-gcc-dev=248