• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root [compile] Problems with CM ICS

For the last couple of days I have been trying to build an ICS ROM for desire. I have gotten all kinds of errors and have tried finding solutions for them. At the moment I have a synced versions of CM, Passion, Evervolv and more on my HD. None of them wants to work in their default state. So I have been merging files from all over into the CM9 copy, edited a lot of mk files etc to get these errors to go away. And it workes, except that for every error I make go away, new once comes along.

What I want is one successful build so I can play with the Umbrella HWA fix for Desire. But the latest error gives me no glues about what the problem is.

Code:
host StaticLib: libLLVMSupport (out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a)
host Executable: clang-tblgen (out/host/linux-x86/obj/EXECUTABLES/clang-tblgen_intermediates/clang-tblgen)
true
Install: out/host/linux-x86/bin/clang-tblgen
Building Renderscript compiler (llvm-rs-cc) Option tables with tblgen
Host TableGen: vdc (gen-opt-parser-defs) <= frameworks/compile/slang/RSCCOptions.td
host C++: rs-spec-gen <= frameworks/compile/slang/slang_rs_spec_table.cpp
host Executable: rs-spec-gen (out/host/linux-x86/obj/EXECUTABLES/rs-spec-gen_intermediates/rs-spec-gen)
true
Notice file: frameworks/compile/slang/NOTICE -- out/host/linux-x86/obj/NOTICE_FILES/src//bin/rs-spec-gen.txt
Install: out/host/linux-x86/bin/rs-spec-gen
Host RSSpecGen: vdc (gen-clang-builtin-enums) <= out/host/linux-x86/bin/rs-spec-gen
Host RSSpecGen: vdc (gen-rs-data-type-enums) <= out/host/linux-x86/bin/rs-spec-gen
Host RSSpecGen: vdc (gen-rs-matrix-type-enums) <= out/host/linux-x86/bin/rs-spec-gen
Host RSSpecGen: vdc (gen-rs-object-type-enums) <= out/host/linux-x86/bin/rs-spec-gen
Host RSSpecGen: vdc (gen-rs-data-kind-enums) <= out/host/linux-x86/bin/rs-spec-gen
Host RSSpecGen: vdc (gen-rs-data-element-enums) <= out/host/linux-x86/bin/rs-spec-gen
Building Clang attribute list with tblgen
Host TableGen: vdc (gen-clang-attr-list) <= external/clang/include/clang/Basic/Attr.td
Building Clang attribute classes with tblgen
Host TableGen: vdc (gen-clang-attr-classes) <= external/clang/include/clang/Basic/Attr.td
Building Clang Common diagnostic tables with tblgen
Host TableGen: vdc (gen-clang-diags-defs -clang-component=Common) <= external/clang/include/clang/Basic/Diagnostic.td
Building Clang Driver diagnostic tables with tblgen
Host TableGen: vdc (gen-clang-diags-defs -clang-component=Driver) <= external/clang/include/clang/Basic/Diagnostic.td
Building Clang Frontend diagnostic tables with tblgen
Host TableGen: vdc (gen-clang-diags-defs -clang-component=Frontend) <= external/clang/include/clang/Basic/Diagnostic.td
Building Clang Sema diagnostic tables with tblgen
Host TableGen: vdc (gen-clang-diags-defs -clang-component=Sema) <= external/clang/include/clang/Basic/Diagnostic.td
Building Clang declaration node tables with tblgen
Host TableGen: vdc (gen-clang-decl-nodes) <= external/clang/include/clang/Basic/DeclNodes.td
Building Clang statement node tables with tblgen
Host TableGen: vdc (gen-clang-stmt-nodes) <= external/clang/include/clang/Basic/StmtNodes.td
Building Clang Driver Option tables with tblgen
Host TableGen: vdc (gen-opt-parser-defs) <= external/clang/include/clang/Driver/Options.td
host C++: llvm-rs-cc <= frameworks/compile/slang/llvm-rs-cc.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_ast_replace.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_context.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_pragma_handler.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_backend.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_exportable.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_export_type.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_export_element.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_export_var.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_export_func.cpp
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_export_foreach.cpp
frameworks/compile/slang/slang_rs_export_foreach.cpp: In static member function
 
Just start with the source they have in the xda thread. It compiles fine.

Tried it. First I got an error I fixed by adding libgenlock to hardware/qcom/display/Android.mk

