1. _FORTIFY_SOURCE”重定义
build/core/combo/HOST_linux-x86.mk line 61:
-HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
+HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
修改build/core/combo/HOST_linux-x86.mk 61行,将 HOST_GLOBAL_CFLAGS +=-D_FORTIFY_SOURCE=0 修改成 HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE-D_FORTIFY_SOURCE=0
2. 错误: reference ‘counts’ cannot be declared ‘mutable’[-fpermissive]
external/oprofile/libpp/format_output.h自己动手修改。去除mutable。
3. external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11:错误: ‘ptrdiff_t’不是一个类型名
In file included fromexternal/gtest/src/../include/gtest/gtest-param-test.h:157:0,解决方法:
$vimexternal/gtest/src/../include/gtest/internal/gtest-param-util.h
#include <cstddef>
4. host Executable: test-librsloader(out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader)
host StaticLib: libui(out/host/linux-x86/obj/STATIC_LIBRARIES/libui_intermediates/libui.a)out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Signals.o):In function `PrintStackTrace':
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Unix/Signals.inc:219:undefined reference to `dladdr'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Unix/Signals.inc:231:undefined reference to `dladdr'
out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Threading.o):In function `llvm::llvm_execute_on_thread(void (*)(void*), void*,unsigned int)':
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:96:undefined reference to `pthread_create'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:91:undefined reference to `pthread_attr_setstacksize'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:100:undefined reference to `pthread_join'
out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o):In function `MutexImpl':
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:69:undefined reference to `pthread_mutexattr_init'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:75:undefined reference to `pthread_mutexattr_settype'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:80:undefined reference to `pthread_mutexattr_setpshared'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:89:undefined reference to `pthread_mutexattr_destroy'
out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o):In function `llvm::sys::MutexImpl::tryacquire()':
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:143:undefined reference to `pthread_mutex_trylock'
collect2: ld 返回 1
make: ***[out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader]错误 1
make: *** 正在等待未完成的任务....
解决方法:
$vim external/llvm/llvm-host-build.mk
LOCAL_LDLIBS := -lpthread -ldl
5. collected 3100 test methods in 225 junit test classes
target Strip: libchromium_net(out/target/product/generic/obj/lib/libchromium_net.so)target Java: LatinIME(out/target/common/obj/APPS/LatinIME_intermediates/classes)
target Dex: Music
target Strip: libandroid_runtime(out/target/product/generic/obj/lib/libandroid_runtime.so)
host C++: llvm-rs-cc <=frameworks/compile/slang/slang_rs_export_foreach.cpp
frameworks/compile/slang/slang_rs_export_foreach.cpp:在静态成员函数‘static slang::RSExportForEach*slang::RSExportForEach::Create(slang::RSContext*, constclang::FunctionDecl*)’中:
frameworks/compile/slang/slang_rs_export_foreach.cpp:247:23: 错误:variable ‘ParamName’ set but not used[-Werror=unused-but-set-variable]
cc1plus:所有的警告都被当作是错误
解决方法:
$ vim frameworks/compile/slang/Android.mk
#local_cflags_for_slang := -Wno-sign-promo -Wall-Wno-unused-parameter -Werror
local_cflags_for_slang := -Wno-sign-promo -Wall-Wno-unused-parameter
6. external/mesa3d/src/glsl/linker.cpp:623:33:警告: ‘virtual ir_visitor_statusremap_variables(ir_instruction*, gl_shader*,hash_table*)::remap_visitor::visit(ir_dereference_variable*)’所隐藏[-Woverloaded-virtual]
external/mesa3d/src/glsl/linker.cpp: 在函数‘voidassign_varying_locations(gl_shader_program*, gl_shader*,gl_shader*)’中:external/mesa3d/src/glsl/linker.cpp:1394:49: 错误: expectedprimary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1394:50: 错误:‘varyings’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1394:58: 错误:‘offsetof’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1395:48: 错误: expectedprimary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1412:47: 错误: expectedprimary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1412:48: 错误:‘position’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1414:47: 错误: expectedprimary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1414:48: 错误:‘pointSize’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1424:47: 错误: expectedprimary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1424:48: 错误:‘position’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1428:47: 错误: expectedprimary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1428:48: 错误:‘frontFacingPointCoord’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1431:47: 错误: expectedprimary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1431:48: 错误:‘frontFacingPointCoord’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp: 在函数‘void link_shaders(constgl_context*, gl_shader_program*)’中:
external/mesa3d/src/glsl/linker.cpp:1734:49: 错误: expectedprimary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1734:50: 错误:‘fragColor’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1734:59: 错误:‘offsetof’在此作用域中尚未声明
make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o]错误 1
解决方法:
vim external/mesa3d/src/glsl/linker.cpp
添加:
#include <cstddef>
7. java.lang.OutOfMemoryError: GC overhead limit exceeded
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.android.dx.dex.code.OutputFinisher.findExpandedOpcodeForInsn(OutputFinisher.java:525)
at com.android.dx.dex.code.OutputFinisher.calculateReservedCount(OutputFinisher.java:466)
at com.android.dx.dex.code.OutputFinisher.reserveRegisters(OutputFinisher.java:402)
at com.android.dx.dex.code.OutputFinisher.finishProcessingAndGetList(OutputFinisher.java:358)
at com.android.dx.dex.code.DalvCode.finishProcessingIfNecessary(DalvCode.java:108)
at com.android.dx.dex.code.DalvCode.getInsns(DalvCode.java:185)
at com.android.dx.dex.file.CodeItem.place0(CodeItem.java:223)
at com.android.dx.dex.file.OffsettedItem.place(OffsettedItem.java:242)
at com.android.dx.dex.file.MixedItemSection.placeItems(MixedItemSection.java:312)
at com.android.dx.dex.file.DexFile.toDex0(DexFile.java:543)
at com.android.dx.dex.file.DexFile.toDex(DexFile.java:216)
at com.android.dx.command.dexer.Main.writeDex(Main.java:574)
at com.android.dx.command.dexer.Main.run(Main.java:218)
at com.android.dx.command.dexer.Main.main(Main.java:174)
at com.android.dx.command.Main.main(Main.java:95)
make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex] error 3
解决方法:
$ vim build/core/definitions.mk
java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.android.dx.dex.code.OutputFinisher.findExpandedOpcodeForInsn(OutputFinisher.java:525)
at com.android.dx.dex.code.OutputFinisher.calculateReservedCount(OutputFinisher.java:466)
at com.android.dx.dex.code.OutputFinisher.reserveRegisters(OutputFinisher.java:402)
at com.android.dx.dex.code.OutputFinisher.finishProcessingAndGetList(OutputFinisher.java:358)
at com.android.dx.dex.code.DalvCode.finishProcessingIfNecessary(DalvCode.java:108)
at com.android.dx.dex.code.DalvCode.getInsns(DalvCode.java:185)
at com.android.dx.dex.file.CodeItem.place0(CodeItem.java:223)
at com.android.dx.dex.file.OffsettedItem.place(OffsettedItem.java:242)
at com.android.dx.dex.file.MixedItemSection.placeItems(MixedItemSection.java:312)
at com.android.dx.dex.file.DexFile.toDex0(DexFile.java:543)
at com.android.dx.dex.file.DexFile.toDex(DexFile.java:216)
at com.android.dx.command.dexer.Main.writeDex(Main.java:574)
at com.android.dx.command.dexer.Main.run(Main.java:218)
at com.android.dx.command.dexer.Main.main(Main.java:174)
at com.android.dx.command.Main.main(Main.java:95)
make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex] error 3
代码中的变量定义:
define transform-classes.jar-to-dex
@echo "target Dex: $(PRIVATE_MODULE)"
@mkdir -p $(dir $@)
$(hide) $(DX) \
$(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx1024M) \
--dex --output=$@ \
$(if $(NO_OPTIMIZE_DX), \
--no-optimize) \
$(if $(GENERATE_DEX_DEBUG), \
--debug --verbose \
--dump-to=$(@:.dex=.lst) \
--dump-width=1000) \
$(PRIVATE_DX_FLAGS) \
$<
endef
将-JXms16M -JXmx1024M 修改成适当的值
我的机器是内存是32G的,我将-JXms16M -JXmx1024M修改为-JXms1024M -JXmx2048M
具体值的大小要根据具体机器的内存而定,内存太少设置的值大一样会出现问题。