리눅스 컴파일 질문(not support Thumb mode)
글쓴이: leeky1124 / 작성시간: 일, 2014/07/27 - 10:50오후
android board에 올릴 내용을 인라인 assembler를 이용해서 컴파일 하는 중에
static inline void vfma64_operation_d1() { __asm__ __volatile__ ( "vfma.F64 d0, d1, d2 \n\t" : \ : \ : \ ); }
를 컴파일 하는데
@ubuntu:~$ arm-linux-gnueabihf-gcc -O2 VFMA.c -o VFMA
/tmp/ccyfCo0b.s: Assembler messages:
/tmp/ccyfCo0b.s:32: Error: selected processor does not support Thumb mode `vfma.f64 d0,d1,d2'
에러를 받았습니다.
"vfma.F64 d0, d1, d2 \n\t"
를
"ADD r0, r1, r2 \n\t"
로 수정하여 컴파일 시켜봤더니 이상없이 수행이 되었습니다.
어떻게 에러를 없앨 수 있을까요? 답변부탁드려요.
Forums:
-mfpu=neon-vfpv4
-mfpu=neon-vfpv4 -mfloat-abi=hard 를 컴파일러 옵션에 추가해 보세요.
(컴파일러를 보니 아마 -mfloat-abi=hard는 안 넣어도 될 듯)
감사합니다
주신 내용가지고 해결했어요!!(-mfpu만으로 해결 되었어요)
후에 같은 부분으로 고민하실분들을 위해 추가적으로 공부해보았는데,
-mfpu=[](ARM):'부동소수점 포멧'이 어셈블리 파일 내에 제대로 사용되었는지 체크하는 옵션.
-mfloat-abi-abi(type): 인자로 오는 abi를 부동소수점 ABI로 사용하는 옵션.
이라고 나와있네요. 다시한번 감사합니다!
댓글 달기