ArmCrossCompiling

Differences between revisions 8 and 9
Revision 8 as of 2015-01-13 15:58:25
Size: 4377
Comment:
Revision 9 as of 2015-02-24 12:20:58
Size: 4419
Comment:
Deletions are marked like this. Additions are marked like this.
Line 46: Line 46:
 * libgcrypt11-dev (armhf)  * libgcrypt-dev (armhf)
Line 77: Line 77:
sudo apt-get install cmake qt5-default:armhf qtdeclarative5-dev:armhf qtbase5-private-dev:armhf qtdeclarative5-private-dev:armhf qtpositioning5-dev:armhf make ninja-build python g++ g++-arm-linux-gnueabihf pkg-config pkg-config-arm-linux-gnueabihf libglib2.0-dev:armhf libnss3-dev:armhf libpci-dev:armhf libgcrypt11-dev:armhf libdbus-1-dev:armhf libudev-dev:armhf libpulse-dev:armhf libasound2-dev:armhf libx11-dev:armhf libcap-dev:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libpango1.0-dev:armhf libxext-dev:armhf libxcomposite-dev:armhf libxrender-dev:armhf libxcursor-dev:armhf libxrandr-dev:armhf libxtst-dev:armhf libxdamage-dev:armhf libxfixes-dev:armhf libkrb5-dev:armhf libssl-dev:armhf gperf bison sudo apt-get install --no-install-recommends cmake qt5-default:armhf qtdeclarative5-dev:armhf qtbase5-private-dev:armhf qtdeclarative5-private-dev:armhf qtpositioning5-dev:armhf make ninja-build python g++ g++-arm-linux-gnueabihf pkg-config pkg-config-arm-linux-gnueabihf libglib2.0-dev:armhf libnss3-dev:armhf libpci-dev:armhf libgcrypt-dev:armhf libdbus-1-dev:armhf libudev-dev:armhf libpulse-dev:armhf libasound2-dev:armhf libx11-dev:armhf libcap-dev:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libpango1.0-dev:armhf libxext-dev:armhf libxcomposite-dev:armhf libxrender-dev:armhf libxcursor-dev:armhf libxrandr-dev:armhf libxtst-dev:armhf libxdamage-dev:armhf libxfixes-dev:armhf libkrb5-dev:armhf libssl-dev:armhf gperf bison
Line 82: Line 82:
sudo apt-get install cmake qt5-default:armhf qtdeclarative5-dev:armhf qtbase5-private-dev:armhf qtdeclarative5-private-dev:armhf qtpositioning5-dev:armhf make ninja-build python g++ g++-arm-linux-gnueabihf pkg-config pkg-config-arm-linux-gnueabihf libglib2.0-dev:armhf libnss3-dev:armhf libpci-dev:armhf libgcrypt11-dev:armhf libdbus-1-dev:armhf libudev-dev:armhf libpulse-dev:armhf libasound2-dev:armhf libx11-dev:armhf libcap-dev:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libpango1.0-dev:armhf libxext-dev:armhf libxcomposite-dev:armhf libxrender-dev:armhf libxcursor-dev:armhf libxrandr-dev:armhf libxtst-dev:armhf libxdamage-dev:armhf libxfixes-dev:armhf libkrb5-dev:armhf libssl-dev:armhf gperf bison libc6-dev-i386 lib32stdc++-4.8-dev linux-libc-dev:i386 sudo apt-get install --no-install-recommends cmake qt5-default:armhf qtdeclarative5-dev:armhf qtbase5-private-dev:armhf qtdeclarative5-private-dev:armhf qtpositioning5-dev:armhf make ninja-build python g++ g++-arm-linux-gnueabihf pkg-config pkg-config-arm-linux-gnueabihf libglib2.0-dev:armhf libnss3-dev:armhf libpci-dev:armhf libgcrypt-dev:armhf libdbus-1-dev:armhf libudev-dev:armhf libpulse-dev:armhf libasound2-dev:armhf libx11-dev:armhf libcap-dev:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libpango1.0-dev:armhf libxext-dev:armhf libxcomposite-dev:armhf libxrender-dev:armhf libxcursor-dev:armhf libxrandr-dev:armhf libxtst-dev:armhf libxdamage-dev:armhf libxfixes-dev:armhf libkrb5-dev:armhf libssl-dev:armhf gperf bison libc6-dev-i386 lib32stdc++-4.8-dev linux-libc-dev:i386

Introduction

Oxide supports cross compiling ARM builds with Ubuntu's multiarch toolchain. As some build dependencies for the target architecture may not be fully coinstallable with the corresponding native architecture packages, it is recommended that you set up a dedicated chroot for cross compiling so that you don't break your native build environment.

