2017-01-07 3 views
2

Я пытаюсь скомпилировать с использованием Linaro 6, и я получаю эту ошибку, которая, как я полагаю, что-то делает с GCC 6? Я очень любитель с компиляции ядра или кодирования по этому вопросу, но я не мог понять это даже найти похожие термины:Ошибка компиляции ядра Android 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 

это мой GitHub:

https://github.com/mykesorrel/surnia_kernel

ответ

1

Похоже ошибка с этим драйвером iommu. Он пытается сделать бит-сдвиг в int вместо long, у int не хватает бит для завершения операции. Я предполагаю, что -Wno-error не используется, поэтому все предупреждения рассматриваются как ошибки.

Этот вопрос поможет вам: How to compile without warnings being treated as errors?

Что лично я это обновление CFLAGS в моем .bashrc (Предполагая, что вы используете Linux). Это то, что я использую:

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

Спасибо, что я пошел с -w вместо этого, казалось, работал лучше, не знаю, почему другой не работал. – Mike

Смежные вопросы