2017-01-07 3 views
2

Linaro 6을 사용하여 컴파일하려고하는데 GCC 6과 관련이 있다고 생각하는 오류가 발생 했습니까? 나는 커널 컴파일 또는 그 문제에 대한 코딩 매우 아마추어 해요,하지만 난이 알아낼 유사한 용어를 검색 할 수 없습니다 :이 내 GitHub의입니다안드로이드 커널 컴파일 오류 gcc6 linaro 6

CC  drivers/iommu/msm_iommu-v1.o 
In file included from include/linux/io.h:22:0, 
       from drivers/iommu/msm_iommu-v1.c:20: 
drivers/iommu/msm_iommu-v1.c: In function '__program_context': 
drivers/iommu/msm_iommu_hw-v1.h:78:31: warning: result of '16777215 << 14' requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=] 
error, forbidden warning: msm_iommu_hw-v1.h:78 
scripts/Makefile.build:308: recipe for target 'drivers/iommu/msm_iommu-v1.o' failed 

을 : https://github.com/mykesorrel/surnia_kernel

답변

1

의 모습

그 iommu 드라이버 버그. long 대신에 int으로 비트 시프트를 시도하면 int에 작업을 완료하는 데 필요한 비트가 부족합니다. 나는 -Wno-error이 사용되지 않았다고 생각합니다. 따라서 모든 경고는 오류로 처리됩니다.

이 질문은 당신을 도울 것입니다 : 내가 개인적으로 할 것은 (당신이 리눅스를 사용하는 가정) 내 .bashrc에의 갱신 CFLAGS입니다 How to compile without warnings being treated as errors?

. 이것은 내가 사용하는 것입니다 :

# Ensure C builds don't fail on warnings 
export CFLAGS="-Wno-error" 
export CXXFLAGS="-Wno-error" 
+0

감사합니다. 나는 그 대신에 더 잘 작동하는 것처럼 보였고, 다른 하나는 작동하지 않는 이유를 모릅니다. – Mike