• 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.
 
Nah if its not compiling right, don't change anything. Means you're either missing something from the original repo or doing something wrong. Concentrate on getting the original to compile without changing any source, trust me it does compile if you do it right
 
Nah if its not compiling right, don't change anything. Means you're either missing something from the original repo or doing something wrong. Concentrate on getting the original to compile without changing any source, trust me it does compile if you do it right

Ok thx I'l try getting it to work in original state :)
 
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.
 
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
 
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
 
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
 
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
 
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
 
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.
 
Back
Top Bottom