I just 'upgraded' to GCC v2.7.2 on my linux v1.2.13/ELF (slackware v3.0)
system. I followed the GCC upgrade doc and have updated all my binaries
as well to the current versions. I went and did some testing with other
programs (both c & c++) and all seem to be compiling fine. I then
tried to re-compile the 1.2.13 kernel (I have two patches on the kernel
the 3com 595 vortex, and AHA2940UW patches). The compile went fine
until I got to making the zImage. (make dep, make clean, etc all worked)
this is the error that I got when I started making the zImage:
Anyone have any ideas on how to fix this?
-------------------------------
/usr/src/linuxelf-1.2.13/include/asm/io.h: In function 'copro_timeout':
/usr/src/linuxelf-1.2.13/include/asm/io.h:82: inconsistent operand constraints in an 'asm'
/usr/src/linuxelf-1.2.13/include/asm/io.h:82: inconsistent operand constraints in an 'asm'
/usr/src/linuxelf-1.2.13/include/asm/io.h:82: inconsistent operand constraints in an 'asm'
/usr/src/linuxelf-1.2.13/include/asm/io.h:82: inconsistent operand constraints in an 'asm'
/usr/src/linuxelf-1.2.13/include/asm/io.h: In function 'check_fpu':
/usr/src/linuxelf-1.2.13/include/asm/io.h:78: inconsistent operand constraints in an 'asm'
/usr/src/linuxelf-1.2.13/include/asm/io.h:82: inconsistent operand constraints in an 'asm'
/usr/src/linuxelf-1.2.13/include/asm/io.h:78: inconsistent operand constraints in an 'asm'
/usr/src/linuxelf-1.2.13/include/asm/io.h:82: inconsistent operand constraints in an 'asm'
make: *** [init/main.o] error 1
-------------------------------------
relative portion of io.h:
------------
#define __OUT1(s,x) \
extern inline void __out##s(unsigned x value, unsigned short port) {
#define __OUT2(s,s1,s2) \
__asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1"
#define __OUT(s,s1,x) \
__OUT1(s,x) __OUT2(s,s1,"w") : : "a" (value), "d" (port)); } \
__OUT1(s##c,x) __OUT2(s,s1,"") : : "a" (value), "i" (port)); } \
__OUT1(s##_p,x) __OUT2(s,s1,"w") : : "a" (value), "d" (port)); SLOW_DOWN_IO; } \
__OUT1(s##c_p,x) __OUT2(s,s1,"") : : "a" (value), "i" (port)); SLOW_DOWN_IO; }
#define __IN1(s) \
extern inline unsigned int __in##s(unsigned short port) { unsigned int _v;
#define __IN2(s,s1,s2) \
__asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0"
#define __IN(s,s1,i...) \
__IN1(s) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) ,##i ); return _v; } \
__IN1(s##c) __IN2(s,s1,"") : "=a" (_v) : "i" (port) ,##i ); return _v; } \
__IN1(s##_p) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) ,##i ); SLOW_DOWN_IO; return _v; } \
__IN1(s##c_p) __IN2(s,s1,"") : "=a" (_v) : "i" (port) ,##i ); SLOW_DOWN_IO; return _v; }
__IN(b,"b","0" (0))
__IN(w,"w","0" (0))
__IN(l,"")
__OUT(b,"b",char)
__OUT(w,"w",short)
__OUT(l,,int)
--------------------------------------------
Stephen Costaras