Problems compiling 1.2.13 kernel with gcc 2.7.2--PLEASE HELP

Problems compiling 1.2.13 kernel with gcc 2.7.2--PLEASE HELP

Post by Daniel J. Bodo » Wed, 31 Jan 1996 04:00:00



Everyone,

I was having problems compiling the kernel with gcc 2.7.0 (Kernel 1.2.13)
by getting Internal Compiler Error 11 so I wondered if 2.7.0 was somehow
broken and when installing the newer 2.7.2 version, I get the following
problem...

gcc -D__KERNEL__ -I/root/linux/include  -fno-strength-reduce -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -m486  -c -o init/main.o init/main.c
/root/linux/include/asm/io.h: In function `copro_timeout':
/root/linux/include/asm/io.h:82: inconsistent operand constraints in an `asm'
/root/linux/include/asm/io.h:82: inconsistent operand constraints in an `asm'
/root/linux/include/asm/io.h:82: inconsistent operand constraints in an `asm'
/root/linux/include/asm/io.h:82: inconsistent operand constraints in an `asm'
/root/linux/include/asm/io.h: In function `check_fpu':
/root/linux/include/asm/io.h:78: inconsistent operand constraints in an `asm'
/root/linux/include/asm/io.h:82: inconsistent operand constraints in an `asm'
/root/linux/include/asm/io.h:78: inconsistent operand constraints in an `asm'
/root/linux/include/asm/io.h:82: inconsistent operand constraints in an `asm'
make: *** [init/main.o] Error 1

I've done the 'ldconfig' thing but to no avail.  Any ideas?????

Thanks in advance,

Dan

--------------------------------------------------------------------------------
"Who wants to fix his mind on the unity of God and man, or the nothingness
        of this life?  Who wants to be arrested in the daily manifestations
        of his life-activity by such meditations as the goodness of a divine
        being or the everlasting fire of hell?"            --Suzuki on Zen Buddhism

 
 
 

Problems compiling 1.2.13 kernel with gcc 2.7.2--PLEASE HELP

Post by Axel Bold » Wed, 31 Jan 1996 04:00:00



Daniel> Everyone, I was having problems compiling the kernel with gcc
Daniel> 2.7.0 (Kernel 1.2.13) by getting Internal Compiler Error 11

http://einstein.et.tudelft.nl/~wolff/sig11/ is for you.

Axel

 
 
 

Problems compiling 1.2.13 kernel with gcc 2.7.2--PLEASE HELP

Post by Torsten Schweige » Thu, 01 Feb 1996 04:00:00


You have to patch linux/include/asm/io.h. I think there is some change
in the way GCC treats assembler code or something. Put the following
file in linux/include/asm/ as io.h (you may want to back up the old
one) and compile.

--- new linux/include/asm/io.h --------------------------------------

#ifndef _ASM_IO_H
#define _ASM_IO_H

/*
 * This file contains the definitions for the x86 IO instructions
 * inb/inw/inl/outb/outw/outl and the "string versions" of the same
 * (insb/insw/insl/outsb/outsw/outsl). You can also use "pausing"
 * versions of the single-IO instructions (inb_p/inw_p/..).
 *
 * This file is not meant to be obfuscating: it's just complicated
 * to (a) handle it all in a way that makes gcc able to optimize it
 * as well as possible and (b) trying to avoid writing the same thing
 * over and over again with slight variations and possibly making a
 * mistake somewhere.
 */

/*
 * Thanks to James van Artsdalen for a better timing-fix than
 * the two short jumps: using outb's to a nonexistent port seems
 * to guarantee better timings even on fast machines.
 *
 * On the other hand, I'd like to be sure of a non-existent port:
 * I feel a bit unsafe about using 0x80 (should be safe, though)
 *
 *              Linus
 */

#ifdef SLOW_IO_BY_JUMPING
#define __SLOW_DOWN_IO __asm__ __volatile__("jmp 1f\n1:\tjmp 1f\n1:")
#else
#define __SLOW_DOWN_IO __asm__ __volatile__("outb %al,$0x80")
#endif

#ifdef REALLY_SLOW_IO
#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
#else
#define SLOW_DOWN_IO __SLOW_DOWN_IO
#endif

/*
 * Talk about misusing macros..
 */

#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), "id" (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), "id" (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) : "id" (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) : "id" (port) ,##i ); SLOW_DOWN_IO; return _v; }

#define __INS(s) \
extern inline void ins##s(unsigned short port, void * addr, unsigned long count) \
{ __asm__ __volatile__ ("cld ; rep ; ins" #s \
: "=D" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); }

#define __OUTS(s) \
extern inline void outs##s(unsigned short port, const void * addr, unsigned long count) \
{ __asm__ __volatile__ ("cld ; rep ; outs" #s \
: "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); }

__IN(b,"b","0" (0))
__IN(w,"w","0" (0))
__IN(l,"")

__OUT(b,"b",char)
__OUT(w,"w",short)
__OUT(l,,int)

__INS(b)
__INS(w)
__INS(l)

__OUTS(b)
__OUTS(w)
__OUTS(l)

/*
 * Note that due to the way __builtin_constant_p() works, you
 *  - can't use it inside a inline function (it will never be true)
 *  - you don't have to worry about side effects within the __builtin..
 */
#define outb(val,port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __outbc((val),(port)) : \
        __outb((val),(port)))

#define inb(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __inbc(port) : \
        __inb(port))

#define outb_p(val,port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __outbc_p((val),(port)) : \
        __outb_p((val),(port)))

#define inb_p(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __inbc_p(port) : \
        __inb_p(port))

#define outw(val,port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __outwc((val),(port)) : \
        __outw((val),(port)))

#define inw(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __inwc(port) : \
        __inw(port))

#define outw_p(val,port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __outwc_p((val),(port)) : \
        __outw_p((val),(port)))

#define inw_p(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __inwc_p(port) : \
        __inw_p(port))

#define outl(val,port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __outlc((val),(port)) : \
        __outl((val),(port)))

#define inl(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __inlc(port) : \
        __inl(port))

#define outl_p(val,port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __outlc_p((val),(port)) : \
        __outl_p((val),(port)))

#define inl_p(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
        __inlc_p(port) : \
        __inl_p(port))

#endif

 
 
 

1. Pls HELP: compiling 1.2.13 kernel will gcc 2.7.2

Hi,

I've done this before, with gcc 2.6.3 - NO PROBLEMS.

A while back I upgraded gcc to 2.7.2. Now I need to
re-compile the kernel to enable support for ethernet
adapters that I just bought.

When I do the make zImage I get the following when
compiling main.c:

gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2
-fomit-f
rame-pointer -pipe -m486  -c -o init/main.o init/main.c
/usr/src/linux/include/asm/io.h: In function `copro_timeout':
/usr/src/linux/include/asm/io.h:82: inconsistent operand constraints in
an `asm'
/usr/src/linux/include/asm/io.h:82: inconsistent operand constraints in
an `asm'
/usr/src/linux/include/asm/io.h:82: inconsistent operand constraints in
an `asm'
/usr/src/linux/include/asm/io.h:82: inconsistent operand constraints in
an `asm'
/usr/src/linux/include/asm/io.h: In function `check_fpu':
/usr/src/linux/include/asm/io.h:78: inconsistent operand constraints in
an `asm'
/usr/src/linux/include/asm/io.h:82: inconsistent operand constraints in
an `asm'
/usr/src/linux/include/asm/io.h:78: inconsistent operand constraints in
an `asm'
/usr/src/linux/include/asm/io.h:82: inconsistent operand constraints in
an `asm'
make: *** [init/main.o] Error 1

Anyone know how to fix this asm thing?

Thanks,
Zoran.

2. automatic dial up and routing

3. Problem compiling 1.2.13 kernel w/gcc 2.7.2

4. Update from 4.1.4 to 4.2.1

5. Link Error Compiling Kernel 1.2.13 - Please Help!

6. newbie question - freebsd and nt4

7. Compiling 1.2.13 kernel with RedHat 3.0.3/gcc 2.7.2

8. rage 128 redhat 6.1 professional

9. SOLVED: 1.2.13 kernel w/GCC 2.7.0 compile

10. Kernel 1.2.13 and gcc 2.7.0 wont compile

11. 1.2.13 compile problems please help!

12. Compiling kernel 1.2.13 under ELF GCC

13. Compiling linux 1.2.13 kernel with gcc 2.7.2