System requirements

TBC

Configuring you build environment

Creating a chroot

You will want to create a chroot to use as your build environment, so that you do not break your native build environment. There are quite a few guides already to help you set up a chroot with debootstrap and schroot. The chroot should match your native architecture.

Enable ARM as a foreign architecture

Once your chroot is configured, you need to enable armhf as a foreign architecture in dpkg, from inside your new chroot. To do this, please run

sudo dpkg --add-architecture armhf

Additional steps for x86-64 users

If your host architecture is x86-64, you will also need to enable i386 as a foreign architecture in dpkg, from inside your chroot. To do this, please run:

sudo dpkg --add-architecture i386

Build prerequisites

The following packages are required to cross-compile Oxide with Ubuntu's multiarch toolchain:

  • cmake (native)
  • qt5-default (armhf)
  • qtdeclarative5-dev (armhf)
  • qtbase5-private-dev (armhf)
  • qtdeclarative5-private-dev (armhf)
  • qtpositioning5-dev (armhf)
  • make (native)
  • ninja-build (native)
  • python (native)
  • g++ (native)
  • g++-arm-linux-gnueabihf (native)
  • pkg-config (native)
  • pkg-config-arm-linux-gnueabihf (native)
  • libglib2.0-dev (armhf)
  • libnss3-dev (armhf)
  • libpci-dev (armhf)
  • libgcrypt-dev (armhf)
  • libdbus-1-dev (armhf)
  • libudev-dev (armhf)
  • libpulse-dev (armhf)
  • libasound2-dev (armhf)
  • libx11-dev (armhf)
  • libxi-dev (armhf)
  • libcap-dev (armhf)
  • libfontconfig1-dev (armhf)
  • libfreetype6-dev (armhf)
  • libpango1.0-dev (armhf)
  • libxext-dev (armhf)
  • libxcomposite-dev (armhf)
  • libxrender-dev (armhf)
  • libxcursor-dev (armhf)
  • libxrandr-dev (armhf)
  • libxtst-dev (armhf)
  • libxdamage-dev (armhf)
  • libxfixes-dev (armhf)
  • libkrb5-dev (armhf)
  • libssl-dev (armhf)
  • gperf (native)
  • bison (native)

In addition, x86-64 users will need the following additional packages:

  • libc6-dev-i386 (native)
  • lib32stdc++-4.8-dev (native)
  • linux-libc-dev (i386)

To install these, you can just run:

sudo apt-get install --no-install-recommends cmake qt5-default:armhf qtdeclarative5-dev:armhf qtbase5-private-dev:armhf qtdeclarative5-private-dev:armhf qtpositioning5-dev:armhf make ninja-build python g++ g++-arm-linux-gnueabihf pkg-config pkg-config-arm-linux-gnueabihf libglib2.0-dev:armhf libnss3-dev:armhf libpci-dev:armhf libgcrypt-dev:armhf libdbus-1-dev:armhf libudev-dev:armhf libpulse-dev:armhf libasound2-dev:armhf libx11-dev:armhf libcap-dev:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libpango1.0-dev:armhf libxext-dev:armhf libxcomposite-dev:armhf libxrender-dev:armhf libxcursor-dev:armhf libxrandr-dev:armhf libxtst-dev:armhf libxdamage-dev:armhf libxfixes-dev:armhf libkrb5-dev:armhf libssl-dev:armhf gperf bison

x86-64 users will want to run:

sudo apt-get install --no-install-recommends cmake qt5-default:armhf qtdeclarative5-dev:armhf qtbase5-private-dev:armhf qtdeclarative5-private-dev:armhf qtpositioning5-dev:armhf make ninja-build python g++ g++-arm-linux-gnueabihf pkg-config pkg-config-arm-linux-gnueabihf libglib2.0-dev:armhf libnss3-dev:armhf libpci-dev:armhf libgcrypt-dev:armhf libdbus-1-dev:armhf libudev-dev:armhf libpulse-dev:armhf libasound2-dev:armhf libx11-dev:armhf libcap-dev:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libpango1.0-dev:armhf libxext-dev:armhf libxcomposite-dev:armhf libxrender-dev:armhf libxcursor-dev:armhf libxrandr-dev:armhf libxtst-dev:armhf libxdamage-dev:armhf libxfixes-dev:armhf libkrb5-dev:armhf libssl-dev:armhf gperf bison libc6-dev-i386 lib32stdc++-4.8-dev linux-libc-dev:i386

Oxide/ArmCrossCompiling (last edited 2017-01-18 14:57:23 by localhost)