IEEE1394(based on TMO-LINUX)커널 컴파일 도중에 계속 뜨는 오류-_-
잘못된 곳이 없음에도 불구하고 계속 뜨길래 화가나서 검색해 봤더니, patch를 하면 괜찮아진단다;
3개의 파일을 수정을 해야한다.
1. linux/arch/i386/kernel/process.c
- asm volatile("movl %%fs,%0":"=m" (*(int *)&prev->fs));
- asm volatile("movl %%gs,%0":"=m" (*(int *)&prev->gs));
+ asm volatile("mov %%fs,%0":"=m" (prev->fs));
+ asm volatile("mov %%gs,%0":"=m" (prev->gs));
2. linux/arch/i386/kernel/vm86.c
- asm volatile("movl %%fs,%0":"=m" (tsk->thread.saved_fs));
- asm volatile("movl %%gs,%0":"=m" (tsk->thread.saved_gs));
+ asm volatile("mov %%fs,%0":"=m" (tsk->thread.saved_fs));
+ asm volatile("mov %%gs,%0":"=m" (tsk->thread.saved_gs));
3. linux/include/asm-i386/system.h
asm volatile("\n" \
"1:\t" \
- "movl %0,%%" #seg "\n" \
+ "mov %0,%%" #seg "\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3:\t" \
".align 4\n\t" \
".long 1b,3b\n" \
".previous" \
- : :"m" (*(unsigned int *)&(value)))
+ : :"m" (value))
#define savesegment(seg, value) \
- asm volatile("movl %%" #seg ",%0":"=m" (*(int *)&(value)))
+ asm volatile("mov %%" #seg ",%0":"=m" (value))
일일이 수정하기 귀찮다면 patch파일을 받아서 설치하는 것이 좋을 것이다.
댓글 없음:
댓글 쓰기