Cross LFS - PPC - 컴파일 중 오류 발생

Cross LFS - PPC - 컴파일 중 오류 발생

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

에서는 menuconfigPPC 82XX 프로세서 제품군과의 호환성을 선택하는 것을 제외하고 기본 구성을 사용했습니다.

답변1

이것은 align.c 2.6.39 및 이전 GCC >= 4.6의 버그인 것 같습니다. 나는 당신이 최신 Fedora를 사용하여 구축하고 있으며 기본적으로 설치된 GCC는 GCC 4.6이라고 추측합니다. GCC < 4.6 IMHO에서는 이 오류가 나타나지 않아야 합니다.

변수 "instruction"은 704행에서 선언되고 0으로 초기화됩니다. 그런 다음 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를 끄거나 코드를 패치하는 데 도움이 되는 지침입니다.

코드를 패치하는 경우 이 버그가 3.3에 여전히 존재하므로 kernel.org에 제출하는 것을 고려해 보십시오.

답변2

libbfd.2-22.so 및 zlib.so(zlib.so.1로 이름 변경)를 /tools/lib에 복사하는 문제가 해결되었습니다. 어리석은 실수로 죄송합니다. 파일이 이미 있는 줄 알았습니다.

관련 정보