Post Reply

[Q] How and where to get linaro patches for CM kernel/ROM build

OP redhavoc

21st January 2014, 01:40 PM   |  #1  
OP Junior Member
Thanks Meter: 1
4 posts
Join Date:Joined: Jan 2014
I've been trying to build my own cyanogenmod 11 build using the linaro toolchains on a galaxy S (i9000), with mixed success. At the moment I can compile the kernel with linaro 4.7 and the rest of the ROM with 4.8. Using 4.8 for the kernel will not boot the device, and using any extra optimisation flags in 4.8 will result in the same behaviour. I would preferably like to add strict-aliasing, and the -fmodulo-sched -fmodulo-sched-allow-regmoves.

I know linaro is releasing patches to compile the ASOP kernel/ROM with gcc 4.8. Also I hear the linaro has some library patches to improve memory operations, and maybe optimisations to other libraries. Is there a link or tutorial or a list of what I need to get in order to get a successful build with most optimisations in?

For people who are looking for similar information and to point what I have done so far is the following. (Unfortunately XDA forum does not allow me to post links yet) I put in a quote to differentiate.


mkdir ~/android
cd ~/android

Download the latest linaro gcc 4.7 and 4.8
Google 'linaro downloads 13.12' and find in the page the links for android-toolchain 4.8 and android-toolchain 4.7 (ICS, JB)
tar -xjf android-toolchain-eabi-4.8-2013.12-x86.tar.bz2
mv android-toolchain-eabi android-toolchain-eabi-4.8
tar -xjf android-toolchain-eabi-4.7-2013.12-x86.tar.bz2
mv android-toolchain-eabi android-toolchain-eabi-4.7

Follow the cyanogenmod wiki up the point of running the 'lunch <device command>'
Google 'How to Build CyanogenMod for the Galaxy S galaxysmtd' to get the link (XDA does not let me post it)
It is for galaxy S i9000 but every other device should be similar

After that there were a couple of choices, but what I prefer is doing the following (its maybe the least clean choice)
in the directory ~/android/system//prebuilts/gcc/linux-x86/arm
I run the following commands to link the linaro gcc tools to the default gcc-4.7 used by cyanogenmod
mv arm-eabi-4.7 arm-eabi-4.7.old
mv arm-linux-androideabi-4.7 arm-linux-androideabi-4.7.old
ln -s ~/android/android-toolchain-eabi-4.7 arm-eabi-4.7
ln -s ~/android/android-toolchain-eabi-4.8 arm-linux-androideabi-4.7

in file ~/android/system/system/vold/
for variable common_cflags
add the flag -Wno-error=unused-parameter
so it should look like
common_cflags += -Werror -Wno-error=unused-parameter

in file ~/android/system/bootable/recovery/voldclient/
for variable LOCAL_CFLAGS
add the flag -Wno-error=unused-parameter
it should look like
LOCAL_CFLAGS := -DMINIVOLD -Werror -Wno-error=unused-parameter

then to finish the build
brunch galaxysmtd

I would really appreciate some help, and hope my post helps some newbies like me
Last edited by redhavoc; 21st January 2014 at 02:30 PM. Reason: wanted to italicise commands to execute
The Following User Says Thank You to redhavoc For This Useful Post: [ View ]
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes