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과 관련된 이전 버전의 버그인 것으로 보입니다. 나는 당신이 기본적으로 설치된 GCC로 GCC 4.6이 있는 최신 Fedora를 기반으로 구축하고 있다고 추측합니다. 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]

변수 "instruction"은 ifdef'ed 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에 복사하는 문제가 해결되었습니다. 어리석은 오류로 인해 죄송합니다. 파일이 이미 있는 줄 알았습니다.

관련 정보