Then I got an error like this one
Code:
hardware/qcom/display/libgralloc/framebuffer.cpp: In function 'int mapFrameBufferLocked(private_module_t*)':
hardware/qcom/display/libgralloc/framebuffer.cpp:956: warning: comparison of unsigned expression < 0 is always false
hardware/qcom/display/libgralloc/framebuffer.cpp:957: warning: comparison between signed and unsigned integer expressions
hardware/qcom/display/libgralloc/framebuffer.cpp: In function 'int fb_device_open(const hw_module_t*, const char*, hw_device_t**)':
hardware/qcom/display/libgralloc/framebuffer.cpp:1088: error: 'struct framebuffer_device_t' has no member named 'lockBuffer'
hardware/qcom/display/libgralloc/framebuffer.cpp:1116: error: 'struct framebuffer_device_t' has no member named 'numFramebuffers'
make: *** [out/target/product/triumph/obj/SHARED_LIBRARIES/gralloc.msm7x30_intermediates/framebuffer.o] Error 1
(This is taken from another thread as an example. But the error was the same)

I fixed that by copying some of the mentioned files from another repo (which by it self did not work either).

I get the same from the CM repo which I tried fixing the same way, but I keep getting the first mentioned error instead now in both repos.
 
Upvote 0
Definitely. Because if you don't (and im speaking from experience), you end up changing an mk here, a cpp there etc etc then within a few minutes you're a million miles away.

Trying to remember, but I dont think the xda thread had everything you need.

You rep sync'd git://github.com/ics-passion-dev/android.git -b ics?

Cant remember if they updated it after my trouble with that repository...

Make sure you have vendor/htc/bravo and device/htc/bravo as when I repo sync, it wasnt there.
 
Upvote 0
Definitely. Because if you don't (and im speaking from experience), you end up changing an mk here, a cpp there etc etc then within a few minutes you're a million miles away.

Trying to remember, but I dont think the xda thread had everything you need.

You rep sync'd git://github.com/ics-passion-dev/android.git -b ics?

Cant remember if they updated it after my trouble with that repository...

Make sure you have vendor/htc/bravo and device/htc/bravo as when I repo sync, it wasnt there.

Thats the repo and branch i use yes.
The device/htc/bravo is there and the vendor/htc/bravo I get from github.com/koush/proprietary_vendor_htc
 
Upvote 0
No use. Now I tried with a 100% unchanged sync and after about 30 minutes of build time I still get this error.

Code:
In file included from hardware/libhardware/include/hardware/qemud.h:21,
                 from development/tools/emulator/system/gps/gps_qemu.c:37:
hardware/libhardware/include/hardware/qemu_pipe.h:29:1: warning: this is the location of the previous definition
development/tools/emulator/system/gps/gps_qemu.c:903: warning: initialization from incompatible pointer type
target thumb C++: gralloc.default <= hardware/libhardware/modules/gralloc/gralloc.cpp
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'hw_module_t::dso'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'hw_module_t::reserved'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'gralloc_module_t::perform'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'gralloc_module_t::reserved_proc'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'private_module_t::pmem_master'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'private_module_t::pmem_master_base'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'private_module_t::info'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'private_module_t::finfo'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'private_module_t::xdpi'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'private_module_t::ydpi'
hardware/libhardware/modules/gralloc/gralloc.cpp:100: warning: missing initializer for member 'private_module_t::fps'
target thumb C++: gralloc.default <= hardware/libhardware/modules/gralloc/framebuffer.cpp
target thumb C++: gralloc.default <= hardware/libhardware/modules/gralloc/mapper.cpp
target thumb C++: gralloc.qsd8k <= hardware/qcom/display/libgralloc/framebuffer.cpp
target thumb C++: gralloc.qsd8k <= hardware/qcom/display/libgralloc/gpu.cpp
hardware/qcom/display/libgralloc/framebuffer.cpp: In function 'int mapFrameBufferLocked(private_module_t*)':
hardware/qcom/display/libgralloc/framebuffer.cpp:956: warning: comparison of unsigned expression < 0 is always false
hardware/qcom/display/libgralloc/framebuffer.cpp:957: warning: comparison between signed and unsigned integer expressions
hardware/qcom/display/libgralloc/framebuffer.cpp: In function 'int fb_device_open(const hw_module_t*, const char*, hw_device_t**)':
hardware/qcom/display/libgralloc/framebuffer.cpp:1088: error: 'struct framebuffer_device_t' has no member named 'lockBuffer'
hardware/qcom/display/libgralloc/framebuffer.cpp:1116: error: 'struct framebuffer_device_t' has no member named 'numFramebuffers'
make: *** [out/target/product/bravo/obj/SHARED_LIBRARIES/gralloc.qsd8k_intermediates/framebuffer.o] Error 1
make: *** Waiting for unfinished jobs....

