1ã32ä½ç³»ç»ä¸çç¼è¯
å¦æéè¦å¨32ä½ç³»ç»ä¸ç¼è¯
androidç³»ç»ï¼å¨ç¼è¯åéè¦å¯¹é¨åmakefileè¿è¡ä¿®æ¹
é¦å
ä¿®æ¹build/core/main.mkï¼ä¿®æ¹çå
容å¦ä¸æ示ï¼
-ifneq (64,$(findstring 64,$(build_arch)))
+ifneq
(i686,$(findstring i686,$(build_arch)))
$(warning
************************************************************) $(warning You are attempting to build on a 32-bit system.)
$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
å
¶æ¬¡ä¿®æ¹å¦ä¸å个æ件ï¼
external/clearsilver/cgi/Android.mk
external/clearsilver/java-jni/Android.mk
external/clearsilver/util/Android.mk
external/clearsilver/cs/Android.mk # This forces a 64-bit build for Java6
-LOCAL_CFLAGS += -m64
-LOCAL_LDFLAGS += -m64
+LOCAL_CFLAGS += -m32
+LOCAL_LDFLAGS += -m32å³å°LOCAL_CFLAGSåLOCAL_LDFLAGSç±-m64æ¹ä¸º-m32ï¼ä»èæå®ä½¿ç¨32ä½ç³»ç»è¿è¡ç¼è¯å¦æä½¿ç¨ 64bit çæä½ç³»ç»ç¼è¯ï¼è¿äºå°±é½ä¸ç¨ä¿®æ¹ï¼ä½è®°å¾éè¦å®è£
ï¼For 64-bit servers the following extra packages may be needed:
"sudo apt-get install libc6-dev-i386" (libc6-dev-amd64 if AMD CPU)
"sudo apt-get install g++-multilib lib32ncurses5-dev lib32z1-dev"
è¿æ jdk64bit ççæ¬ç¼è¯2 ãbuild/core/base_rules.mk:128:*** frameworks/opt/emoji/jni:
.... libgl2jni already defined by framwworks/base/opengl/tests/gl2_jni/jni åæ¢
ä»ç¼è¯è§åä¸çï¼
# Make sure that this IS_HOST/CLASS/MODULE combination is unique.
module_id := MODULE.$(if \
$(LOCAL_IS_HOST_MODULE),HOST,TARGET).$(LOCAL_MODULE_CLASS).$(LOCAL_MODULE)
ifdef $(module_id)
$(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id)))
endif
å¨framwworks/base/opengl/tests/gl2_jni/ä¸é¢å®ä¹çandroid.mkå®ä¹äºï¼
LOCAL_MODULE := libgl2jni
include $(BUILD_SHARED_LIBRARY)
导è´çæç
å¨æåºéå¤ï¼è¿æ¯ä¸å¯¹çï¼ä¿®æ¹testsè¿ä¸ªç®å½ä¸åä¸ç¼è¯å³å¯ï¼æç´æ¥çåæ³å é¤æframwworks/base/opengl/tests/gl2_jniè¿ä¸ª
æ件夹 3ãAIDL ç¼è¯æ¥couldn't find import for classåå
âAIDLæå¡åªæ¯ææéç
æ°æ®ç±»åï¼å æ¤ï¼å¦æç¨AIDLæ å¡ä¼ éä¸äºå¤æçæ°æ®å°±éè¦åæ´ä¸æ¥å¤çãAIDLæå¡æ¯æçæ°æ®ç±»åå¦ä¸ï¼
Javaçç®åç±» åï¼intãcharãbooleançï¼ãä¸éè¦å¯¼å
¥ï¼importï¼ãStringå CharSequenceãä¸éè¦å¯¼å
¥ï¼importï¼ã
Listå Mapãä½è¦æ³¨æï¼ListåMap对象çå
ç´ ç±»åå¿
é¡»æ¯AIDLæå¡æ¯æçæ°æ®ç±»åãä¸éè¦å¯¼å
¥ï¼importï¼ãAIDLèªå¨çæ çæ¥å£ãéè¦å¯¼å
¥ï¼importï¼ã
å®ç° android.os.Parcelableæ¥å£çç±»ãéè¦å¯¼å
¥ï¼importï¼ã
å
¶ä¸å两ç§æ°æ®ç±» åéè¦ä½¿ç¨importè¿è¡å¯¼å
¥ï¼ä¼ éä¸éè¦ importçæ°æ®ç±»åçå¼çæ¹å¼ç¸åãä¼ éä¸ä¸ªéè¦importçæ°æ®ç±»åçå¼ï¼ä¾å¦ï¼å®ç°android.os.Parcelable æ¥å£çç±»ï¼çæ¥ éª¤ç¥æ¾å¤æãé¤äºè¦å»ºç«ä¸ä¸ªå®ç°android.os.Parcelableæ¥å£çç±»å¤ï¼è¿éè¦ä¸ºè¿ä¸ªç±»åç¬å»ºç«ä¸ä¸ªaidlæ件ï¼å¹¶ä½¿ç¨parcelableå
³é®åè¿è¡å®ä¹ãâ
没æå LOCAL_AIDL_INCLUDES += xxx ï¼æ以æ¾ä¸å°æçparcelable aidlæ件ã
ä¿®æ¹androidæºç
æ ¹ç®å½ä¸çbuild/core/pathmap.mkæä½ çç®å½å è¿å»,æ¤æ¶åmake update-api
4ãèæ¯æ示 @Overrideé误 æ¹æ³æªè¦çå
¶ç¶ç±»çæ¹æ³
使 ç¨JDK1.6ç¼è¯æ²¡æé®é¢ï¼ä½¿ç¨JDK1.5ç¼è¯ï¼ä¼æ¥@Overrideæ¹æ³æªè¦çå
¶ç¶ç±»çæ¹æ³ãå®é
ä¸è¿ä¸ªæ¹æ³æ¯ç±»å®ç°çæ¥å£ä¸æ¹æ³ï¼
ä½æ¯ï¼è¿ä¸ªè¯ æ³çjdk1.6çä¸é¢æ¯å¯ä»¥éè¿çï¼ä¹å°±æ¯è¯´jdk1.6认为类è¦çç¶ç±»æ¹æ³ä¸å®ç°æ¥å£æ¹æ³é½å«overrideï¼èjdk1.5ä¸
æ¯è¿æ ·è®¤ä¸ºçï¼ä¸ç¥ éè¿æ¯å½åjdk1.5çbugï¼è¿æ¯å½åå°±æ¯è®¤ä¸ºè¦çç¶ç±»æ¹æ³ä¸å®ç°æ¥å£æ¹æ³æ¯ä¸ä¸æ ·çï¼ä¸å¾èç¥ãä½æ¯ä»
OOè§åº¦æ¥çï¼è¦çç¶ç±»æ¹æ³ä¸å®ç°æ¥å£æ¹æ³é½ å¯ä»¥è®¤ä¸ºoverrideï¼å 为ä»ä»¬ç®çé½æ¯ä¸æ ·çï¼é½æ¯ä¸ºäºéç¨ï¼é½æ¯å¤æçä¸ç§
表ç°æ¹å¼ã
æ´æ¹jdkçæ¬ä¸º1.6å³å¯
5ãç¼è¯alsa-libåºé误
androidç³»ç»å¼å移æ¤alsa-libåºçè¿ç¨ä¸ç¼è¯çæ¶ååºç°äºå¦ä¸çé误
/tmp/cckyaR40.s: Assembler messages:
/tmp/cckyaR40.s:2763: Error: selected processor does not support `mrs ip,cpsr'
/tmp/cckyaR40.s:2764: Error: unshifted register required -- `orr r2,ip,#128'
/tmp/cckyaR40.s:2765: Error: selected processor does not support `msr cpsr_c,r2
åé¢çæææ¥çæ¯æ±ç¼é误ï¼éæ©çå¤çå¨ä¸æ¯æmrsåmsræ令ã
åæ¥çARMæ令æ32ä½å16ä½ä¸¤ç§æ令模å¼ï¼16ä½ä¸ºthumbæ令éï¼thumbæ令éç¼è¯åºç代ç å ç¨ç©ºé´å°ï¼
èä¸æçä¹é«ï¼æ以androidçarm
ç¼è¯å¨é»è®¤ç¨çæ¯thumb模å¼ç¼è¯ï¼é®é¢å¨äºalsaç代ç ä¸æé¨åçå
容
ç¨å°äº32ä½çæ令ï¼æ以æä¼æ¥å¦ä¸çé误ï¼ä¿®æ¹çæ¹æ³ä¹å¾ç®åï¼å¨Android.mkä¸å å
¥å¦ä¸å
容å³å¯ï¼
LOCAL_ARM_MODE := arm
androidçç¼è¯ç³»ç»ä¸LOCAL_ARM_MODEåéçåå¼ä¸ºarmæè
thumbï¼ä»£è¡¨32ä½å16ä½ä¸¤ç§armæ令éï¼é»è®¤ä¸ºthumb
prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status
make: *** [out/target/product/merlin/obj/SHARED_LIBRARIES/libasound_intermediates/LINKED/libasound.so] é误 1
解å³æ¤é®é¢å°alsa-lib/include/config.hæ件ä¸çå¦ä¸
å®å®ä¹å»æå³å¯ï¼
#define VERSIONED_SYMBOLS
å¼åè¿ç¨ä¸ç¢°å°è¿å¾å¤é误ï¼åç»åä¸ä¸æ»ç»è®°å½ä¸æ¥ï¼æäºå¿è®°äºãã
å¨android.mkä¸ç¼è¯ï¼
include $(CLEAR_VARS)
$(call add-prebuilt-files, STATIC_LIBRARIES, libyfcdca.a)
åºç°æ示éè¦å®ä¹ï¼LOCAL_MODULE_TAGS := optional ä¸è¬ä¿®æ¹æ¹æ³æ¯ï¼
build\core\definitions.mk ä¸çå®å®ä¹åéï¼
define include-prebuilt
include $$(CLEAR_VARS)
LOCAL_SRC_FILES := $(1)
LOCAL_BUILT_MODULE_STEM := $(1)
LOCAL_MODULE_SUFFIX := $$(suffix $(1))
LOCAL_MODULE := $$(basename $(1))
LOCAL_MODULE_CLASS := $(2)
include $$(BUILD_PREBUILT)
endef
å¨è¿éå¢å ä¸ä¸ªLOCAL_MODULE_TAGS := optional
ä½æ¯è¿éè¦ä¿®æ¹androidæºç ï¼å¦æä¸æ¯èªå·²çandroidç³»ç»ï¼è¿ä¹å就麻ç¦äºï¼æ以å¿
é¡»æ³å
¶å®åæ³è§£å³ï¼
#include $(CLEAR_VARS)
#$(call add-prebuilt-files, STATIC_LIBRARIES, libyfcdca.a)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := libyfcdca.a
LOCAL_BUILT_MODULE_STEM := libyfcdca.a
LOCAL_MODULE_SUFFIX := lib
LOCAL_MODULE := yfcdca
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)
å¦æ¤å³å¯äºãä¾ä½ åè
1ã32ä½ç³»ç»ä¸çç¼è¯
å¦æéè¦å¨32ä½ç³»ç»ä¸ç¼è¯androidç³»ç»ï¼å¨ç¼è¯åéè¦å¯¹é¨åmakefileè¿è¡ä¿®æ¹
é¦å
ä¿®æ¹build/core/main.mkï¼ä¿®æ¹çå
容å¦ä¸æ示ï¼
-ifneq (64,$(findstring 64,$(build_arch)))
+ifneq
(i686,$(findstring i686,$(build_arch)))
$(warning
************************************************************) $(warning You are attempting to build on a 32-bit system.)
$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
å
¶æ¬¡ä¿®æ¹å¦ä¸å个æ件ï¼
external/clearsilver/cgi/Android.mk
external/clearsilver/java-jni/Android.mk
external/clearsilver/util/Android.mk
external/clearsilver/cs/Android.mk # This forces a 64-bit build for Java6
-LOCAL_CFLAGS += -m64
-LOCAL_LDFLAGS += -m64
+LOCAL_CFLAGS += -m32
+LOCAL_LDFLAGS += -m32å³å°LOCAL_CFLAGSåLOCAL_LDFLAGSç±-m64æ¹ä¸º-m32ï¼ä»èæå®ä½¿ç¨32ä½ç³»ç»è¿è¡ç¼è¯å¦æä½¿ç¨ 64bit çæä½ç³»ç»ç¼è¯ï¼è¿äºå°±é½ä¸ç¨ä¿®æ¹ï¼ä½è®°å¾éè¦å®è£
ï¼For 64-bit servers the following extra packages may be needed:
"sudo apt-get install libc6-dev-i386" (libc6-dev-amd64 if AMD CPU)
"sudo apt-get install g++-multilib lib32ncurses5-dev lib32z1-dev"
è¿æ jdk64bit ççæ¬ç¼è¯2 ãbuild/core/base_rules.mk:128:*** frameworks/opt/emoji/jni:
.... libgl2jni already defined by framwworks/base/opengl/tests/gl2_jni/jni åæ¢
ä»ç¼è¯è§åä¸çï¼
# Make sure that this IS_HOST/CLASS/MODULE combination is unique.
module_id := MODULE.$(if \
$(LOCAL_IS_HOST_MODULE),HOST,TARGET).$(LOCAL_MODULE_CLASS).$(LOCAL_MODULE)
ifdef $(module_id)
$(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id)))
endif
å¨framwworks/base/opengl/tests/gl2_jni/ä¸é¢å®ä¹çandroid.mkå®ä¹äºï¼
LOCAL_MODULE := libgl2jni
include $(BUILD_SHARED_LIBRARY)
导è´çæçå¨æåºéå¤ï¼è¿æ¯ä¸å¯¹çï¼ä¿®æ¹testsè¿ä¸ªç®å½ä¸åä¸ç¼è¯å³å¯ï¼æç´æ¥çåæ³å é¤æframwworks/base/opengl/tests/gl2_jniè¿ä¸ªæ件夹
3ãAIDL ç¼è¯æ¥couldn't find import for classåå
âAIDLæå¡åªæ¯ææéçæ°æ®ç±»åï¼å æ¤ï¼å¦æç¨AIDLæ å¡ä¼ éä¸äºå¤æçæ°æ®å°±éè¦åæ´ä¸æ¥å¤çãAIDLæå¡æ¯æçæ°æ®ç±»åå¦ä¸ï¼
Javaçç®åç±» åï¼intãcharãbooleançï¼ãä¸éè¦å¯¼å
¥ï¼importï¼ãStringå CharSequenceãä¸éè¦å¯¼å
¥ï¼importï¼ã
Listå Mapãä½è¦æ³¨æï¼ListåMap对象çå
ç´ ç±»åå¿
é¡»æ¯AIDLæå¡æ¯æçæ°æ®ç±»åãä¸éè¦å¯¼å
¥ï¼importï¼ãAIDLèªå¨çæ çæ¥å£ãéè¦å¯¼å
¥ï¼importï¼ã
å®ç° android.os.Parcelableæ¥å£çç±»ãéè¦å¯¼å
¥ï¼importï¼ã
å
¶ä¸å两ç§æ°æ®ç±» åéè¦ä½¿ç¨importè¿è¡å¯¼å
¥ï¼ä¼ éä¸éè¦ importçæ°æ®ç±»åçå¼çæ¹å¼ç¸åãä¼ éä¸ä¸ªéè¦importçæ°æ®ç±»åçå¼ï¼ä¾å¦ï¼å®ç°android.os.Parcelable æ¥å£çç±»ï¼çæ¥ éª¤ç¥æ¾å¤æãé¤äºè¦å»ºç«ä¸ä¸ªå®ç°android.os.Parcelableæ¥å£çç±»å¤ï¼è¿éè¦ä¸ºè¿ä¸ªç±»åç¬å»ºç«ä¸ä¸ªaidlæ件ï¼å¹¶ä½¿ç¨parcelableå
³é®åè¿è¡å®ä¹ãâ
没æå LOCAL_AIDL_INCLUDES += xxx ï¼æ以æ¾ä¸å°æçparcelable aidlæ件ã
ä¿®æ¹androidæºç æ ¹ç®å½ä¸çbuild/core/pathmap.mkæä½ çç®å½å è¿å»,æ¤æ¶åmake update-api
4ãèæ¯æ示 @Overrideé误 æ¹æ³æªè¦çå
¶ç¶ç±»çæ¹æ³
使 ç¨JDK1.6ç¼è¯æ²¡æé®é¢ï¼ä½¿ç¨JDK1.5ç¼è¯ï¼ä¼æ¥@Overrideæ¹æ³æªè¦çå
¶ç¶ç±»çæ¹æ³ãå®é
ä¸è¿ä¸ªæ¹æ³æ¯ç±»å®ç°çæ¥å£ä¸æ¹æ³ï¼
ä½æ¯ï¼è¿ä¸ªè¯ æ³çjdk1.6çä¸é¢æ¯å¯ä»¥éè¿çï¼ä¹å°±æ¯è¯´jdk1.6认为类è¦çç¶ç±»æ¹æ³ä¸å®ç°æ¥å£æ¹æ³é½å«overrideï¼èjdk1.5ä¸
æ¯è¿æ ·è®¤ä¸ºçï¼ä¸ç¥ éè¿æ¯å½åjdk1.5çbugï¼è¿æ¯å½åå°±æ¯è®¤ä¸ºè¦çç¶ç±»æ¹æ³ä¸å®ç°æ¥å£æ¹æ³æ¯ä¸ä¸æ ·çï¼ä¸å¾èç¥ãä½æ¯ä»
OOè§åº¦æ¥çï¼è¦çç¶ç±»æ¹æ³ä¸å®ç°æ¥å£æ¹æ³é½ å¯ä»¥è®¤ä¸ºoverrideï¼å 为ä»ä»¬ç®çé½æ¯ä¸æ ·çï¼é½æ¯ä¸ºäºéç¨ï¼é½æ¯å¤æçä¸ç§
表ç°æ¹å¼ã
æ´æ¹jdkçæ¬ä¸º1.6å³å¯
5ãç¼è¯alsa-libåºé误
androidç³»ç»å¼å移æ¤alsa-libåºçè¿ç¨ä¸ç¼è¯çæ¶ååºç°äºå¦ä¸çé误
/tmp/cckyaR40.s: Assembler messages:
/tmp/cckyaR40.s:2763: Error: selected processor does not support `mrs ip,cpsr'
/tmp/cckyaR40.s:2764: Error: unshifted register required -- `orr r2,ip,#128'
/tmp/cckyaR40.s:2765: Error: selected processor does not support `msr cpsr_c,r2
åé¢çæææ¥çæ¯æ±ç¼é误ï¼éæ©çå¤çå¨ä¸æ¯æmrsåmsræ令ã
åæ¥çARMæ令æ32ä½å16ä½ä¸¤ç§æ令模å¼ï¼16ä½ä¸ºthumbæ令éï¼thumbæ令éç¼è¯åºç代ç å ç¨ç©ºé´å°ï¼
èä¸æçä¹é«ï¼æ以androidçarmç¼è¯å¨é»è®¤ç¨çæ¯thumb模å¼ç¼è¯ï¼é®é¢å¨äºalsaç代ç ä¸æé¨åçå
容
ç¨å°äº32ä½çæ令ï¼æ以æä¼æ¥å¦ä¸çé误ï¼ä¿®æ¹çæ¹æ³ä¹å¾ç®åï¼å¨Android.mkä¸å å
¥å¦ä¸å
容å³å¯ï¼
LOCAL_ARM_MODE := arm
androidçç¼è¯ç³»ç»ä¸LOCAL_ARM_MODEåéçåå¼ä¸ºarmæè
thumbï¼ä»£è¡¨32ä½å16ä½ä¸¤ç§armæ令éï¼é»è®¤ä¸ºthumb
prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status
make: *** [out/target/product/merlin/obj/SHARED_LIBRARIES/libasound_intermediates/LINKED/libasound.so] é误 1
解å³æ¤é®é¢å°alsa-lib/include/config.hæ件ä¸çå¦ä¸å®å®ä¹å»æå³å¯ï¼
#define VERSIONED_SYMBOLS
å¼åè¿ç¨ä¸ç¢°å°è¿å¾å¤é误ï¼åç»åä¸ä¸æ»ç»è®°å½ä¸æ¥ï¼æäºå¿è®°äºãã
å¨android.mkä¸ç¼è¯ï¼
include $(CLEAR_VARS)
$(call add-prebuilt-files, STATIC_LIBRARIES, libyfcdca.a)
åºç°æ示éè¦å®ä¹ï¼LOCAL_MODULE_TAGS := optional ä¸è¬ä¿®æ¹æ¹æ³æ¯ï¼
build\core\definitions.mk ä¸çå®å®ä¹åéï¼
define include-prebuilt
include $$(CLEAR_VARS)
LOCAL_SRC_FILES := $(1)
LOCAL_BUILT_MODULE_STEM := $(1)
LOCAL_MODULE_SUFFIX := $$(suffix $(1))
LOCAL_MODULE := $$(basename $(1))
LOCAL_MODULE_CLASS := $(2)
include $$(BUILD_PREBUILT)
endef
å¨è¿éå¢å ä¸ä¸ªLOCAL_MODULE_TAGS := optional
ä½æ¯è¿éè¦ä¿®æ¹androidæºç ï¼å¦æä¸æ¯èªå·²çandroidç³»ç»ï¼è¿ä¹å就麻ç¦äºï¼æ以å¿
é¡»æ³å
¶å®åæ³è§£å³ï¼
#include $(CLEAR_VARS)
#$(call add-prebuilt-files, STATIC_LIBRARIES, libyfcdca.a)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := libyfcdca.a
LOCAL_BUILT_MODULE_STEM := libyfcdca.a
LOCAL_MODULE_SUFFIX := lib
LOCAL_MODULE := yfcdca
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)
å¦æ¤å³å¯äºã