[Android Q&A, Help & Troubleshooting] Moihack:
Help me build CM9

Hello!

I'm trying to build CM9 for Huawei Ideos X5 Pro (also knows as U8800 Pro)

Running (X)ubuntu 12.04 LTS 64bit

Device & vendor tree used:

https://github.com/moihack/cm9_device_u8800pro

https://github.com/moihack/cm9_vendor_u8800pro

I've built CM10 successfully so my build environment shouldn't be the problem here

I do lunch select my device and after that make -j4 (since I own a quad core - I always build like that)

After some time I get these errors in terminal:

hardware/qcom/media/audio/msm7x30/AudioHardware.cpp: In function 'android::status_t android_audio_legacy::updateDeviceInfo(int, int, uint32_t, uint32_t)':
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:410: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:433: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:454: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:463: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:463: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.h: In constructor 'android_audio_legacy::AudioHardware::AudioHardware()':
hardware/qcom/media/audio/msm7x30/AudioHardware.h:618: warning: 'android_audio_legacy::AudioHardware::mOutput' will be initialized after
hardware/qcom/media/audio/msm7x30/AudioHardware.h:613: warning: 'bool android_audio_legacy::AudioHardware::mBluetoothVGS'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:527: warning: when initialized here
hardware/qcom/media/audio/msm7x30/AudioHardware.h:636: warning: 'android_audio_legacy::AudioHardware::mEffectEnabled' will be initialized after
hardware/qcom/media/audio/msm7x30/AudioHardware.h:611: warning: 'int android_audio_legacy::AudioHardware::mFmFd'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:527: warning: when initialized here
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:595: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp: In member function 'virtual size_t android_audio_legacy::AudioHardware::getInputBufferSize(uint32_t, int, int)':
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1300: error: 'EVRC' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1301: error: 'QCELP' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1323: error: 'EVRC' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1325: error: 'QCELP' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp: In member function 'virtual android::status_t android_audio_legacy::AudioHardware::setVoiceVolume(float)':
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1379: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1380: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1381: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp: In function 'android::status_t android_audio_legacy::do_route_audio_rpc(uint32_t, bool, bool, uint32_t, uint32_t)':
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1561: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1651: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1653: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1659: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1659: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1673: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1676: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1680: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1686: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1711: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:1711: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp: In member function 'android::status_t android_audio_legacy::AudioHardware::doRouting(android_audio_legacy::AudioHardware::AudioStreamInMSM72xx*)':
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:2358: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:2361: warning: comparison between signed and unsigned integer expressions
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp: In member function 'android::status_t android_audio_legacy::AudioHardware::AudioStreamInMSM72xx::set(android_audio_legacy::AudioHardware*, uint32_t, int*, uint32_t*, uint32_t*, android_audio_legacy::AudioSystem::audio_in_acoustics)':
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:3420: error: 'EVRC' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:3421: error: 'QCELP' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:3600: error: 'EVRC' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:3669: error: 'QCELP' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp: In member function 'virtual ssize_t android_audio_legacy::AudioHardware::AudioStreamInMSM72xx::read(void*, ssize_t)':
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:4038: error: 'EVRC' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:4038: error: 'QCELP' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:4059: error: 'EVRC' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:4070: error: 'QCELP' is not a member of 'android_audio_legacy::AudioSystem'
hardware/qcom/media/audio/msm7x30/AudioHardware.cpp:4132: warning: format '%d' expects type 'int', but argument 4 has type 'ssize_t'
make: *** [out/target/product/u8800pro/obj/SHARED_LIBRARIES/audio.primary.msm7x30_intermediates/AudioHardware.o] Error 1
make: *** Waiting for unfinished jobs....

So the problem must be something in hardware/qcom/media/audio/msm7x30/AudioHardware.cpp

I found these solutions but none of them seem to work:

http://xdaforums.com/showthread.php?p=33632055

http://xdaforums.com/showthread.php?p=28956383

http://xdaforums.com/showthread.php?t=2111462

Well don't know if it matters much, but in CM10, my local manifest is something like this:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>

<remove-project name="CyanogenMod/android_frameworks_av" />
<remove-project name="CyanogenMod/android_frameworks_native" />
<remove-project name="CyanogenMod/android_hardware_libhardware_legacy" />
<remove-project name="CyanogenMod/android_hardware_qcom_audio" />
<remove-project name="CyanogenMod/android_hardware_msm7k" />
<remove-project name="CyanogenMod/android_hardware_qcom_display" />
<remove-project name="CyanogenMod/android_hardware_qcom_media" />
<project name="ShenduOS/android_device_huawei_u8800pro" path="device/huawei/u8800pro" remote="github" revision="jellybean" />
<project name="ShenduOS/android_vendor_huawei" path="vendor/huawei" remote="github" revision="jellybean" />
<project name="ShenduOS/android_kernel_huawei_honor" path="kernel/huawei/u8800pro" remote="github" revision="jellybean" />
<project name="ShenduOS/android_device_huawei_msm7x30-common" path="device/huawei/msm7x30-common" remote="github" revision="jellybean" />
<project name="ShenduOS/android_frameworks_av" path="frameworks/av" remote="github" revision="jellybean" />
<project name="ShenduOS/android_frameworks_native" path="frameworks/native" remote="github" revision="jellybean" />
<project name="ShenduOS/android_hardware_libhardware_legacy" path="hardware/libhardware_legacy" remote="github" revision="jellybean" />
<project name="ShenduOS/android_hardware_qcom_audio" path="hardware/qcom/audio" remote="github" revision="jellybean" />
<project name="ShenduOS/android_hardware_qcom_media" path="hardware/qcom/media" remote="github" revision="jellybean" />
<project name="ShenduOS/android_hardware_msm7k" path="hardware/msm7k" remote="github" revision="jellybean" />
<project name="ShenduOS/android_hardware_qcom_display" path="hardware/qcom/display" remote="github" revision="jellybean" />

</manifest>

As you can see hardware/qcom/media is deleted and replaced with another one, so I think if I also need one from CM9 too since my local manifest in CM9 contains only device & vendor tree.

Any ideas? Any help is appreciated! Thanks in advance!