我正在尝试为 PPC 8270 处理器构建 CLFS。一切都很好,直到我使用该make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}-
命令。
CC arch/powerpc/kernel/align.o
arch/powerpc/kernel/align.c: In function 'fix_alignment':
arch/powerpc/kernel/align.c:704:33: error: variable 'instruction' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
make[1]: *** [arch/powerpc/kernel/align.o] Error 1
make: *** [arch/powerpc/kernel] Error 2
在 中menuconfig
,除了选择与 PPC 82XX 处理器系列兼容之外,我使用了默认配置。
答案1
在我看来,这是align.c 2.6.39 和之前的 GCC >= 4.6 中的一个错误。我猜测您正在使用最新的 Fedora 进行构建,默认安装的 GCC 是 GCC 4.6。使用 GCC < 4.6 恕我直言,该错误不应该出现。
变量“指令”在第 704 行声明并初始化为零。然后在第 746 行重新分配。此重新分配不足以消除 gcc 警告。我通过编译验证了这种行为
int main()
{
int i = 0;
i = 4;
return 1;
}
与/usr/local/gcc-4.7.0/bin/gcc -Wall -o test test.c
并得到
test.c:3:6: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]
变量“指令”仅在 ifdef 的 CONFIG_VSX 代码中引用,因此,如果您没有设置 CONFIG_VSX,那么在使用 GCC >= 4.6 进行编译时您将看到此问题。设置 CONFIG_VSX 应该可以解决问题。如果这不是您想要的,请尝试在 menuconfig 中设置 CONFIG_PPC_DISABLE_WERROR 或使用这些帮助您关闭 -Werror 或修补代码的说明。
如果您确实修补了代码,请考虑将其提交到 kernel.org,因为我发现这个错误在 3.3 中仍然存在
答案2
解决了将 libbfd.2-22.so 和 zlib.so(重命名为 zlib.so.1)复制到 /tools/lib 的问题。抱歉这个愚蠢的错误,我以为文件已经在那里了。