프로그램 사용/make, configure
make시 error: impossible constraint in ‘asm’ 에러
구차니
2009. 9. 21. 13:58
아래 링크를 보니, target을 위한 include 들이 잘못되었을 것이라고 되어있다.
나의 경우에는 samba 크로스컴파일 중에 겪은 녀석으로(글 쓰는 시점에도 미해결 ㅠ.ㅠ)
이걸 해결한 줄 알고 있었더니, 콤보로 Error: unknown opcode 라는 녀석이 발동되었다..
왜인가 했더니.. macro 라고 되어있다. 그런이유로, asm 레벨에서 오류가 있었다고 하고
조금은 뜬금 없어 보이지만, asm 에 불가능한 문구가 있다고 에러가 나는 듯 하다.
추적 / Trace
# grep -rn "FD_ZERO" /usr/include
/usr/include/sys/select.h:96:#define FD_ZERO(fdsetp) __FD_ZERO (fdsetp)
/usr/include/bits/select.h:70:#define __FD_ZERO(fdsp) \
/usr/include/asm/posix_types.h:70:#define __FD_ZERO(fdsetp) \
나의 경우에는 samba 크로스컴파일 중에 겪은 녀석으로(글 쓰는 시점에도 미해결 ㅠ.ㅠ)
이걸 해결한 줄 알고 있었더니, 콤보로 Error: unknown opcode 라는 녀석이 발동되었다..
왜인가 했더니.. macro 라고 되어있다. 그런이유로, asm 레벨에서 오류가 있었다고 하고
조금은 뜬금 없어 보이지만, asm 에 불가능한 문구가 있다고 에러가 나는 듯 하다.
FD_ZERO is a macro used to initialise an fd_set structure prior to using select(). These are OS-provided, so if they won't compile then this suggests that you're using the wrong headers for the target. [링크 : http://www.realvnc.com/pipermail/vnc-list/2007-February/057070.html] |
추적 / Trace
# grep -rn "FD_ZERO" /usr/include
/usr/include/sys/select.h:96:#define FD_ZERO(fdsetp) __FD_ZERO (fdsetp)
/usr/include/bits/select.h:70:#define __FD_ZERO(fdsp) \
26 # define __FD_ZERO(fdsp) \ 27 do { \ 28 int __d0, __d1; \ 29 __asm__ __volatile__ ("cld; rep; stosl" \ 30 : "=c" (__d0), "=D" (__d1) \ 31 : "a" (0), "0" (sizeof (fd_set) \ 32 / sizeof (__fd_mask)), \ 33 "1" (&__FDS_BITS (fdsp)[0]) \ 34 : "memory"); \ 35 } while (0) |
/usr/include/asm/posix_types.h:70:#define __FD_ZERO(fdsetp) \
69 #undef __FD_ZERO 70 #define __FD_ZERO(fdsetp) \ 71 do { \ 72 int __d0, __d1; \ 73 __asm__ __volatile__("cld ; rep ; stosl" \ 74 :"=m" (*(__kernel_fd_set *) (fdsetp)), \ 75 "=&c" (__d0), "=&D" (__d1) \ 76 :"a" (0), "1" (__FDSET_LONGS), \ 77 "2" ((__kernel_fd_set *) (fdsetp)) : "memory"); \ 78 } while (0) |