Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 51546 - Usermode 2.6.4-uml1-r0: SMP support broken
Summary: Usermode 2.6.4-uml1-r0: SMP support broken
Status: RESOLVED DUPLICATE of bug 49277
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-05-20 02:53 UTC by Elton Algera
Modified: 2005-07-17 13:06 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Elton Algera 2004-05-20 02:53:24 UTC
When including SMP support in the Usermode 2.6.4-uml1-r0 kernel, compile fails.
In /usr/src/linux-2.6.4-uml1-r0/include/linux/spinlock.h a conditional include of <asm/spinlock.h> is done :

#ifdef CONFIG_SMP
#include <asm/spinlock.h>
.....

The asm/spinlock.h file does not exist in the tree.

Reproducible: Always
Steps to Reproduce:
1. make ARCH=um menuconfig
2. In menuconfig, include SMP support
3. make ARCH=um

Actual Results:  
Give loads of errors, including the message: <asm/spinlock.h>: no such file or
directory.

Expected Results:  
compile the kernel
Comment 1 Tim Yamin (RETIRED) gentoo-dev 2004-06-20 13:03:25 UTC
Do you still get this issue with usermode-sources-2.6.6-r1?
Comment 2 John Herdy 2004-06-23 03:28:22 UTC
Still doesn't work with usermode-sources-2.6.6-r1 and Highmem doesn't work either.
Also note that if I disable Tracing thread support, Enable kernel debugging symbols or Enable ptrace proxy I'm not able to build the kernel.


When Symmetric multi-processing support is enabled;

In file included from include/linux/fs.h:21,
                 from include/linux/proc_fs.h:6,
                 from init/main.c:17:
include/linux/kobject.h: At top level:
include/linux/kobject.h:143: error: field `rwsem' has incomplete type
In file included from include/linux/fs.h:286,
                 from include/linux/proc_fs.h:6,
                 from init/main.c:17:
include/linux/quota.h:48: error: syntax error before "dq_list_lock"
include/linux/quota.h:48: warning: type defaults to `int' in declaration of `dq_list_lock'
include/linux/quota.h:48: warning: data definition has no type or storage class
include/linux/quota.h:49: error: syntax error before "dq_data_lock"
include/linux/quota.h:49: warning: type defaults to `int' in declaration of `dq_data_lock'
include/linux/quota.h:49: warning: data definition has no type or storage class
In file included from include/linux/fs.h:286,
                 from include/linux/proc_fs.h:6,
                 from init/main.c:17:
include/linux/quota.h:218: error: field `dq_wait_unused' has incomplete type
include/linux/quota.h:286: error: field `dqptr_sem' has incomplete type
In file included from include/linux/proc_fs.h:6,
                 from init/main.c:17:
include/linux/fs.h:328: error: syntax error before "spinlock_t"
include/linux/fs.h:328: warning: no semicolon at end of struct or union
include/linux/fs.h:336: error: conflicting types for `flags'
include/linux/signal.h:17: error: previous declaration of `flags'
include/linux/fs.h:338: error: syntax error before "private_lock"
include/linux/fs.h:338: warning: type defaults to `int' in declaration of `private_lock'
include/linux/fs.h:338: warning: data definition has no type or storage class
include/linux/fs.h:341: error: syntax error before '}' token
include/linux/fs.h: In function `mapping_mapped':
include/linux/fs.h:382: error: dereferencing pointer to incomplete type
include/linux/fs.h:383: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `mapping_writably_mapped':
include/linux/fs.h:394: error: dereferencing pointer to incomplete type
include/linux/fs.h: At top level:
include/linux/fs.h:428: error: syntax error before "spinlock_t"
include/linux/fs.h:428: warning: no semicolon at end of struct or union
include/linux/fs.h:465: error: syntax error before '}' token
include/linux/fs.h: In function `i_size_read':
include/linux/fs.h:484: error: dereferencing pointer to incomplete type
include/linux/fs.h:485: error: dereferencing pointer to incomplete type
include/linux/fs.h:486: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `i_size_write':
include/linux/fs.h:504: error: dereferencing pointer to incomplete type
include/linux/fs.h:505: error: dereferencing pointer to incomplete type
include/linux/fs.h:506: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `iminor':
include/linux/fs.h:518: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `imajor':
include/linux/fs.h:523: error: dereferencing pointer to incomplete type
include/linux/fs.h: At top level:
include/linux/fs.h:529: error: syntax error before "rwlock_t"
include/linux/fs.h:529: warning: no semicolon at end of struct or union
include/linux/fs.h:534: error: syntax error before '}' token
include/linux/fs.h:562: error: field `f_owner' has incomplete type
include/linux/fs.h:576: error: syntax error before "spinlock_t"
include/linux/fs.h:576: warning: no semicolon at end of struct or union
include/linux/fs.h:579: error: syntax error before '}' token
include/linux/fs.h:580: error: syntax error before "files_lock"
include/linux/fs.h:580: warning: type defaults to `int' in declaration of `files_lock'
include/linux/fs.h:580: warning: data definition has no type or storage class
In file included from include/linux/proc_fs.h:6,
                 from init/main.c:17:
