Compilation fixes in the 2.5.44
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
@@ -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
@@ -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
@@ -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 ;
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_hookis in the headerasm/apic.hand it is as:extern void
do_timer_interrupt_hook...Then I add #include of
asm/apic.hThe 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 oncenet/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
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