도와주세요!!
글 수 15,339
2007.03.16 11:18:44 (*.138.143.118)
6678
안녕하세요..
메세지를 보면 /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
>
>매번 번거로우시겠지만..죄송합니다..몃번이고 다시 해보지만..번번이 이러는데..
>이거 왜이럴까요?;;
>우문 이지만 현답 부탁드립니다^^;;;
>
>
메세지를 보면 /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
>
>매번 번거로우시겠지만..죄송합니다..몃번이고 다시 해보지만..번번이 이러는데..
>이거 왜이럴까요?;;
>우문 이지만 현답 부탁드립니다^^;;;
>
>