--with-fpmath=387
을 사용하는 소스에서 gcc 4.x를 컴파일하려고 시도했지만이 오류가 발생합니다 : "Invalid --with-fpmath=387"
. 나는 CONFIGS에보고하고 (문서가 여전히 가능한 옵션으로 언급에도 불구하고)이 옵션을 지원하지 않는 것을 발견 : 나는에 대한 실행 파일을 제공해야하기 때문에 기본적으로gcc 4.x x87 FPU 수학 지원 안함?
case ${with_fpmath} in
avx)
tm_file="${tm_file} i386/avxmath.h"
;;
sse)
tm_file="${tm_file} i386/ssemath.h"
;;
*)
echo "Invalid --with-fpmath=$with_fpmath" 1>&2
exit 1
을, 나는이 모든 일을 시작 오래된 대상 플랫폼 (실제로는 오래된 셀러론이지만 libstdC++에서 분명히 사용하는 SSE2 지침이없는 경우 DEFAULT). "잘못된 명령"메시지와 함께 libstdC++의 루틴을 복사하는 첫 번째 명령 (movq XMM0, ...)에서 실행 파일이 충돌합니다. 이 문제를 해결할 방법이 있습니까? 나는 기존의 코드 기반을 이식 할 수있는 꽤 최근의 g ++에 있어야한다.
일반 x87 명령어를 지원하도록 이전 빌드에서이 헤더/소스를 제공 할 수 있는지 궁금해서 SSE 명령어가 참조되지 않도록해야합니까?
업데이트 : 오브젝트 코드에 SSE2 명령어가있는 컴파일 된 libstdC++에 대해 얘기하고 있습니다. gcc 명령 줄 인수에 관한 질문이 아닙니다. 내 코드를 컴파일 할 때 gcc에 무엇을 공급하든 관계없이 이미 SSE2 지침이 내장 된 libstdC++와 링크됩니다.
GCC를 컴파일 할 때 ANY --with-fpmath 스위치를 사용하지 않는 것이 좋습니다. 나는 그것이 사실상 디폴트 값 (이 스위치에서 언급되지 않은 "387") 인 반면, 그것은 단지 sse 또는 avx만을 지원한다고 생각하는 configure 스크립트 switch 문에 대해 혼란스러워한다. 따라서 configure를 실행할 때 --with-fpmath를 사용하지 않도록하십시오. 그것없이 GCC를 재 컴파일했고 이제는 잘 동작한다.
감사합니다.
솔루션을 찾았 으면이 질문을 닫거나 업데이트를 답으로 추가하고 해당 대답을 수락하십시오. –