zoukankan      html  css  js  c++  java
  • Errors when building androidgingerbread for x86

    1、<?xml:namespace prefix = o ns = “urn:schemas-microsoft-com:office:office” />

    issue “You are attempting to build on a 32-bit system”

    My ubuntu-9.04 is 32-bits system,and android-gingerbread need 64-bits system to build it,so I modified the build system in build to void this issue, if your system is 64-bits, you will not meet this issue.
    build/core/main.mk
    change 
    ifneq (64,$(findstring 64,$(build_arch)))
    to
    ifneq (i686,$(findstring i686,$(build_arch)))

    external/clearsilver/cgi/Android.mk,
    external/clearsilver/java-jni/Android.mk,
    external/clearsilver/util/Android.mk,
    external/clearsilver/cs/Android.mk
    change
    LOCAL_CFLAGS += -m64
    LOCAL_LDFLAGS += -m64
    to
    LOCAL_CFLAGS += -m32
    LOCAL_LDFLAGS += -m32

    2、

    build/core/base_rules.mk:76: *

    build/core/base_rules.mk:77: * Each module must use a LOCAL_MODULE_TAGS in its

    build/core/base_rules.mk:78: * Android.mk. Possible tags declared by a module:

    build/core/base_rules.mk:79: *

    build/core/base_rules.mk:80: *     optional, debug, eng, tests, samples

    build/core/base_rules.mk:81: *

    build/core/base_rules.mk:82: * If the module is expected to be in all builds

    build/core/base_rules.mk:83: * of a product, then it should use the

    build/core/base_rules.mk:84: * “optional” tag:

    build/core/base_rules.mk:85: *

    build/core/base_rules.mk:86: *    Add “LOCAL_MODULE_TAGS := optional” in the

    build/core/base_rules.mk:87: *    Android.mk for the affected module, and add

    build/core/base_rules.mk:88: *    the LOCAL_MODULE value for that component

    build/core/base_rules.mk:89: *    into the PRODUCT_PACKAGES section of product

    build/core/base_rules.mk:90: *    makefile(s) where it’s necessary, if

    build/core/base_rules.mk:91: *    appropriate.

    build/core/base_rules.mk:92: *

    build/core/base_rules.mk:93: * If the component should be in EVERY build of ALL

    build/core/base_rules.mk:94: * products, then add its LOCAL_MODULE value to the

    build/core/base_rules.mk:95: * PRODUCT_PACKAGES section of

    build/core/base_rules.mk:96: * build/target/product/core.mk

    build/core/base_rules.mk:97: *

    build/core/base_rules.mk:98: *** user tag detected on new module – user tags are only supported on legacy modules.  Stop

    add LOCAL_MODULE_TAGS := optional in Android.mk where the error happens

    3、

    target thumb C: dalvikvm <= dalvik/dalvikvm/Main.c

    In file included from dalvik/dalvikvm/Main.c:22:

    bionic/libc/include/stdio.h:78: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fpos_t’

    bionic/libc/include/stdio.h:132: error: expected specifier-qualifier-list before ‘fpos_t’

    bionic/libc/include/stdio.h:230: error: expected declaration specifiers or ‘…’ before ‘fpos_t’

    bionic/libc/include/stdio.h:240: error: expected declaration specifiers or ‘…’ before ‘off_t’

    bionic/libc/include/stdio.h:241: warning: type defaults to ‘int’ in declaration of ‘fpos_t’

    bionic/libc/include/stdio.h:241: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token

    bionic/libc/include/stdio.h:243: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ftello’

    bionic/libc/include/stdio.h:363: error: expected declaration specifiers or ‘…’ before ‘fpos_t’

    make: *** [out/target/product/myx86/obj/EXECUTABLES/dalvikvm_intermediates/Main.o] Error 11

    change bionic branch to rools_r9
    $git checkout –b tools_r9 **/tools_r9

    4、

    target thumb C++: libutils <= frameworks/base/libs/utils/Asset.cpp

    In file included from frameworks/base/include/utils/ZipFileRO.h:35,

                     from frameworks/base/libs/utils/Asset.cpp:29:

    frameworks/base/include/utils/threads.h:345: error: ‘pthread_rwlock_t’ does not name a type

    frameworks/base/include/utils/threads.h: In constructor ‘android::RWLock::RWLock()’:

    ……….

    make: *** [out/target/product/myx86/obj/SHARED_LIBRARIES/libutils_intermediates/Asset.o] Error 1

    apply the patch “Add pthread_rwlock_t implementation to the C library” which we can get from bionic gingerbread branch

    5、

    external/stlport/src/num_put_float.cpp: In function ‘bool std::priv::_Stl_is_nan_or_inf(double)’:

    external/stlport/src/num_put_float.cpp:143: error: ‘IsNANorINF’ was not declared in this scope

    external/stlport/src/num_put_float.cpp: In function ‘bool std::priv::_Stl_is_inf(double)’:

    external/stlport/src/num_put_float.cpp:144: error: ‘IsNANorINF’ was not declared in this scope

    external/stlport/src/num_put_float.cpp:144: error: ‘IsINF’ was not declared in this scope

    …………..

    make: *** [out/target/product/myx86/obj/SHARED_LIBRARIES/libstlport_intermediates/src/num_put_float.o] Error

    external/stlport/Android.mk
    change

    libstlport_cflags := -D_GNU_SOURCE
    to
    libstlport_cflags := -D_GNU_SOURCE -DUSE_SPRINTF_INSTEAD

    6、

    target arm C: libvorbisidec <= external/tremolo/Tremolo/bitwise.c

    In file included from external/tremolo/Tremolo/bitwise.c:43:

    external/tremolo/Tremolo/misc.h:82: error: redefinition of ‘union magic’

    make: *** [out/target/product/myx86/obj/SHARED_LIBRARIES/libvorbisidec_intermediates/Tremolo/bitwise.o] Error 1

    add header file endian.h in external/tremolo/Tremolo/misc.h
    #include <endian.h>

    一个星期前成功移植android gingerbread for x86,主要包括android-gingerbread代码的编译、kernel的移植,以及对android自身代码的一些修改,最终成功启动进入到gingerbread。期间又忙其他事情去了,所以到现在才整理这个文档,这边只放了android的编译问题,对于kernel的编译问题和修改部分没有放上来,希望对大家的研究有所帮助,也请有兴趣的人一起交流进步。

    原创文章,转载请注明出处,谢谢!

    7、<?xml:namespace prefix = o ns = “urn:schemas-microsoft-com:office:office” />

    target thumb C: toolbox <= system/core/toolbox/lsof.c

    system/core/toolbox/lsof.c:48: error: ‘PATH_MAX’ undeclared here (not in a function)

    make: *** [out/target/product/myx86/obj/EXECUTABLES/toolbox_intermediates/lsof.o] Error 1

    define PATH_MAX in system/core/toolbox/lsof.c 
    #ifndef PATH_MAX
    #define PATH_MAX 4096
    #endif

    8、

    target thumb C: dnsmasq <= external/dnsmasq/src/dbus.c

    external/dnsmasq/src/dbus.c:21:23: error: dbus/dbus.h: No such file or directory

    undefine HAVE_DBUS in external/dnsmasq/src/config.h 
    #ifdef __ANDROID__
    #undef HAVE_DBUS
    #endif

    9、

    target StaticLib: libOpenSLESUT (out/target/product/myx86/obj/STATIC_LIBRARIES/libOpenSLESUT_intermediates/libOpenSLESUT.a)

    target SharedLib: libOpenSLES (out/target/product/myx86/obj/SHARED_LIBRARIES/libOpenSLES_intermediates/LINKED/libOpenSLES.so)

    out/target/product/myx86/obj/SHARED_LIBRARIES/libOpenSLES_intermediates/IAndroidEffect.o:(.data.rel.ro._ZTIN7android12SortedVectorINS_16key_value_pair_tImPNS_11AudioEffectEEEEE[typeinfo for android::SortedVector<android::key_value_pair_t<unsigned long, android::AudioEffect*> >]+0×0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info’

    out/target/product/myx86/obj/SHARED_LIBRARIES/libOpenSLES_intermediates/IAndroidEffect.o:(.data.rel.ro._ZTIN7android12SortedVectorINS_16key_value_pair_tImPNS_11AudioEffectEEEEE[typeinfo for android::SortedVector<android::key_value_pair_t<unsigned long, android::AudioEffect*> >]+0×10): undefined reference to `typeinfo for android::SortedVectorImpl’

    collect2: ld returned 1 exit status

    change system/media/opensles/libopensles/IAndroidEffect.c to IAndroidEffect.cpp
    $mv IAndroidEffect.c IAndroidEffect.cpp

    Android.mk
    change
    IAndroidEffect.c
    to
    IAndroidEffect.cpp

    10、            

    target thumb C: libmincrypt <= system/core/libmincrypt/sha.c

    system/core/libmincrypt/sha.c: In function ‘SHA1_Transform’:

    system/core/libmincrypt/sha.c:69: error: ‘u_int32_t’ undeclared (first use in this function)

    system/core/libmincrypt/sha.c:69: error: (Each undeclared identifier is reported only once

    system/core/libmincrypt/sha.c:69: error: for each function it appears in.)

    system/core/libmincrypt/sha.c:69: error: expected ‘;’ before ‘__swap32md_x’

    system/core/libmincrypt/sha.c:69: error: ‘__swap32md_x’ undeclared (first use in this function)

    system/core/libmincrypt/sha.c:70: error: expected ‘;’ before ‘__swap32md_x’

    system/core/libmincrypt/sha.c:71: error: expected ‘;’ before ‘__swap32md_x’

    system/core/libmincrypt/sha.c:72: error: expected ‘;’ before ‘__swap32md_x’

    system/core/libmincrypt/sha.c:73: error: expected ‘;’ before ‘__swap32md_x’

    system/core/libmincrypt/sha.c:75: error: expected ‘;’ before ‘__swap32md_x’

    ………

    make: *** [out/target/product/myx86/obj/STATIC_LIBRARIES/libmincrypt_intermediates/sha.o] Error 1

    bionic/libc/include/byteswap.h
    change
    #include <endian.h>
    to
    #include <sys/endian.h>

    11、            

    target arm C: libnfc <= external/libnfc-nxp/src/phLibNfc.c

    cc1: error: unrecognized command line option “-mapcs”

    cc1: error: unrecognized command line option “-mno-sched-prolog”

    cc1: error: unrecognized command line option “-mabi=aapcs-linux”

    cc1: error: unrecognized command line option “-mno-thumb-interwork”

    make: *** [out/target/product/myx86/obj/SHARED_LIBRARIES/libnfc_intermediates/src/phLibNfc.o] Error 1

    remove these LOCAL_CFLAGS commands in Android.mk

    change
    LOCAL_CFLAGS += -DNXP_MESSAGING -DINCLUDE_DALINIT_DEINIT -pipe -fomit-frame-pointer -Wall -Wno-trigraphs -Werror-implicit-function-declaration  -fno-strict-aliasing -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -msoft-float -Uarm -fno-common –fpic
    to
    LOCAL_CFLAGS += -DNXP_MESSAGING -DINCLUDE_DALINIT_DEINIT -pipe -fomit-frame-pointer -Wall -Wno-trigraphs -Werror-implicit-function-declaration  -fno-strict-aliasing -msoft-float -Uarm -fno-common -fpic

    12、            

    external/libnfc-nxp/Linux_x86/phDal4Nfc_i<?xml:namespace prefix = st1 ns = “urn:schemas-microsoft-com:office:smarttags” /><?xml:namespace prefix = st1 />2c.c:43:25: error: linux/pn544.h: No such file or directory

    external/libnfc-nxp/Linux_x86/phDal4Nfc_i2c.c: In function ‘phDal4Nfc_i2c_reset’:

    external/libnfc-nxp/Linux_x86/phDal4Nfc_i2c.c:248: error: ‘PN544_SET_PWR’ undeclared (first use in this function)

    external/libnfc-nxp/Linux_x86/phDal4Nfc_i2c.c:248: error: (Each undeclared identifier is reported only once

    external/libnfc-nxp/Linux_x86/phDal4Nfc_i2c.c:248: error: for each function it appears in.)

    make: *** [out/target/product/myx86/obj/SHARED_LIBRARIES/libnfc_intermediates/Linux_x86/phDal4Nfc_i2c.o] Error 1

    Add pn544.h header file to bionic/libc/kernel/common/linux, the pn544.h is in bionic tools_r9 branch

    13、            

    Target userdata fs image: out/target/product/myx86/userdata.img

    Install: out/host/linux-x86/lib/libneo_cgi.so

    in mkuserimg.sh PATH=out/host/linux-x86/bin/:/home/asus/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/asus/bin

    Only ext4 is supported!

    make: *** [out/target/product/myx86/userdata.img] Error 3

    make: *** Waiting for unfinished jobs….

    define TARGET_USERIMAGES_USE_EXT4 := true in your product’s BoardConfig.mk

    14、            

    Target system fs image: out/target/product/myx86/obj/PACKAGING/systemimage_intermediates/system.img

    in mkuserimg.sh PATH=out/host/linux-x86/bin/:/home/asus/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/asus/bin

    make_ext4fs -l 128M -a system out/target/product/myx86/obj/PACKAGING/systemimage_intermediates/system.img out/target/product/myx86/system

    Creating filesystem with parameters:

        Size: 134217728

        Block size: 4096

        Blocks per group: 32768

        Inodes per group: 8192

        Inode size: 256

        Journal blocks: 1024

        Label:

        Blocks: 32768

        Block groups: 1

        Reserved block group size: 7

    error: do_inode_allocate_extents: Failed to allocate 749 blocks

    make: *** [out/target/product/myx86/obj/PACKAGING/systemimage_intermediates/system.img] Error 4

    define TARGET_SYSTEMIMAGES_USE_EXT2 := true in your product’s BoardConfig.mk

    build/core/Makefile
    change
    ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)

     ## generate an ext2 image

     # $(1): output file

     define build-systemimage-target

         @echo “Target system fs image: $(1)”

         $(call build-userimage-ext-target, $(TARGET_OUT), $(1), system, $(INTERNAL_USERIMAGES_EXT_VARIANT), $(BOARD_SYSTEMIMAGE_PARTITION_SIZE))

     endef
    to
    ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)

      ifeq ($(TARGET_SYSTEMIMAGES_USE_EXT2),true)

        -include external/genext2fs/Config.mk

        ## generate an ext2 image

        # $(1): output file

        define build-systemimage-target

          @echo “Target system fs image: $(1)”

          $(call build-userimage-ext2-target,$(TARGET_OUT),$(1),system,)

        endef

        else

        define build-systemimage-target

          @echo “Target system fs image: $(1)”

          $(call build-userimage-ext-target,$(TARGET_OUT),$(1),system,$(INTERNAL_USERIMAGES_EXT_VARIANT),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))

        endef

      endif

    一个星期前成功移植android gingerbread for x86,主要包括android-gingerbread代码的编译、kernel的移植,以及对android自身代码的一些修改,最终成功启动进入到gingerbread。期间又忙其他事情去了,所以到现在才整理这个文档,这边只放了android的编译问题,对于kernel的编译问题和修改部分没有放上来,希望对大家的研究有所帮助,也请有兴趣的人一起交流进步。

    这么短的文章还要分两篇写。。。百度的长度限制也太少了点吧!

    http://hi.baidu.com/kellyvivian/blog/

  • 相关阅读:
    [bzoj1076]奖励关
    [bzoj1085]骑士精神
    [bzoj1082]栅栏
    [bzoj1084]最大子矩阵
    [bzoj1072]排列
    [bzoj1071]组队
    [bzoj1068]压缩
    [bzoj1061]志愿者招募
    [bzoj1059]矩阵游戏
    [bzoj1052]覆盖问题
  • 原文地址:https://www.cnblogs.com/googlegis/p/2978797.html
Copyright © 2011-2022 走看看