include/linux/fs.h:627: error: field `fl_wait' has incomplete type
In file included from include/linux/proc_fs.h:6,
                 from init/main.c:17:
include/linux/fs.h:716: error: syntax error before "sb_lock"
include/linux/fs.h:716: warning: type defaults to `int' in declaration of `sb_lock'
include/linux/fs.h:716: warning: data definition has no type or storage class
include/linux/fs.h:736: error: field `s_umount' has incomplete type
include/linux/fs.h:754: error: field `s_wait_unfrozen' has incomplete type
include/linux/fs.h: In function `touch_atime':
include/linux/fs.h:972: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `file_accessed':
include/linux/fs.h:977: error: dereferencing pointer to incomplete type
include/linux/fs.h:977: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `locks_verify_locked':
include/linux/fs.h:1153: error: dereferencing pointer to incomplete type
include/linux/fs.h:1153: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `locks_verify_area':
include/linux/fs.h:1162: error: dereferencing pointer to incomplete type
include/linux/fs.h:1162: error: dereferencing pointer to incomplete type
include/linux/fs.h:1162: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `locks_verify_truncate':
include/linux/fs.h:1171: error: dereferencing pointer to incomplete type
include/linux/fs.h:1171: error: dereferencing pointer to incomplete type
include/linux/fs.h:1171: error: dereferencing pointer to incomplete type
include/linux/fs.h:1174: error: dereferencing pointer to incomplete type
include/linux/fs.h:1174: error: dereferencing pointer to incomplete type
include/linux/fs.h:1175: error: dereferencing pointer to incomplete type
include/linux/fs.h:1175: error: dereferencing pointer to incomplete type
include/linux/fs.h:1176: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `break_lease':
include/linux/fs.h:1183: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `invalidate_remote_inode':
include/linux/fs.h:1285: error: dereferencing pointer to incomplete type
include/linux/fs.h:1285: error: dereferencing pointer to incomplete type
include/linux/fs.h:1286: error: dereferencing pointer to incomplete type
include/linux/fs.h:1287: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `put_write_access':
include/linux/fs.h:1310: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `allow_write_access':
include/linux/fs.h:1315: error: dereferencing pointer to incomplete type
In file included from include/linux/proc_fs.h:6,
                 from init/main.c:17:
include/linux/fs.h: In function `iget':
include/linux/fs.h:1353: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `insert_inode_hash':
include/linux/fs.h:1370: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `do_generic_file_read':
include/linux/fs.h:1420: error: dereferencing pointer to incomplete type
include/linux/fs.h:1421: error: dereferencing pointer to incomplete type
include/linux/fs.h: In function `parent_ino':
include/linux/fs.h:1518: error: dereferencing pointer to incomplete type
include/linux/fs.h:1519: error: dereferencing pointer to incomplete type
include/linux/fs.h:1520: error: dereferencing pointer to incomplete type
In file included from init/main.c:17:
include/linux/proc_fs.h: At top level:
include/linux/proc_fs.h:245: error: field `vfs_inode' has incomplete type
include/linux/proc_fs.h: In function `PROC_I':
include/linux/proc_fs.h:250: warning: type defaults to `int' in declaration of `__mptr'
include/linux/proc_fs.h:250: warning: initialization from incompatible pointer type
In file included from init/main.c:27:
include/linux/smp_lock.h: At top level:
include/linux/smp_lock.h:10: error: syntax error before "kernel_flag"
include/linux/smp_lock.h:10: warning: type defaults to `int' in declaration of `kernel_flag'
include/linux/smp_lock.h:10: warning: data definition has no type or storage class
include/linux/smp_lock.h: In function `release_kernel_lock':
include/linux/smp_lock.h:22: error: dereferencing pointer to incomplete type
include/linux/smp_lock.h: In function `reacquire_kernel_lock':
include/linux/smp_lock.h:31: error: dereferencing pointer to incomplete type
include/linux/smp_lock.h: In function `lock_kernel':
include/linux/smp_lock.h:44: error: dereferencing pointer to incomplete type
include/linux/smp_lock.h:47: error: dereferencing pointer to incomplete type
include/linux/smp_lock.h: In function `unlock_kernel':
include/linux/smp_lock.h:52: error: dereferencing pointer to incomplete type
include/linux/smp_lock.h:53: error: dereferencing pointer to incomplete type
In file included from init/main.c:31:
include/linux/tty.h: At top level:
include/linux/tty.h:264: error: field `write_wait' has incomplete type
include/linux/tty.h:265: error: field `read_wait' has incomplete type
include/linux/tty.h:294: error: syntax error before "spinlock_t"
include/linux/tty.h:294: warning: no semicolon at end of struct or union
include/linux/tty.h:297: error: syntax error before '}' token
include/linux/tty.h: In function `tty_devnum':
include/linux/tty.h:395: error: dereferencing pointer to incomplete type
include/linux/tty.h:395: error: dereferencing pointer to incomplete type
include/linux/tty.h:395: error: dereferencing pointer to incomplete type
In file included from include/linux/security.h:31,
                 from init/main.c:35:
include/linux/shm.h: At top level:
include/linux/shm.h:77: error: field `shm_perm' has incomplete type
In file included from include/linux/security.h:32,
                 from init/main.c:35:
