Skip to contentSkip to conversation

Compilation fixes in the 2.5.44

RFC In review Jan Marek 3 participants 3 messages Oct 25, 2002 Networking

lore
Share & tools
lore

Jan Marek

author
#0 lore raw

RFC 1/1 Compilation fixes in the 2.5.44

Hallo l-k,

I'm beginner in the kernel hacking (or fixing ;-))).

I have small patch, which is fixing some compilation errors (I'm using gcc-2.95.4-17 from Debian sid).

The first chunk fixed this warning:

arch/i386/kernel/irq.c: In function `do_IRQ':
arch/i386/kernel/irq.c:331: warning: unused variable `esp'

I move declaration of variable esp to the #ifdef blok, where it is using...

The second chunk fixed this warning:

In file included from arch/i386/kernel/timers/timer_pit.c:15:
arch/i386/mach-generic/do_timer.h: In function `do_timer_interrupt_hook':
arch/i386/mach-generic/do_timer.h:26: warning: implicit declaration of function `smp_local_timer_interrupt'

I've found, that declaration of function do_timer_interrupt_hook is in the header asm/apic.h and it is as:

extern void do_timer_interrupt_hook...

Then I add #include of asm/apic.h

The third chunk fixed this error:

net/ipv4/raw.c: In function `raw_send_hdrinc':
net/ipv4/raw.c:297: `NF_IP_LOCAL_OUT' undeclared (first use in this function)
net/ipv4/raw.c:297: (Each undeclared identifier is reported only once net/ipv4/raw.c:297: for each function it appears in.)

In this case was missing #include of netfilter_ipv4.h...

Any comments and sugestion is welcome...

Sincerely
Jan Marek

Signature · 4 lines
Ing. Jan Marek
University of South Bohemia
Academic Computer Centre
Phone: +420-38-7772080
arch/i386/kernel/irq.c +1 -1
diff -urN linux-2.5.44/arch/i386/kernel/irq.c linux-2.5.44-new/arch/i386/kernel/irq.c
@@ -328,12 +328,12 @@
 	irq_desc_t *desc = irq_desc + irq;
 	struct irqaction * action;
 	unsigned int status;
-	long esp;
 
 	irq_enter();
 
 #ifdef CONFIG_DEBUG_STACKOVERFLOW
 	/* Debugging check for stack overflow: is there less than 1KB free? */
+	long esp;
 	__asm__ __volatile__("andl %%esp,%0" : "=r" (esp) : "0" (8191));
 	if (unlikely(esp < (sizeof(struct task_struct) + 1024))) {
 		extern void show_stack(unsigned long *);
arch/i386/mach-generic/do_timer.h +2 -0
diff -urN linux-2.5.44/arch/i386/mach-generic/do_timer.h linux-2.5.44-new/arch/i386/mach-generic/do_timer.h
@@ -1,5 +1,7 @@
 /* defines for inline arch setup functions */
 
+#include <asm/apic.h>
+
 /**
  * do_timer_interrupt_hook - hook into timer tick
  * @regs:	standard registers from interrupt
net/ipv4/raw.c +1 -0
diff -urN linux-2.5.44/net/ipv4/raw.c linux-2.5.44-new/net/ipv4/raw.c
@@ -65,6 +65,7 @@
 #include <net/inet_common.h>
 #include <net/checksum.h>
 #include <linux/netfilter.h>
+#include <linux/netfilter_ipv4.h>
 
 struct sock *raw_v4_htable[RAWV4_HTABLE_SIZE];
 rwlock_t raw_v4_lock = RW_LOCK_UNLOCKED;
#1 lore raw
Quoted 7 lines · Jan Marek

Hallo l-k,

I'm beginner in the kernel hacking (or fixing ;-))).

I have small patch, which is fixing some compilation errors (I'm using gcc-2.95.4-17 from Debian sid).

Quoted 7 lines

The first chunk fixed this warning:

arch/i386/kernel/irq.c: In function `do_IRQ':
arch/i386/kernel/irq.c:331: warning: unused variable `esp'

I move declaration of variable esp to the #ifdef blok, where it is using...

        unsigned int status;

- long esp;

        irq_enter();
 #ifdef CONFIG_DEBUG_STACKOVERFLOW
        /* Debugging check for stack overflow: is there less than 1KB free? */

+ long esp;

Most C compilers don't allow you to mix declarations and code. This is allowed only in new C standards. But GCC 3 seems to cope, so it's probably fine for new kernels.

Quoted 16 lines

The second chunk fixed this warning:

In file included from arch/i386/kernel/timers/timer_pit.c:15:
arch/i386/mach-generic/do_timer.h: In function `do_timer_interrupt_hook': arch/i386/mach-generic/do_timer.h:26:
warning: implicit declaration of function `smp_local_timer_interrupt'

I've found, that declaration of function do_timer_interrupt_hook is in the header asm/apic.h and it is as:

extern void do_timer_interrupt_hook...

Then I add #include of asm/apic.h

The third chunk fixed this error:

Quoted 7 lines

net/ipv4/raw.c: In function `raw_send_hdrinc':
net/ipv4/raw.c:297: `NF_IP_LOCAL_OUT' undeclared (first use in this function)
net/ipv4/raw.c:297: (Each undeclared identifier is reported only once net/ipv4/raw.c:297: for each function it appears in.)

In this case was missing #include of netfilter_ipv4.h...

I think #include fixes are best sent to Rusty Trivial Russell.

Rusty Russell <[email protected]> [5 feb 2002]
> Here are some cleanups of whitespace in .....
Want me to add this to the trivial patch collection for tracking? If so just send (or cc:) it to [email protected].

BTW, never misspell his name, he will be very upset.
He is *Russell*. Note which letters are doubled and which are not. ;) --
vda

#2 lore raw
Quoted 26 lines · Denis Vlasenko
Quoted 7 lines · Jan Marek

Hallo l-k,

I'm beginner in the kernel hacking (or fixing ;-))).

I have small patch, which is fixing some compilation errors (I'm using gcc-2.95.4-17 from Debian sid).

Quoted 7 lines

The first chunk fixed this warning:

arch/i386/kernel/irq.c: In function `do_IRQ':
arch/i386/kernel/irq.c:331: warning: unused variable `esp'

I move declaration of variable esp to the #ifdef blok, where it is using...

        unsigned int status;
arch/i386/kernel/irq.c +1 -1
-       long esp;
 
        irq_enter();
 
 #ifdef CONFIG_DEBUG_STACKOVERFLOW
        /* Debugging check for stack overflow: is there less than 1KB free? */
+       long esp;
Quoted 3 lines

Most C compilers don't allow you to mix declarations and code. This is allowed only in new C standards. But GCC 3 seems to cope, so it's probably fine for new kernels.

This fragment must be fixed, look at Documentation/Changes:

"The recommended compiler for the kernel is gcc 2.95.x (x >= 3)"

Best regards.

Signature · 2 lines
Andrey Panin            | Embedded systems software developer
[email protected]        | PGP key: wwwkeys.eu.pgp.net