Gingerbread build on Arch Linux x86_64 with gcc 4.6.0 / small patch

Hello everyone,

Building from the sources with the following steps does not work
directly with gcc 4.6.0

1.  repo init -u git://android.git.kernel.org/platform/manifest.git -b
gingerbread && repo sync
2. .build/envsetup.sh
3. lunch (choice 1)
4. make

You get the following error:
host C++: libutils <= frameworks/base/libs/utils/RefBase.cpp
frameworks/base/libs/utils/RefBase.cpp: In member function ‘void
android::RefBase::weakref_type::trackMe(bool, bool)’:
frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing ‘const
android::RefBase::weakref_impl’ as ‘this’ argument of ‘void
android::RefBase::weakref_impl::trackMe(bool, bool)’ discards
qualifiers [-fpermissive]

gcc seems to be less permissive than before (http://gcc.gnu.org/
gcc-4.6/changes.html, need some further investigations)

The patch below seems to fix the problem (builds correctly):

 % repo diff frameworks/base/libs/utils/Android.mk

project frameworks/base/
diff --git a/libs/utils/Android.mk b/libs/utils/Android.mk
index eb75ed8..c333143 100644
--- a/libs/utils/Android.mk
+++ b/libs/utils/Android.mk
@@ -57,7 +57,7 @@ LOCAL_SRC_FILES:= $(commonSources)

 LOCAL_MODULE:= libutils

-LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
+LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
 LOCAL_C_INCLUDES += external/zlib

 ifeq ($(HOST_OS),windows)
阅读更多
上一篇problem with Ubuntu 11.10 on sun-java6-jdk
下一篇android 4.0 source code available
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