include/linux/msg.h:79: error: field `q_perm' has incomplete type
In file included from include/linux/skbuff.h:26,
                 from include/linux/security.h:34,
                 from init/main.c:35:
include/linux/mm.h: In function `do_mmap':
include/linux/mm.h:567: error: dereferencing pointer to incomplete type
include/linux/mm.h: In function `__vma_unlink':
include/linux/mm.h:582: error: dereferencing pointer to incomplete type
include/linux/mm.h:583: error: dereferencing pointer to incomplete type
include/linux/mm.h:584: error: dereferencing pointer to incomplete type
In file included from include/linux/skbuff.h:29,
                 from include/linux/security.h:34,
                 from init/main.c:35:
include/linux/net.h: At top level:
include/linux/net.h:83: error: field `wait' has incomplete type
In file included from include/linux/security.h:34,
                 from init/main.c:35:
include/linux/skbuff.h:122: error: syntax error before "spinlock_t"
include/linux/skbuff.h:122: warning: no semicolon at end of struct or union
include/linux/skbuff.h: In function `skb_queue_empty':
include/linux/skbuff.h:316: error: dereferencing pointer to incomplete type
include/linux/skbuff.h: In function `skb_queue_len':
include/linux/skbuff.h:487: error: dereferencing pointer to incomplete type
include/linux/skbuff.h: In function `skb_queue_head_init':
include/linux/skbuff.h:492: error: dereferencing pointer to incomplete type
include/linux/skbuff.h:493: error: dereferencing pointer to incomplete type
include/linux/skbuff.h:493: error: dereferencing pointer to incomplete type
include/linux/skbuff.h:494: error: dereferencing pointer to incomplete type
include/linux/skbuff.h: In function `__skb_queue_head':
include/linux/skbuff.h:521: error: dereferencing pointer to incomplete type
include/linux/skbuff.h: In function `__skb_queue_tail':
include/linux/skbuff.h:546: error: dereferencing pointer to incomplete type
include/linux/skbuff.h: In function `__skb_dequeue':
include/linux/skbuff.h:574: error: dereferencing pointer to incomplete type
include/linux/skbuff.h: In function `__skb_insert':
include/linux/skbuff.h:596: error: dereferencing pointer to incomplete type
include/linux/skbuff.h: In function `__skb_unlink':
include/linux/skbuff.h:617: error: dereferencing pointer to incomplete type
In file included from init/main.c:35:
include/linux/security.h: In function `cap_netlink_send':
include/linux/security.h:58: error: dereferencing pointer to incomplete type
In file included from init/main.c:41:
include/linux/writeback.h: At top level:
include/linux/writeback.h:9: error: syntax error before "inode_lock"
include/linux/writeback.h:9: warning: type defaults to `int' in declaration of `inode_lock'
include/linux/writeback.h:9: warning: data definition has no type or storage class
include/linux/writeback.h: In function `current_is_pdflush':
include/linux/writeback.h:19: error: dereferencing pointer to incomplete type
include/linux/writeback.h: In function `wait_on_inode':
include/linux/writeback.h:67: error: dereferencing pointer to incomplete type
init/main.c: At top level:
include/linux/aio.h:135: error: storage size of `ring_info' isn't known
include/linux/sched.h:233: error: storage size of `default_kioctx' isn't known
include/linux/sched.h:343: error: storage size of `it_timer' isn't known
include/linux/fs.h:430: error: storage size of `i_alloc_sem' isn't known
include/linux/fs.h:436: error: storage size of `i_data' isn't known
make[1]: *** [init/main.o] Error 1
make: *** [init] Error 2



When Highmem support is enabled;

  CC      net/ipv4/devinet.o
  CC      net/ipv4/af_inet.o
  CC      net/ipv4/igmp.o
  CC      net/ipv4/sysctl_net_ipv4.o
  CC      net/ipv4/fib_frontend.o
  CC      net/ipv4/fib_semantics.o
  CC      net/ipv4/fib_hash.o
  CC      net/ipv4/proc.o
  LD      net/ipv4/built-in.o
  CC      net/netlink/af_netlink.o
  LD      net/netlink/built-in.o
  CC      net/packet/af_packet.o
  LD      net/packet/built-in.o
  CC      net/sched/sch_generic.o
  LD      net/sched/built-in.o
  CC      net/unix/af_unix.o
  CC      net/unix/garbage.o
  CC      net/unix/sysctl_net_unix.o
  LD      net/unix/unix.o
  LD      net/unix/built-in.o
  CC      net/sysctl_net.o
  LD      net/built-in.o
  CC      lib/kref.o
  LD      lib/built-in.o
  CC      lib/bitmap.o
  CC      lib/bust_spinlocks.o
  CC      lib/cmdline.o
  CC      lib/ctype.o
  CC      lib/dec_and_lock.o
  CC      lib/div64.o
  CC      lib/dump_stack.o
  CC      lib/errno.o
  CC      lib/extable.o
  CC      lib/idr.o
  CC      lib/int_sqrt.o
  CC      lib/kobject.o
  CC      lib/parser.o
  CC      lib/radix-tree.o
  CC      lib/rbtree.o
  CC      lib/rwsem-spinlock.o
  CC      lib/string.o
  CC      lib/vsprintf.o
  AR      lib/lib.a
  GEN     .version
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
  KSYM    .tmp_kallsyms1.S
  AS      .tmp_kallsyms1.o
  LD      .tmp_vmlinux2
  KSYM    .tmp_kallsyms2.S
  AS      .tmp_kallsyms2.o
  MAIN    arch/um/main.o
  LD      vmlinux
make[1]: `arch/um/dyn.lds.s' is up to date.
gcc -Wl,-T,arch/um/dyn.lds.s -Wl,-rpath,/lib  -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc \
        -o linux arch/um/main.o vmlinux -L/usr/lib -lutil
