Build GingerBread on 32 bit machine.

来源:互联网 发布:网络无internet访问 编辑:程序博客网 时间:2024/06/13 08:13

I tried and it works http://forum.xda-developers.com/showpost.php?p=9998281&postcount=12

 

 

 

A quick and brutal fix is to:
1) go to gingerbread/prebuilt/linux-x86/toolchain
2) rename arm-eabi-4.4.3 to arm-eabi-4.4.3.old
3) link arm-eabi-4.4.0 to arm-eabi-4.4.3

Code:
cd gingerbread/prebuilt/linux-x86/toolchainmv arm-eabi-4.4.3 to arm-eabi-4.4.3.oldln -s arm-eabi-4.4.0  arm-eabi-4.4.3

One more fix needed to build on x86 is to change

Code:
# This forces a 64-bit build for Java6LOCAL_CFLAGS += -m64LOCAL_LDFLAGS += -m64

in the Android.mk files of the gingerbread/external/clearsilver/ directory
and subdirectories to:

Code:
# This forces a 64-bit build for Java6LOCAL_CFLAGS += -m32LOCAL_LDFLAGS += -m32

This should be fixed in a more elegant way based on the host arch.

Started to compile now....................................Done.
Works so far.

Patch attached to fix build on 32 bit hosts.

Code:
repo diffproject build/diff --git a/core/main.mk b/core/main.mkindex 6113e52..72e32c8 100644--- a/core/main.mk+++ b/core/main.mk@@ -72,7 +72,8 @@ $(info Checking build tools versions...) ifeq ($(BUILD_OS),linux) build_arch := $(shell uname -m)-ifneq (64,$(findstring 64,$(build_arch)))+#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.)project external/clearsilver/diff --git a/cgi/Android.mk b/cgi/Android.mkindex 21c534b..2c7bf36 100644--- a/cgi/Android.mk+++ b/cgi/Android.mk@@ -13,8 +13,12 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. LOCAL_CFLAGS := -fPIC # This forces a 64-bit build for Java6-LOCAL_CFLAGS += -m64-LOCAL_LDFLAGS += -m64+#LOCAL_CFLAGS += -m64+#LOCAL_LDFLAGS += -m64++# This forces a 64-bit build for Java6+LOCAL_CFLAGS += -m32+LOCAL_LDFLAGS += -m32 LOCAL_NO_DEFAULT_COMPILER_FLAGS := truediff --git a/cs/Android.mk b/cs/Android.mkindex 9f0e30a..4807b3f 100644--- a/cs/Android.mk+++ b/cs/Android.mk@@ -9,8 +9,10 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. LOCAL_CFLAGS := -fPIC # This forces a 64-bit build for Java6-LOCAL_CFLAGS += -m64-LOCAL_LDFLAGS += -m64+#LOCAL_CFLAGS += -m64+#LOCAL_LDFLAGS += -m64+LOCAL_CFLAGS += -m32+LOCAL_LDFLAGS += -m32 LOCAL_NO_DEFAULT_COMPILER_FLAGS := truediff --git a/java-jni/Android.mk b/java-jni/Android.mkindex 21b4fd1..cc6d3ce 100644--- a/java-jni/Android.mk+++ b/java-jni/Android.mk@@ -34,8 +34,10 @@ LOCAL_C_INCLUDES := / LOCAL_CFLAGS += -fPIC # This forces a 64-bit build for Java6-LOCAL_CFLAGS += -m64-LOCAL_LDFLAGS += -m64+#LOCAL_CFLAGS += -m64+#LOCAL_LDFLAGS += -m64+LOCAL_CFLAGS += -m32+LOCAL_LDFLAGS += -m32 LOCAL_NO_DEFAULT_COMPILER_FLAGS := truediff --git a/util/Android.mk b/util/Android.mkindex 386f379..fc27bbf 100644--- a/util/Android.mk+++ b/util/Android.mk@@ -18,8 +18,12 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. LOCAL_CFLAGS := -fPIC # This forces a 64-bit build for Java6-LOCAL_CFLAGS += -m64-LOCAL_LDFLAGS += -m64+#LOCAL_CFLAGS += -m64+#LOCAL_LDFLAGS += -m64++# This forces a 64-bit build for Java6+LOCAL_CFLAGS += -m32+LOCAL_LDFLAGS += -m32 LOCAL_NO_DEFAULT_COMPILER_FLAGS := true
另外还需要修改 rename 
opensles/libopensles/IAndroidEffect.c => opensles/libopensles/IAndroidEffect.cpp
diff --git a/opensles/libopensles/Android.mk b/opensles/libopensles/ Android.mk index 64e9b6f..f965d3e 100644 --- a/opensles/libopensles/Android.mk +++ b/opensles/libopensles/Android.mk @@ -56,7 +56,7 @@ LOCAL_SRC_FILES:=                     /          CEngine.c                     /          COutputMix.c                  /          IAndroidConfiguration.c       / -        IAndroidEffect.c              / +        IAndroidEffect.cpp            /          IAndroidEffectCapabilities.c  /          IAndroidEffectSend.c          /          IBassBoost.c