안녕하세요..

메세지를 보면 /usr/lib/gcc-lib/arm-linux/3.3.4/include 이 부분이 있는데.. 현재 gcc-3.3.4로 컴파일이 되는것이 아닌가요??

asm-specifier for variable `__r1' conflicts with asm clobber  list  

이 에러는 gcc-3.3 대에서 커널 2.4 대를 컴파일 할때 나는 에러로 알고 있습니다..


--- 2.5.68-rmk1/linu/arch/arm/Makefile        Tue Apr 22 12:01:48 2003
+++ linux/arch/arm/Makefile        Sun May 18 15:16:58 2003
@@ -56,7 +56,7 @@
# do this with -msoft-float
CFLAGS_BOOT        :=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm
CFLAGS                +=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm
-AFLAGS                +=$(apcs-y) $(arch-y) $(tune-y) -mno-fpu -msoft-float -Wa,-mno-fpu
+AFLAGS                +=$(apcs-y) $(arch-y) $(tune-y) -msoft-float -Wa,-mno-fpu

#Default value
DATAADDR        := .
--- 2.5.68-rmk1/linu/include/asm-arm/uaccess.h        Tue Apr 22 12:02:11 2003
+++ linux/include/asm-arm/uaccess.h        Sun May 18 15:09:32 2003
@@ -85,7 +85,7 @@
                        __get_user_x(__r1, __p, __e, 1, "lr");                
                               break;                                                
                case 2:                                                        
-                        __get_user_x(__r1, __p, __e, 2, "r2", "lr");        
+                        __get_user_x(__r1, __p, __e, 2, "ip", "lr");        
                        break;                                                
                case 4:                                                        
                               __get_user_x(__r1, __p, __e, 4, "lr");                
@@ -144,13 +144,13 @@
                register int __e asm("r0");                                
                switch (sizeof(*(__p))) {                                
                case 1:                                                        
-                        __put_user_x(__r1, __p, __e, 1, "r2", "lr");        
+                        __put_user_x(__r1, __p, __e, 1, "ip", "lr");        
                        break;                                                
                case 2:                                                        
-                        __put_user_x(__r1, __p, __e, 2, "r2", "lr");        
+                        __put_user_x(__r1, __p, __e, 2, "ip", "lr");        
                        break;                                                
                case 4:                                                        
-                        __put_user_x(__r1, __p, __e, 4, "r2", "lr");        
+                        __put_user_x(__r1, __p, __e, 4, "ip", "lr");        
                        break;                                                
                case 8:                                                        
                        __put_user_x(__r1, __p, __e, 8, "ip", "lr");        
--- 2.5.68-rmk1/linu/arch/arm/lib/getuser.S        Tue Apr 22 12:01:47 2003
+++ linux/arch/arm/lib/getuser.S        Sun May 18 15:12:39 2003
@@ -43,17 +43,17 @@

        .global        __get_user_2
__get_user_2:
-        bic        r2, sp, #0x1f00
-        bic        r2, r2, #0x00ff
-        ldr        r2, [r2, #TI_ADDR_LIMIT]
-        sub        r2, r2, #2
-        cmp        r0, r2
+        bic        ip, sp, #0x1f00
+        bic        ip, ip, #0x00ff
+        ldr        ip, [ip, #TI_ADDR_LIMIT]
+        sub        ip, ip, #2
+        cmp        r0, ip
2:        ldrlsbt        r1, [r0], #1
-3:        ldrlsbt        r2, [r0]
+3:        ldrlsbt        ip, [r0]
#ifndef __ARMEB__
-        orrls        r1, r1, r2, lsl #8
+        orrls        r1, r1, ip, lsl #8
#else
-        orrls        r1, r2, r1, lsl #8
+        orrls        r1, ip, r1, lsl #8
#endif
        movls        r0, #0
        movls        pc, lr
--- 2.5.68-rmk1/linu/arch/arm/lib/putuser.S        Tue Apr 22 12:01:47 2003
+++ linux/arch/arm/lib/putuser.S        Sun May 18 15:12:58 2003
@@ -18,7 +18,7 @@
  * Inputs:        r0 contains the address
  *                r1, r2 contains the value
  * Outputs:        r0 is the error code
- *                lr corrupted
+ *                ip, lr corrupted
  *
  * No other registers must be altered.  (see include/asm-arm/uaccess.h
  * for specific ASM register usage).
@@ -31,11 +31,11 @@

        .global        __put_user_1
__put_user_1:
-        bic        r2, sp, #0x1f00
-        bic        r2, r2, #0x00ff
-        ldr        r2, [r2, #TI_ADDR_LIMIT]
-        sub        r2, r2, #1
-        cmp        r0, r2
+        bic        ip, sp, #0x1f00
+        bic        ip, ip, #0x00ff
+        ldr        ip, [ip, #TI_ADDR_LIMIT]
+        sub        ip, ip, #1
+        cmp        r0, ip
1:        strlsbt        r1, [r0]
        movls        r0, #0
        movls        pc, lr
@@ -43,17 +43,17 @@

        .global        __put_user_2
__put_user_2:
-        bic        r2, sp, #0x1f00
-        bic        r2, r2, #0x00ff
-        ldr        r2, [r2, #TI_ADDR_LIMIT]
-        sub        r2, r2, #2
-        cmp        r0, r2
-        movls        r2, r1, lsr #8
+        bic        ip, sp, #0x1f00
+        bic        ip, ip, #0x00ff
+        ldr        ip, [ip, #TI_ADDR_LIMIT]
+        sub        ip, ip, #2
+        cmp        r0, ip
+        movls        ip, r1, lsr #8
#ifndef __ARMEB__
2:        strlsbt        r1, [r0], #1
-3:        strlsbt        r2, [r0]
+3:        strlsbt        ip, [r0]
#else
-2:        strlsbt        r2, [r0], #1
+2:        strlsbt        ip, [r0], #1
3:        strlsbt        r1, [r0]
#endif
        movls        r0, #0
@@ -62,11 +62,11 @@

        .global        __put_user_4
__put_user_4:
-        bic        r2, sp, #0x1f00
-        bic        r2, r2, #0x00ff
-        ldr        r2, [r2, #TI_ADDR_LIMIT]
-        sub        r2, r2, #4
-        cmp        r0, r2
+        bic        ip, sp, #0x1f00
+        bic        ip, ip, #0x00ff
+        ldr        ip, [ip, #TI_ADDR_LIMIT]
+        sub        ip, ip, #4
+        cmp        r0, ip
4:        strlst        r1, [r0]
        movls        r0, #0
        movls        pc, lr

위의 패치와 같이 r2 를 보두 ip 로 수정해 주셔야 합니다...
이와 관련하여 패치된 커널은 자료실 >> TOOL-CHAIN >>  [EZ-X5] arm-linux gcc-3.3.4 ( linux-2.4.19-x5-v07.tar.gz)  를 다운받으시면 됩니다.

하지만 3.2.1의 툴체인이 정상적으로 설치되었는지 확인 해 보세요..
이전에 3.3.4 툴체인을 설치하셨다면 관련 파일이나 디렉토리를 강제로 삭제하시고 나서, 3.2.1 툴체인을
다시 설치해 보세요.


그럼 수고하세요..























>본사이트 게사판에 올라온 문서를 참조하여 logitech Quickcam pro 400 캠을 올리려는중....
>문서에 있는것과 같이 커널을 수정하여 zimage와 모듈을 생성하려는데 오류가 납니다.
>
>운영체제는 페도라 4이구요 툴체인은 ARM GCC 3.2.1 사용중입니다.  
>
>make[1]: Entering directory `/linux-2.4.19-x5-v07/kernel'
>make all_targets
>make[2]: Entering directory `/linux-2.4.19-x5-v07/kernel'
>make[2]: `all_targets'를 위해 할 일이 없습니다
>make[2]: Leaving directory `/linux-2.4.19-x5-v07/kernel'
>make[1]: Leaving directory `/linux-2.4.19-x5-v07/kernel'
>make CFLAGS="-D__KERNEL__ -I/linux-2.4.19-x5-v07/include -Wall -Wstrict-prototyp es -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe - mapcs-32 -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale -mshort-load-bytes -m soft-float -Uarm " -C  drivers
>make[1]: Entering directory `/linux-2.4.19-x5-v07/drivers'
>make -C block
>make[2]: Entering directory `/linux-2.4.19-x5-v07/drivers/block'
>make all_targets
>make[3]: Entering directory `/linux-2.4.19-x5-v07/drivers/block'
>arm-linux-gcc -D__KERNEL__ -I/linux-2.4.19-x5-v07/include -Wall -Wstrict-prototy pes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale -mshort-load-bytes - msoft-float -Uarm   -nostdinc -I /usr/lib/gcc-lib/arm-linux/3.3.4/include -DKBUI LD_BASENAME=blkpg  -DEXPORT_SYMTAB -c blkpg.c
>blkpg.c: In function `blk_ioctl':
>blkpg.c:252: error: asm-specifier for variable `__r1' conflicts with asm clobber  list
>blkpg.c:252: confused by earlier errors, bailing out
>make[3]: *** [blkpg.o] 오류 1
>make[3]: Leaving directory `/linux-2.4.19-x5-v07/drivers/block'
>make[2]: *** [first_rule] 오류 2
>make[2]: Leaving directory `/linux-2.4.19-x5-v07/drivers/block'
>make[1]: *** [_subdir_block] 오류 2
>make[1]: Leaving directory `/linux-2.4.19-x5-v07/drivers'
>make: *** [_dir_drivers] 오류 2
>
>매번 번거로우시겠지만..죄송합니다..몃번이고 다시 해보지만..번번이 이러는데..
>이거 왜이럴까요?;;
>우문 이지만 현답 부탁드립니다^^;;;
>
>