Bug#216921: Can't compile programs, using kernel headers from experimental libc6-dev
Package: libc6-dev
Version: 2.3.2.ds1-5
Severity: normal
If program, that I'm trying to compile is using kernel headers (such as
linux/fb.h, linux/videodev.h, etc.), compilation fails
(using gcc-3.3 version 1:3.3.2-1):
Two example programs:
1)
---Cut---
#include <linux/fb.h>
int main()
{
return 0;
}
---Cut---
Compiler log:
$gcc -c linux-fb.c
In file included from /usr/include/linux/timer.h:5,
from /usr/include/linux/workqueue.h:8,
from /usr/include/linux/fb.h:5,
from linux-fb.c:1:
/usr/include/linux/list.h:563:2: warning: #warning "don't include kernel headers in userspace"
In file included from /usr/include/linux/workqueue.h:8,
from /usr/include/linux/fb.h:5,
from linux-fb.c:1:
/usr/include/linux/timer.h:12: error: field `entry' has incomplete type
In file included from /usr/include/linux/fb.h:5,
from linux-fb.c:1:
/usr/include/linux/workqueue.h:15: error: field `entry' has incomplete type
In file included from linux-fb.c:1:
/usr/include/linux/fb.h:342: error: parse error before '*' token
/usr/include/linux/fb.h:346: error: parse error before '}' token
2)
---Cut---
#include <linux/videodev.h>
int main()
{
return 0;
}
---Cut---
Compiler log:
$gcc -c linux-videodev.c
In file included from /usr/include/linux/device.h:17,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/list.h:563:2: warning: #warning "don't include kernel headers in userspace"
In file included from /usr/include/linux/sched.h:12,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/jiffies.h:16: error: parse error before "jiffies_64"
/usr/include/linux/jiffies.h:20: error: parse error before "get_jiffies_64"
In file included from /usr/include/linux/cpumask.h:8,
from /usr/include/linux/sched.h:15,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/bitmap.h: In function `bitmap_empty':
/usr/include/linux/bitmap.h:15: error: `BITS_PER_LONG' undeclared (first use in this function)
/usr/include/linux/bitmap.h:15: error: (Each undeclared identifier is reported only once
/usr/include/linux/bitmap.h:15: error: for each function it appears in.)
/usr/include/linux/bitmap.h: In function `bitmap_full':
/usr/include/linux/bitmap.h:29: error: `BITS_PER_LONG' undeclared (first use in this function)
/usr/include/linux/bitmap.h: In function `bitmap_equal':
/usr/include/linux/bitmap.h:44: error: `BITS_PER_LONG' undeclared (first use in this function)
/usr/include/linux/bitmap.h: In function `bitmap_shift_right':
/usr/include/linux/bitmap.h:85: error: `__shr_tmp' undeclared (first use in this function)
/usr/include/linux/bitmap.h: In function `bitmap_shift_left':
/usr/include/linux/bitmap.h:98: error: `__shl_tmp' undeclared (first use in this function)
/usr/include/linux/bitmap.h: In function `bitmap_weight':
/usr/include/linux/bitmap.h:144: error: `BITS_PER_LONG' undeclared (first use in this function)
In file included from /usr/include/linux/sched.h:15,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/cpumask.h: At top level:
/usr/include/linux/cpumask.h:15: error: variable-size type declared outside of any function
In file included from /usr/include/linux/sched.h:15,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/cpumask.h: In function `next_online_cpu':
/usr/include/linux/cpumask.h:56: error: structure has no member named `val'
In file included from /usr/include/linux/sched.h:21,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/asm/mmu.h: At top level:
/usr/include/asm/mmu.h:13: error: field `sem' has incomplete type
In file included from /usr/include/asm/smp.h:16,
from /usr/include/linux/smp.h:17,
from /usr/include/linux/sched.h:23,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/asm/fixmap.h:72: error: `FIX_ACPI_PAGES' undeclared here (not in a function)
/usr/include/asm/fixmap.h:72: error: enumerator value for `FIX_ACPI_END' not integer constant
/usr/include/asm/fixmap.h:84: error: parse error before "pgprot_t"
In file included from /usr/include/asm/smp.h:18,
from /usr/include/linux/smp.h:17,
from /usr/include/linux/sched.h:23,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/asm/mpspec.h:6:25: mach_mpspec.h: No such file or directory
In file included from /usr/include/asm/smp.h:18,
from /usr/include/linux/smp.h:17,
from /usr/include/linux/sched.h:23,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/asm/mpspec.h:8: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/usr/include/asm/mpspec.h:9: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/usr/include/asm/mpspec.h:10: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/usr/include/asm/mpspec.h:12: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/usr/include/asm/mpspec.h:19: error: `MAX_APICS' undeclared here (not in a function)
/usr/include/asm/mpspec.h:20: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/usr/include/asm/mpspec.h:20: error: conflicting types for `mp_bus_id_to_type'
/usr/include/asm/mpspec.h:8: error: previous declaration of `mp_bus_id_to_type'
/usr/include/asm/mpspec.h:22: error: `MAX_IRQ_SOURCES' undeclared here (not in a function)
/usr/include/asm/mpspec.h:24: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/usr/include/asm/mpspec.h:24: error: conflicting types for `mp_bus_id_to_pci_bus'
/usr/include/asm/mpspec.h:12: error: previous declaration of `mp_bus_id_to_pci_bus'
/usr/include/asm/mpspec.h:35: error: parse error before "id"
/usr/include/asm/mpspec.h:36: error: parse error before "address"
/usr/include/asm/mpspec.h:37: error: parse error before "id"
/usr/include/asm/mpspec.h:38: error: parse error before "bus_irq"
/usr/include/asm/mpspec.h:54: error: `MAX_APICS' undeclared here (not in a function)
/usr/include/asm/mpspec.h:54: error: variable-size type declared outside of any function
In file included from /usr/include/asm/smp.h:20,
from /usr/include/linux/smp.h:17,
from /usr/include/linux/sched.h:23,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/asm/io_apic.h:26: error: parse error before "u32"
/usr/include/asm/io_apic.h:28: error: parse error before "u32"
/usr/include/asm/io_apic.h:34: error: parse error before '}' token
/usr/include/asm/io_apic.h:37: error: parse error before "u32"
/usr/include/asm/io_apic.h:39: error: parse error before "u32"
/usr/include/asm/io_apic.h:45: error: parse error before '}' token
/usr/include/asm/io_apic.h:48: error: parse error before "u32"
/usr/include/asm/io_apic.h:50: error: parse error before "u32"
/usr/include/asm/io_apic.h:54: error: parse error before '}' token
/usr/include/asm/io_apic.h:57: error: parse error before "u32"
/usr/include/asm/io_apic.h:59: error: parse error before "u32"
/usr/include/asm/io_apic.h:62: error: parse error before '}' token
/usr/include/asm/io_apic.h:120: error: `MAX_IRQ_SOURCES' undeclared here (not in a function)
/usr/include/asm/io_apic.h:120: error: conflicting types for `mp_irqs'
/usr/include/asm/mpspec.h:22: error: previous declaration of `mp_irqs'
In file included from /usr/include/linux/smp.h:17,
from /usr/include/linux/sched.h:23,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/asm/smp.h:74:26: mach_apicdef.h: No such file or directory
In file included from /usr/include/asm/siginfo.h:4,
from /usr/include/linux/signal.h:7,
from /usr/include/linux/sched.h:25,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/asm-generic/siginfo.h:53: error: size of array `_pad' is too large
In file included from /usr/include/linux/sched.h:29,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/completion.h:15: error: parse error before "wait_queue_head_t"
/usr/include/linux/completion.h: In function `init_completion':
/usr/include/linux/completion.h:26: error: dereferencing pointer to incomplete type
/usr/include/linux/completion.h:27: error: dereferencing pointer to incomplete type
In file included from /usr/include/linux/sched.h:30,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/pid.h: At top level:
/usr/include/linux/pid.h:18: error: field `task_list' has incomplete type
/usr/include/linux/pid.h:19: error: field `hash_chain' has incomplete type
/usr/include/linux/pid.h:24: error: field `pid_chain' has incomplete type
In file included from /usr/include/linux/sched.h:102,
from /usr/include/linux/module.h:10,
from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/timer.h:12: error: field `entry' has incomplete type
In file included from /usr/include/linux/device.h:21,
from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/module.h:190: error: field `list' has incomplete type
In file included from /usr/include/linux/videodev.h:6,
from linux-videodev.c:1:
/usr/include/linux/device.h:53: error: field `subsys' has incomplete type
/usr/include/linux/device.h:54: error: field `drivers' has incomplete type
/usr/include/linux/device.h:55: error: field `devices' has incomplete type
/usr/include/linux/device.h:61: error: parse error before "u32"
/usr/include/linux/device.h:87: error: field `attr' has incomplete type
/usr/include/linux/device.h:106: error: field `unload_sem' has incomplete type
/usr/include/linux/device.h:107: error: field `kobj' has incomplete type
/usr/include/linux/device.h:108: error: field `devices' has incomplete type
/usr/include/linux/device.h:113: error: parse error before "u32"
/usr/include/linux/device.h:114: error: parse error before "u32"
/usr/include/linux/device.h:128: error: field `attr' has incomplete type
/usr/include/linux/device.h:150: error: field `subsys' has incomplete type
/usr/include/linux/device.h:151: error: field `children' has incomplete type
/usr/include/linux/device.h:152: error: field `interfaces' has incomplete type
/usr/include/linux/device.h:168: error: field `attr' has incomplete type
/usr/include/linux/device.h:185: error: field `node' has incomplete type
/usr/include/linux/device.h:187: error: field `kobj' has incomplete type
/usr/include/linux/device.h:192: error: `KOBJ_NAME_LEN' undeclared here (not in a function)
/usr/include/linux/device.h:220: error: field `attr' has incomplete type
/usr/include/linux/device.h:239: error: field `node' has incomplete type
/usr/include/linux/device.h:251: error: field `node' has incomplete type
/usr/include/linux/device.h:252: error: field `bus_list' has incomplete type
/usr/include/linux/device.h:253: error: field `driver_list' has incomplete type
/usr/include/linux/device.h:254: error: field `children' has incomplete type
/usr/include/linux/device.h:257: error: field `kobj' has incomplete type
/usr/include/linux/device.h:258: error: `KOBJ_NAME_LEN' undeclared here (not in a function)
/usr/include/linux/device.h:266: error: field `power' has incomplete type
/usr/include/linux/device.h:267: error: parse error before "u32"
/usr/include/linux/device.h:273: error: parse error before "detach_state"
/usr/include/linux/device.h:276: error: parse error before '*' token
/usr/include/linux/device.h:279: error: parse error before '}' token
/usr/include/linux/device.h: In function `list_to_dev':
/usr/include/linux/device.h:284: error: parse error before "struct"
/usr/include/linux/device.h: In function `dev_get_drvdata':
/usr/include/linux/device.h:290: error: dereferencing pointer to incomplete type
/usr/include/linux/device.h: In function `dev_set_drvdata':
/usr/include/linux/device.h:296: error: dereferencing pointer to incomplete type
/usr/include/linux/device.h: At top level:
/usr/include/linux/device.h:322: error: field `attr' has incomplete type
/usr/include/linux/device.h:361: error: parse error before "u32"
/usr/include/linux/device.h:363: error: parse error before "num_resources"
/usr/include/linux/device.h:365: error: parse error before '}' token
/usr/include/linux/device.h:362: error: storage size of `dev' isn't known
--
With best wishes
Dmitry Baryshkov
-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux baboon 2.4.22-4baboon #1 Втр Авг 26 15:58:47 MSD 2003 i486
Locale: LANG=ru_RU.KOI8-R, LC_CTYPE=ru_RU.KOI8-R
Versions of packages libc6-dev depends on:
ii libc6 2.3.2.ds1-5 GNU C Library: Shared libraries an
-- no debconf information
Reply to: