signal 6 while compiling

Mark Davies mdavies@ibm.net
Sat Apr 4 14:20:00 GMT 1998


While compiling linux 2.1.9[12] with egcs980328 (cvs) I got a signal 6
when compiling
3c503.c. I've stripped the source as much as I can and replicated it
below.

I also get the same problem while compiling regex on glibc2


Mark.





#include <linux/netdevice.h>
#include <linux/etherdevice.h>

// comment this out and it compiles ?
#include <asm/io.h>

#include "8390.h"
#include "3c503.h"


// gives error - function type not a prototype
static void
el2_block_input( );

void dummy();

static void
el2_block_input( )
{

    int count;
    int ring_offset;
    struct sk_buff *skb;
    unsigned short int *buf;
    struct device *dev;

// removing these variables and changing the memcpy below compiles ok.
    int end_of_ring = dev->rmem_end;
    int semi_count = end_of_ring - (dev->mem_start + ring_offset);

// comment this out and it compiles - with or without changing the lines
// above
    memcpy_fromio(skb->data, dev->mem_start + ring_offset, semi_count);

// comment this out and it compiles
    outb_p((ei_status.interface_num == 0 ? ECNTRL_THIN : ECNTRL_AUI) |
ECNTRL_INPUT
           | ECNTRL_START, E33G_CNTRL);

// comment this out and it compiles
    buf =  (unsigned short int *) skb->data;
// comment this out and it compiles
    count =  (count + 1) >> 1;

// Remove the if and/or the for loop and it compiles ok.
// it doesn't seem to matter whats inside the if or for loop
// except for the insw
    for(;;)
    {
        if(count > 0)
        {
        }
        else
        {
// comment this out and it compiles
            insw(E33G_FIFOH, buf, count);
// changing to this compiles
//            insw(E33G_FIFOH, (short int *)0, count);
// changing to this compiles
//            insw(E33G_FIFOH, buf, 0);
        }
    }
    return;
}



More information about the Gcc mailing list