vmlinux(.text+0x49cb): In function `mem_init':
arch/um/kernel/mem.c:71: undefined reference to `phys_page'
vmlinux(.text+0xab0e): In function `sig_handler':
arch/um/kernel/trap_user.c:101: undefined reference to `sig_handler_common_tt'
vmlinux(.text+0xab5e): In function `alarm_handler':
arch/um/kernel/trap_user.c:114: undefined reference to `sig_handler_common_tt'
vmlinux(.text+0xaae2): In function `usr2_handler':
arch/um/kernel/trap_user.c:74: undefined reference to `syscall_handler_tt'
vmlinux(.text+0xb3f7): In function `not_dead_yet':
arch/um/kernel/umid.c:191: undefined reference to `tracing_pid'
vmlinux(.text+0x16f95): In function `register_winch':
arch/um/drivers/chan_user.c:193: undefined reference to `is_tracer_winch'
vmlinux(.init.text+0x23b6): In function `kmap_init':
include/asm/pgtable.h:394: undefined reference to `pte_offset'
collect2: ld returned 1 exit status
make: *** [linux] Error 1

Comment 3 Daniel Drake (RETIRED) gentoo-dev 2004-08-21 14:56:09 UTC
It seems there are quite a few compilation issues with this patchset, unfortunately they appear to be upstream issues. Making bug 49277 the place to monitor any progress. FYI, the new UML 2.6.7-2 patch still fails to compile with SMP support.

*** This bug has been marked as a duplicate of 49277 ***