DOKK / manpages / debian 12 / cross-gcc-dev / cross-gcc-gensource.1.en
CROSS-GCC-GENSOURCE(1) cross-gcc-dev documentation CROSS-GCC-GENSOURCE(1)

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

 [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 ....

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.

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.

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

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

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