Skip to main content

Building Android Cross Compiler with Crosstool-ng

In order for you to rebuilt a kernel (or even a ROM) for Android from your laptop, you need a cross compiler to do that.

For Android ecosystem there are several popular cross compilers that being used:


  1. Android NDK
  2. Android Toolchain (which I believe a subset of the NDK)
  3. Linaro customized cross compiler 
  4. Self-made cross compiled built by using crosstool-ng
  5. You do it yourself (but I never succeed this one)
I currently use crosstool-ng cross compiler "cooking tool" as it has several features;

You can save a stage for the built process. For example, I just got my laptop shutdown automatically (perhaps due to CPU overheating.. never shut it down for approx due days).. and since I chose the option for saving the compile state, the process just can be restarted at the previous stage:

Just use the build.log and parse the related info


najmi@vostro:~/toolchain/build-cng$ cat build.log |grep "Saving state"
[EXTRA]  Saving state to restart at step 'libc_check_config'...
[EXTRA]  Saving state to restart at step 'companion_libs_for_build'...
[EXTRA]  Saving state to restart at step 'binutils_for_build'...
[EXTRA]  Saving state to restart at step 'companion_libs_for_host'...
[EXTRA]  Saving state to restart at step 'binutils_for_host'...
[EXTRA]  Saving state to restart at step 'cc_core_pass_1'...
[EXTRA]  Saving state to restart at step 'kernel_headers'...
[EXTRA]  Saving state to restart at step 'libc_start_files'...
[EXTRA]  Saving state to restart at step 'cc_core_pass_2'...
[EXTRA]  Saving state to restart at step 'libc'...
[EXTRA]  Saving state to restart at step 'cc_for_build'...
[EXTRA]  Saving state to restart at step 'cc_for_host'...
najmi@vostro:~/toolchain/build-cng$ ct-ng cc_for_host+

 
The problem with abruptly terminated compilation process could also due to error in the compilation process. That way you just have to start where you suspect the compilation error occurs;

Simply with you can continue from the last saved state onwards;


najmi@vostro:~/toolchain/build-cng$ unset LD_LIBRARY_PATH
najmi@vostro:~/toolchain/build-cng$ ct-ng cc_for_host+
[INFO ]  Performing some trivial sanity checks
[INFO ]  Build started 20131130.102737
[INFO ]  Building environment variables
[EXTRA]  Preparing working directories
[EXTRA]  Restoring state at step 'cc_for_host', as requested.
[INFO ]  =================================================================
[INFO ]  Installing final compiler
[EXTRA]    Configuring gcc
[EXTRA]    Building gcc
[07:57] / 



Comments

Popular posts from this blog

Gue dengan S2 gue. Sronok banget!
Beijing and image manipulation addict Salam, Image manipulation with command line is fun and time consuming too. Given my Digikam plugins unable to work, I start to figure out many wonderful features of other tool which offer almost the same quality. However I was stucked with ImageMagick,with many tutorial on the net: Here and Here for i in *jpg ;do convert -font helvetica -fill white -pointsize 18 -draw 'text 10,50 "ACM-ICPC Beijing 2005"' $i $i;done The pix above shows a heater to heat up guest room during ACM-ICPC competition. (outside building's temperature is almost 4 celcious).