Cross Compiling: Difference between revisions

From CSCWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 21: Line 21:
* Install resulting cross gcc-4.1
* Install resulting cross gcc-4.1


It's generally useful to upload these built packages to the CSC debian repository. The problem is that .changes files don't get generated. dpkg-genchanges might be able to help here.
It's generally useful to upload these built packages to the CSC debian repository. To do this you need to scp the .deb's over to natural-flavours and run 'rrr includedeb deb-files...'.


If you need i386 binary libraries, you can run 'apt-cross -a i386 -install package'.
If you need i386 binary libraries, you can run 'apt-cross -a i386 -i package'.

Revision as of 01:23, 7 September 2007

Instructions for compiling an i386 multlib toolchain:

  • Install apt-cross, dpkg-cross, autoconf, automake, gawk, flex, bison, debhelper, devscript, cdbs, fakeroot
  • Download i386 binary packages of linux-kernel-headers, libc6, libc6-dev, libc6-amd64, libc6-dev-amd64
  • Run 'dpkg-cross -a i386 -b package' for each of the above packages
  • Install the resulting cross packages that were created by dpkg-cross above
  • 'apt-get source' binutils and gcc-4.1
  • cd binutils and run:
    • TARGET=i486-linux-gnu fakeroot debian/rules binary-cross
  • Install resulting cross binutils
  • cd gcc-4.1 and run:
    • export GCC_TARGET=i386
    • export DEB_CROSS_INDEPENDENT=yes
    • export WITHOUT_LANG=java,fortran,pascal,obj,obj-c++,ada,treelang
    • export DEB_CROSS_NO_BIARCH=yes
    • debian/rules control
    • dpkg-buildpackage -b -rfakeroot
    • gcc will fail to build do to a small error:
      • src/libmudflap/mf-runtime.c:172: the type on __mf_lc_mask needs to be set to __mf_uintptr_t
    • dpkg-buildpackage -b -rfakeroot -nc
  • Install resulting cross gcc-4.1

It's generally useful to upload these built packages to the CSC debian repository. To do this you need to scp the .deb's over to natural-flavours and run 'rrr includedeb deb-files...'.

If you need i386 binary libraries, you can run 'apt-cross -a i386 -i package'.