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!

Vultr - another reliable alternative for SEA Virtual Private Server!

I have been using Vultr  as my recent VPS now, since it has just a nearby Data Center in Singapore (sadly, Malaysian VPS is always expensive.. so the best option is DC in Singapore - most of the time). It provides free trial credit for around USD5.. and +USD2 if you did a social media integration/sharing with Twitter. Try it now. Click Vultr