This is what I did

Code:
repo init -u git://github.com/ics-passion-dev/android.git -b ics
repo sync -j4
git clone git://github.com/ics-passion-dev/android_vendor_htc_bravo.git vendor/htc/bravo/
./vendor/cm/get-prebuilts
. build/envsetup.sh
breakfast bravo
mka
 
Upvote 0
Did you delete the entire root parent directory for every change you made and everything you want replaced.

After the repo sync, I then do "lunch" then I select bravo and then just make

I made a new root dir with clean sync.
I tried lunch and selected ev_bravo but got this message

Code:
You're building on Linux

Breakfast menu... pick a combo:
     1. full-eng
     2. full_x86-eng
     3. vbox_x86-eng
     4. ev_bravo-eng
     5. cm_passion-userdebug
     6. cm_passion-eng
     7. full_stingray-userdebug
     8. full_wingray-userdebug
     9. full_maguro-userdebug
     10. full_toro-userdebug
     11. full_panda-eng
     12. cm_crespo-userdebug
     13. cm_crespo4g-userdebug
     14. cm_p4tmo-userdebug
     15. cm_p4vzw-userdebug
     16. cm_p4wifi-userdebug
     17. cm_maguro-userdebug
     18. cm_p920-userdebug
     19. cm_p970-userdebug
     20. cm_p990-userdebug
     21. cm_p999-userdebug
     22. cm_pyramid-userdebug
     23. cm_smb_a1011-userdebug
     24. cm_toro-userdebug
... and don't forget the bacon!

Which would you like? [full-eng] 4
build/core/product_config.mk:209: *** No matches for product "ev_bravo".  Stop.
Device bravo not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_htc_bravo
Syncing repository to retrieve project.

Done!
build/core/product_config.mk:209: *** No matches for product "ev_bravo".  Stop.

** Don't have a product spec for: 'ev_bravo'
** Do you have the right repo manifest?

But I have vendor/htc/bravo and device/htc/bravo
 
Upvote 0
Sorry, you DO need the koush proprietory files. My fault, its been a while. Had to go backwards through the IRC chat.

My terminal output:

Code:
dan@laptop02-Ubuntu:~/ics$ . build/envsetup.sh
including device/htc/bravo/vendorsetup.sh
including device/htc/passion/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/tuna/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
dan@laptop02-Ubuntu:~/ics$ lunch

You're building on Linux

Lunch menu... pick a combo:
     1. full-eng
     2. full_x86-eng
     3. vbox_x86-eng
     4. full_bravo-userdebug
     5. full_bravo-eng
     6. full_passion-userdebug
     7. full_passion-eng
     8. cm_passion-userdebug
     9. full_maguro-userdebug
     10. full_tuna-userdebug
     11. full_panda-eng
     12. cm_crespo-userdebug
     13. cm_GT_P7510-userdebug
     14. cm_maguro-userdebug
     15. cm_p920-userdebug
     16. cm_p970-userdebug
     17. cm_p990-userdebug
     18. cm_p999-userdebug
     19. cm_pyramid-userdebug
     20. cm_smb_a1011-userdebug

Which would you like? [full-eng] 4

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.1
TARGET_PRODUCT=full_bravo
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ICS_MR0
============================================

dan@laptop02-Ubuntu:~/ics$ make -j4 otapackage
 
Upvote 0
Makes no difference. Same errors. I think it's the files in device/htc/bravo that is messed up. It's like nothing in there matches the git repo. For an example the device/htc/bravo/vendorsetup.sh has ev_bravo which does not work because it cannot find the device. Change it to full_bravo-eng and it get's found using lunch. It's like this with a lot of these files. Maybe I should make a new set of files using the passion files as base. They seam to fit better into this git.

Maybe this git worked before the commits a few days ago, but it does not anymore. And the bravo device specification files will not work with any git repo which is why I suspect them of being the problem.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones