On 5/13/2015 9:35 PM, Wookey wrote:
> +++ Ganesan, Aravind [2015-05-13 20:58 -0600]:
>> On 5/13/2015 7:12 PM, Wookey wrote:
>>> +++ Ganesan, Aravind [2015-05-13 18:35 -0600]:
>>>> Hi Guys,
>>>>    I have two questions:
>>>> (1) I have download gcc-4.9 tool chain from
>>>> http://releases.linaro.org/14.08/components/toolchain/binaries.
>>>> The kernel for the release
>>>> (http://releases.linaro.org/14.08/components/kernel/linux-linaro) is
>>>> 3.16. So can we assume the kernel headers found in the tool chain
>>>> installation from the link above belongs to linux version 3.16?
>>>>
>>>> (2) Also, I ubuntu wiki indicates that starting with Ubuntu 12.04 they
>>>> are using linaro gcc packages for arm64
>>>
>>> Not linaro packages directly, but the same source tree/patch set.
>>>
>>>> (https://wiki.ubuntu.com/ToolChain). Is there an easy way to find what
>>>> linaro-release (for tool chain) will be compatible with Ubuntu 14.10
>>>> aarch64 image?
>>>
>>> If building on Ubuntu it's much easier to use the ubuntu-packaged
>>> toolchains (or cross-toolchains) which should function just the same
>>> but have multiarch enabled and be properly packaged.
>>>
>>> That should make your Q1 moot as you the kernel-headers are a separate
>>> package from the cross-toolchain and normal package-management tools
>>> will make it obvious what versions are available/installed.
>>>
>>> You only want to try using a linaro toolchain release directly if
>>> there is some super-recent feature that you need, but which hasn't yet
>>> made it into the Ubuntu toolchain (they will always be somewhat behind
>>> 'current' especially if building on stable).
>>>
>> Thanks Wookey. I'm developing on a X86_64 machine runningUbuntu-12.04
>> (which, AFAIK, doesn't have aarch64 toolchain) .
> 
> Correct - that appeared in 14.04
> 
>> I'm trying to find a
>> cross-compilation tool-chain for building Linux kernel and applications
>> targeting a qemu-aarch64 machine-emulation running Ubuntu 14.10. 
> 
> Build in a 14.04 chroot, and thus use 14.04 toolchain, and libraries.
> 
> Use any of debootstrap, or sbuild-createchroot or the ubuntu-specific
> mksbuild to make at 14.04 chroot.
> 
> You can either make a qemu arm64 chroot and native-build in it, or
> make an amd64 chroot and cross-build in it.
> 
> This tells you how make a qemu-ready arm64 chroot (adjust instructions
> debian-> ubuntu) https://wiki.debian.org/Arm64Port#Debootstrap_arm64
> 
> This tells you how to make an amd64 chroot:
> https://help.ubuntu.com/community/DebootstrapChroot
> I prefer to use sbuild-createchroot because it does all those sbuild
> config runes for you (and can make a tarball chroot for clean builds
> every time).
> 
> sbuild-createchroot --components=main,universe
> --make-sbuild-tarball=/srv/chroots/precise-cross-buildd.tgz precise
> /srv/chroots/precise http://archive.ubuntu.com/ubuntu/
>   sbuild-adduser <your-username>
>   
>   
>   Contents
>   
>       Cross Compiling using Multi-Arch
>               Preparing multiarch chroot
>                     Manually preparing multiarch chroot
>                             Multiarch cross-building requirements
>                                     Crossbuilding requirements
>                                                 Cross toolchain
>                                                             Cross
> pkg-config support
>             dpkg-cross support
>                       Environment variables
>                                   Adding qemu support
>                                               Configuring dpkg
>                                                           Installing
> cross-build deps
>             Running the build
>                   Cross Compiling examples
>                           Steps to proceed from here
>                           
>                           Cross Compiling using Multi-Arch
>                           
>                           This page details what is required to do
> multiarch crossbuilding. If you just want to use it then read
> 'Preparing multiarch chroot'. The building itself is trivial (sbuild
> does all the work), the intial chroot setup is most of it. You can do
> cross-builds without setting up a chroot, but it is not recommended
> because it puts a lot of guff in your system and mulitarch problems
> are much more likely on a more fully-populated system.
> 
> Preparing multiarch chroot
> 
> There is now a helper script to do the work dsescribed below (in
> xbuilder 0.8) so if you just want to make a cross-build chroot and use
> it this is the way to do it. This currently assumes Ubuntu, and would
> need some minor adjustements for Debian (changing the /etc/apt/sources
> in the chroot because of the different archive layout).
> 
> Install xbuilder 0.8 from the Linaro cross-tools PPA
> 
> apt-add-repository ppa:linaro-foundations/cross-build-tools
> apt-get update
> apt-get install xbuilder
> 
> Setup the chroot
> 
> xbuild-chroot-setup precise /srv/chroots/precise-cross
> 
> You can optionally specify a mirror with --mirror, and to set up qemu
> in the chroot using --with-qemu
> 
> xbuild-chroot-setup precise /srv/chroots/precise-cross --with-qemu
> --mirror=http://localhost:3142/ubuntu
> 
> That's it. Easy peasy.
> 
> Do builds in the chroot created with:
> 
> sbuild --host=<arch> -d <suite> -c <suite>-<build-arch>-sbuild <package>
> 
> e.g.
> 
> sbuild --host=armhf -d precise -c precise-amd64-sbuild <package>
> 
> (If you don't have lots of chroots already then you can skip the -c
> and sbuild will probably pick the right one)
> 
> Note that the chroots are set up with sbuild-createchroot so if you've
> already used that for this particular suite then you'll end up with
> two named the same and schroot will sulk. Just rename one in
> /etc/schroot/chroot.d/<suite>-amd64-sbuild-xxxxx (The name is the bit
> in square brackets on the top lione of the config).
> 
> Manually preparing multiarch chroot
> 
> Below full details are given of what is actually required. Here is the
> short version of what to type if you just want to set up a suitable
> environment and do manual builds. See CrossBuildd for setting up an
> automated system.
> 
> add-apt-repository deb
> http://ppa.launchpad.net/linaro-foundations/cross-build-tools/ubuntu
> precise main
> apt-get update
> apt-get install sbuild schroot qemu-user-static
> 
> For testing, you will want a precise or later (ubuntu) or wheezy or
> later (debian) chroot. Raring works best at the moment (May 2013).
> 
> sbuild-createchroot --components=main,universe 
> --make-sbuild-tarball=/srv/chroots/trusty-cross-buildd.tgz trusty 
> /srv/chroots/trusty http://archive.ubuntu.com/ubuntu/
> sbuild-adduser <your-username>
> sbuild-update --keygen
> 
> more details on
> https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/UsingMultiArch#Manually_preparing_multiarch_chroot
> 
> HTH
> 
> Wookey
> 
I appreciate you taking the time, thank you Wookey.

-- 
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to