summaryrefslogtreecommitdiff
path: root/debian/README.cross
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2019-11-19 17:35:47 +0300
committerIgor Pashev <pashev.igor@gmail.com>2019-11-19 17:35:47 +0300
commit03bebac19e6fef19299d7326d3ee41f8a7dd1316 (patch)
treebb413d22ada331790f08b7b9a592e5ab95cd8918 /debian/README.cross
parent94a19f31b81e9e7e295414fe2ad2302e0db25a08 (diff)
parent8f6c4b0033c72f8ac14694c419a99458339dd6a9 (diff)
downloadgcc-9-03bebac19e6fef19299d7326d3ee41f8a7dd1316.tar.gz
Merge tag 'debian/9.2.1-19'
Diffstat (limited to 'debian/README.cross')
-rw-r--r--debian/README.cross160
1 files changed, 19 insertions, 141 deletions
diff --git a/debian/README.cross b/debian/README.cross
index a91829e..ccf245b 100644
--- a/debian/README.cross
+++ b/debian/README.cross
@@ -1,144 +1,22 @@
Building cross-compiler Debian packages
---------------------------------------
-It is possible to build C and C++ cross compilers and support libraries
-from gcc-4.0 source package. This document describes how to do so.
-Cross-compiler build support is not perfect yet, please send fixes
-and improvements to debian-gcc@lists.debian.org and
-debian-embedded@lists.debian.org
-
-Before you start, you should probably check available pre-built
-cross-toolchain debs. Available at http://www.emdebian.org
-
-Old patches could be reached at
- http://zigzag.lvk.cs.msu.su/~nikita/debian/
-
-If they are no longer there, you may check EmDebian web site at
- http://www.emdebian.org/
-or ask debian-embedded@lists.debian.org for newer location.
-
-Please check http://bugs.debian.org/391445 if you are about building
-gcc-4.3 or above.
-
-Most of them has been merged with gcc debian sources.
-
-0. What's wrong with toolchain-source approach
-
-Package toolchain-source contains sources for binutils and gcc, as well as
-some support scripts to build cross-compiler packages. They seem to work.
-
-However, there is one fundamental problem with this approach.
-Gcc package is actively maintained and frequently updated. These updates
-do contain bug fixes and improvements, especially for non-x86 architectures.
-Cross-compilers built using toolchain-source will not get those fixes unless
-toolchain-source package is updated after each binutils and gcc update.
-The later is not hapenning in real life. For example, toolchain-source
-was upgraded from gcc-3.2 to gcc-3.3 half a year later than gcc-3.3 became
-Debian default compiler.
-
-Keeping toolchain-source package up-to-date requires lots of work, and seems
-to be a waste of time. It is much better to build cross-compilers directly
-from gcc source package.
-
-
-1. What is needed to build a cross-compiler from gcc-4.3 source
-
-1.1. dpkg-cross package
-
-Dpkg-cross package contains several tools to manage cross-compile environment.
-
-It can convert native debian library and lib-dev packages for the target
-architecture to binary-all packages that keep libraries and headers under
-/usr/$(TARGET)/.
-
-Also it contains helper tools for cross-compiling debian packages. Some of
-these tools are used while building libgcc1 and libstdc++ library packages.
-The resulting library packages follow the same convensions as library packages
-converted by dpkg-cross.
-
-Currently, at least version 1.18 of dpkg-cross is needed for cross-gcc
-package build. Version 1.32 of dpkg-cross is needed in order to build gcc-4.3.
-
-1.2. cross-binutils for the target
-
-You need cross-binutils for your target to build cross-compiler.
-Binutils-multiarch package will not work because it does not provide cross-
-assemblers.
-
-If you don't want to use pre-built cross-binutils packages, you may build
-your own from binutils debian source package, using patches posted to
-bug #231707. Please use the latest of patch versions available there.
-
-Alternatively, you may use toolchain-source package to build cross-binutils
-(but in this case you will probably also want to use toolchain-source
-to build cross-compiler itself). However, multilib'ed cross-compilers may
-not build or work with these binutils.
-
-1.3. libc for target
-
-You also need libc library and development packages for the target
-architecture installed.
-
-To get those, download linux-kernel-headers, libc6, and libc6-dev binary
-debs for your target, convert those using dpkg-cross -b, and install
-resulting -arch-cross debs. Consult dpkg-cross manual page for more
-information.
-
-Building with/for alternative libc's is not supported yet (but this is in
-TODO).
-
-Note that if you plan to use your cross-toolchain to develop kernel drivers
-or similar low-level things, you will probably also need kernel headers
-for the exact kernel version that your target hardware uses.
-
-
-2. Building cross-compiler packages
-
-Get gcc-4.3 source package.
-
-Unpack it using dpkg-source -x, and cd to the package directory.
-
-Set GCC_TARGET environment variable to the target architectire name. Note
-that currently you should use debian architecture name (i.e 'powerpc' or 'arm'),
-not GNU system type (i.e. 'powerpc-linux' or 'arm-linux'). Setting GCC_TARGET
-to GNU system type will cause cross-compiler build to fail.
-
-Instead of setting GCC_TARGET, target architecture name may be put into
-debian/target file. If both GCC_TARGET is defined and debian/target file
-exists, GCC_TARGET is used.
-
-Run debian/rules control. This will change debian/control file,
-adjusting build-depends. By default, the packages will not depend on the
-system -base package. A variable DEB_CROSS_INDEPENDENT has been merged with DEB_CROSS variable.
-
-You can then build with either
-
-$ GCC_TARGET=[arch] dpkg-buildpackage -rfakeroot
-
-3. Using crosshurd
-
-Jeff Bailey <jbailey@raspberryginger.com> suggests alternate way to setup
-environment to build cross-compiler, using 'crosshurd' package.
-Crosshurd is like debootstrap but cross-arch, and works on the Hurd,
-Linux and FreeBSD. (The name is historical).
-
-If you setup your environment with crosshurd, you will need to fix symlinks
-in lib and usr/lib to be relative instead of absolute. For example:
-
-lrwxrwxrwx 1 root root 20 2004-05-06 23:02 libcom_err.so -> /lib/libcom_err.so.2
-
-Needs to be changed to:
-
-lrwxrwxrwx 1 root root 20 2004-05-06 23:02 libcom_err.so -> ../../lib/libcom_err.so.2
-
-Also, if you choose this method, set the environment variable 'with_sysroot'
-to point to the ABSOLUTE PATH where the crosshurd was done.
-
-Note however that build-depends of cross-gcc and dependencies in generated
-libgcc1 and libstdc++ packages assume that you use dpkg-cross to set up
-your environment, and may be wrong or incomplete if you use alternate methods.
-But probably you don't care.
-
---
-Nikita V. Youshchenko <yoush@debian.org> - Jun 2004
-Hector Oron Martinez <hector.oron@gmail.com> - Oct 2006
+The packaging for cross toolchains is now in the archive, including
+all frontends, and targeting all release and ports architectures.
+
+Cross toolchains are built from the following source packages:
+
+ - binutils
+ - cross-toolchain-base
+ - cross-toolchain-base-ports
+ - gcc-7-cross
+ - gcc-7-cross-ports
+ - gcc-8-cross
+ - gcc-8-cross-ports
+ - gcc-9-cross
+ - gcc-9-cross-ports
+ - gcc-defaults
+ - gcc-defaults-ports
+
+Issues about the cross toolchains should be filed for one of the
+above source packages.