Balaco Baco | 21 Jun 04:21 2015

[uml-user] Why it doesn't work on Ubuntu 14.04?

I'm remotely accessing an Ubuntu 14.04.2 machine. And now I'm trying to
run an UML in it, but it is always giving me some errors, and it
finishes with segfaults or coredumps.

For example, the end of output is:

=========================
request_module: runaway loop modprobe binfmt-464c
Starting init: /sbin/init exists but couldn't execute it (error -8)
Starting init: /etc/init exists but couldn't execute it (error -13)
request_module: runaway loop modprobe binfmt-464c
Starting init: /bin/sh exists but couldn't execute it (error -8)
Kernel panic - not syncing: No working init found.  Try passing init=
option to kernel. See Linux Documentation/init.txt for guidance.
CPU: 0 PID: 1 Comm: swapper Not tainted 3.13.11-ckt20 #1
Stack:
 69037e90 602e26cd 60260fa9 00000000
 69037e90 601b0c71 60260fa9 00000000
 60260fa9 00000000 69037ea0 60263274
Call Trace:
 [<60260fa9>] ? printk+0x0/0xa0
 [<601b0c71>] ? bust_spinlocks+0x0/0x4f
 [<60260fa9>] ? printk+0x0/0xa0
 [<60260fa9>] ? printk+0x0/0xa0
 [<60263274>] dump_stack+0x2a/0x2c
 [<6026071d>] panic+0x141/0x290
 [<602605dc>] ? panic+0x0/0x290
 [<600b7e82>] ? copy_strings+0x0/0x2b9
 [<600b93ec>] ? do_execve+0x53c/0x5a7
 [<600185ed>] ? try_to_run_init_process+0x0/0x66
(Continue reading)

Toralf Förster | 31 May 19:13 2015
Picon
Picon

[uml-user] BTRFS : starting an uml using BTRFS gives

I don't get it in moment, at a 64 bit Gentoo Linux (host is Linux t44 4.0.4-hardened-r3) I get :

$ /home/tfoerste/devel/linux/linux earlyprintk ubda=t44uml ubdb=/mnt/ramdisk/t44uml_swap
eth0=tuntap,tap0,72:ef:3d:b6:67:0c,192.168.1.254 mem=2000M con0=fd:0,fd:1 con=pts
umid=uml_t44uml softlockup_all_cpu_backtrace=1
Core dump limits :
        soft - 0
        hard - NONE
Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...OK
Checking advanced syscall emulation patch for ptrace...OK
Checking environment variables for a tempdir...none found
Checking if /dev/shm is on tmpfs...OK
Checking PROT_EXEC mmap in /dev/shm...OK
bootconsole [earlycon0] enabled
PID hash table entries: 4096 (order: 3, 32768 bytes)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Memory: 2009296K/2048000K available (3008K kernel code, 673K rwdata, 892K rodata, 113K init, 173K bss,
38704K reserved, 0K cma-reserved)
NR_IRQS:15
clocksource itimer: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
Calibrating delay loop... 5746.68 BogoMIPS (lpj=28733440)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
Initializing cgroup subsys blkio
Initializing cgroup subsys devices
Initializing cgroup subsys freezer
Checking that host ptys support output SIGIO...Yes
(Continue reading)

kobabo kobabo | 13 Apr 08:42 2015

[uml-user] UML for mips

Hi,

Is it possible to run UML on mips architecture?

Thanks,
Koba <at> <at>
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user
david jhon | 5 Mar 10:21 2015
Picon

[uml-user] Making a module for user-mode-linux and debugging it with gdb

Hi,

I have been doing pretty hard since last few days to set up user-mode-linux in my ubuntu-14.04 LTS host. I am a noob on this and want to debug openvswitch kernel module by using user-mode-linux. Currently I am following these links to up my uml:
    http://www.opensourceforu.com/2010/09/user-mode-linux-setup-and-debug/
    http://www.landley.net/code/UML.html
    https://help.ubuntu.com/community/UserModeLinux

but after I run this command linux-3.13/linux rootfstype=linux-3.13/uml-root-trusty it is Aborted with the following  output:

Core dump limits :
    soft - 0
    hard - NONE
Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...OK
Checking advanced syscall emulation patch for ptrace...OK
Checking for tmpfs mount on /dev/shm.../run/shm...OK
Checking PROT_EXEC mmap in /dev/shm/...OK
Checking for the skas3 patch in the host:
  - /proc/mm...not found: No such file or directory
  - PTRACE_FAULTINFO...not found
  - PTRACE_LDT...not found
UML running in SKAS0 mode
Adding 24801280 bytes to physical memory to account for exec-shield gap
Initialized stdio console driver
Using a channel type which is configured out of UML
setup_one_line failed for device 1 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 2 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 3 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 4 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 5 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 6 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 7 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 8 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 9 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 10 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 11 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 12 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 13 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 14 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 15 : Configuration failed
Console initialized on /dev/tty0
console [tty0] enabled
console [mc-1] enabled
VFS: Cannot open root device "98:0" or unknown-block(98,0): error -19
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(98,0)
CPU: 0 PID: 1 Comm: swapper Not tainted 3.13.0 #1
Stack:
 63037d50 00000002 60238906 00000002
 60238947 60147ad0 601ad287 00008001
 600d8900 63172000 63037d60 601af835
Call Trace:
 [<60147ad0>] ? bust_spinlocks+0x0/0x60
 [<601ad287>] ? printk+0x0/0xa0
 [<600d8900>] ? SyS_mount+0x0/0x110
 [<601af835>] dump_stack+0x2a/0x2c
 [<601ac99c>] panic+0x137/0x286
 [<601ac865>] ? panic+0x0/0x286
 [<60024ac0>] ? unblock_signals+0x0/0xb0
 [<600d89e8>] ? SyS_mount+0xe8/0x110
 [<601ad287>] ? printk+0x0/0xa0
 [<600d8900>] ? SyS_mount+0x0/0x110
 [<6000211b>] mount_root+0x0/0x82
 [<60015290>] ? do_one_initcall+0x0/0x190
 [<60015290>] ? do_one_initcall+0x0/0x190
 [<601429d0>] ? strcpy+0x0/0x30
 [<60002199>] mount_root+0x7e/0x82
 [<6000211b>] ? mount_root+0x0/0x82
 [<60142ab0>] ? strncmp+0x0/0x60
 [<60002380>] prepare_namespace+0x1e3/0x22b
 [<60024ac0>] ? unblock_signals+0x0/0xb0
 [<600d3f60>] ? SyS_dup+0x0/0x70
 [<60015290>] ? do_one_initcall+0x0/0x190
 [<60001c8b>] kernel_init_freeable+0x27c/0x297
 [<600011b7>] ? repair_env_string+0x0/0xbd
 [<6005325d>] ? finish_task_switch.isra.71+0x2d/0x80
 [<601ac1f5>] kernel_init+0x15/0x1b0
 [<60016d61>] new_thread_handler+0x81/0xb0

Aborted (core dumped)

Secondly. I did also install user-mode-linux and other relavant utilities with apt-get and when I run linux rootfstype=hostfs rw init=/bin/bash it works but I am not understanding how to compile my required module and debug it in this scenario.

I'll be really grateful for your help to get it fixed or your suggestions. Thank you in advance!

kind Regards;
david

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user
Julien Iguchi-Cartigny | 10 Feb 15:53 2015
Picon
Picon

[uml-user] start a xterm on con1 fails

Hello,

I'm maintaining Netkit-NG, a set of scripts to boot and configure small
networks using UML machines for teaching purposes.

<https://netkit-ng.github.io/>

This set of scripts is based on Netkit

<http://www.netkit.org/>

which was using kernel from Debian Lenny. Starting UML with con1=xterm
was working at this time. But now, using the same configuration to boot
Debian Wheezy UML kernel with a xterm on con1 fails.

So far I'm stuck with the following command lines.

This one works (starts a xterm with UML):

xterm -e /home/kartoch/works/netkit/netkit-ng/kernel/netkit-kernel
modules=/home/kartoch/works/netkit/netkit-ng/kernel/modules name=dummy
title=dummy umid=dummy mem=36M
ubd0=/home/kartoch/tmp/tmp/dummy.disk,/home/kartoch/works/netkit/netkit-ng/fs/netkit-fs
root=98:0 uml_dir=/home/kartoch/.netkit/mconsole hosthome=/home/kartoch
quiet con0=fd:0,fd:1 con1=null SELINUX_INIT=0

But if I want to start UML with a second xterm on the con1, i.e.
replacing con1= null by con1=xterm in the commad line, no second xterm
is started. This was the expected behavior in the original netkit (and
it worked).

I'm looking for help, especially about how to debug this problem (so far
no error messages in messages or dmesg in the host or the UML machine)
and how port-helper works on this case.

I think UML cannot found xterm or port-helper, as if UML is started with
xterm on con0 and con1 it block after display the amount of physical
memory. The command line is:

/home/kartoch/works/netkit/netkit-ng/kernel/netkit-kernel
modules=/home/kartoch/works/netkit/netkit-ng/kernel/modules name=dummy
title=dummy umid=dummy mem=36M
ubd0=/home/kartoch/tmp/tmp/dummy.disk,/home/kartoch/works/netkit/netkit-ng/fs/netkit-fs
root=98:0 uml_dir=/home/kartoch/.netkit/mconsole hosthome=/home/kartoch
quiet con0=xterm con1=xterm

Thanks for your help.

Regards.

Julien

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
Picon

[uml-user] Run 2.6 kernel on 2.4 host

Hi,

I need to run some recent software on a legacy server running 2.4.18 
kernel. Sadly it is not possible to rebuild the sotware to run natively 
with that kernel (our code requires boost, boost requires gcc 4.5+, 
gcc4.5+ doesn't like old glibc and recent glibc doesnt build for 2.4 
kernel).
So I'm trying to run UML 2.6 kernel on 2.4 system. I tried prebuilt 
2.6.27 kernel from (http://uml.devloop.org.uk/kernels.html) but it 
refused to run on 2.4 ("ERROR: kernel too old"). Next, I tried to build 
it on the Debian Woody VM with gcc 2.95 & 3.4 and glibc 2.2 but got 
dozens of errors.
Is it possible to build and run 2.6 on 2.4? What environment is 
required? What are the limitations if any?

Thank you!

--

-- 
Best regards,
Vladimir

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
Eduardo Grosclaude | 24 Oct 04:27 2014
Picon

[uml-user] Simulating network failures

Hello people here, I have joined the list only to ask this question, please bear with me. :) I made myself sure to read JD's book but can't find any deeper technical advice regarding this question there. 

Short version: How do you simulate a network failure in UML?

Long version: I'm a CS teacher trying to setup a very simple Netkit lab to show off Ethernet bonding in action. As you certainly know, Netkit is based on UML.

I can't seem to figure out how to properly go about failure injection in an active-backup (mode 1) bond interface. More generally, what's the proper way to simulate a link drop in UML (so as to - for instance - cause a bond failover)?

My virtual lab is built with three UML nodes, called A, B and S. S has four Ethernet interfaces enslaved into a bridge (to simulate a switch). Node A has two NICs, Node B has only one. B is there only to ping node A. A's eth0 and eth1 are linked by separate collision domains (default for Netkit) to eth0 and eth1 of the virtual switch. B goes to another switch interface. Both A's eth0 and eth1 are bonded into bond0, and eth0 is normally the active one. Ping works. 

If the link between A and S fails, I should see the backup link take over. I assume I could take down the S's NIC, A's NIC, or the link proper. However, no "ifconfig down" command does the job, nor do I know how to take down the virtual link. As a teacher showing off HA, I'd prefer some sort of external, asynchronic, mysterious event to come into scene by will of Fate, but I'll be glad if I can just go and pull out the fine cable and see the primary and secondary swap roles.

Now, bonding can do fault detect using ARP broadcasts or MII signaling. When using MII my bonds do always believe all is OK, no matter what. I have to keep using failure detection by ARP instead of MII because of this. 

To break the virtual link I resorted to kill -STOP the uml_switch process who implements the link. That triggers the bond failover by absence of ARP responses, but then the bond flaps its active between eth0 vs eth1 eternally as if MII keeps contradicting ARP's information. Other signals behave alike, but STOP/CONT can (sometimes) bring the link back as if the failure has been corrected, which holds a value for my lesson.

So, in this synthetic setup, what should I do to simulate a network failure? Can I make MII detection to work? What mistake am I making?

Thank you very much in advance!

--
Eduardo Grosclaude
Universidad Nacional del Comahue
Neuquen, Argentina
------------------------------------------------------------------------------
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user
Nicolas Iooss | 12 Oct 13:02 2014

[uml-user] [PATCH 1/3] um: Create asm/sections.h

arch/um/kernel/dyn.lds.S and arch/um/kernel/uml.lds.S define some
UML-specific symbols.  These symbols are used in the kernel part of UML
with extern declarations.

Move these declarations to a new header, asm/sections.h, like other
architectures do.

Signed-off-by: Nicolas Iooss <nicolas.iooss_linux <at> m4x.org>
---
 arch/um/include/asm/Kbuild     | 1 -
 arch/um/include/asm/sections.h | 9 +++++++++
 arch/um/kernel/physmem.c       | 3 +--
 arch/um/kernel/skas/mmu.c      | 3 +--
 arch/um/kernel/um_arch.c       | 2 --
 5 files changed, 11 insertions(+), 7 deletions(-)
 create mode 100644 arch/um/include/asm/sections.h

diff --git a/arch/um/include/asm/Kbuild b/arch/um/include/asm/Kbuild
index 244b12c8cb39..21fd5c647442 100644
--- a/arch/um/include/asm/Kbuild
+++ b/arch/um/include/asm/Kbuild
 <at>  <at>  -23,7 +23,6  <at>  <at>  generic-y += pci.h
 generic-y += percpu.h
 generic-y += preempt.h
 generic-y += scatterlist.h
-generic-y += sections.h
 generic-y += switch_to.h
 generic-y += topology.h
 generic-y += trace_clock.h
diff --git a/arch/um/include/asm/sections.h b/arch/um/include/asm/sections.h
new file mode 100644
index 000000000000..3a6ebcc65519
--- /dev/null
+++ b/arch/um/include/asm/sections.h
 <at>  <at>  -0,0 +1,9  <at>  <at> 
+#ifndef __UM_SECTIONS_H
+#define __UM_SECTIONS_H
+
+#include <asm-generic/sections.h>
+
+extern char __binary_start;
+extern int __syscall_stub_start, __syscall_stub_end;
+
+#endif
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c
index 30fdd5d0067b..db05c067665a 100644
--- a/arch/um/kernel/physmem.c
+++ b/arch/um/kernel/physmem.c
 <at>  <at>  -8,6 +8,7  <at>  <at> 
 #include <linux/mm.h>
 #include <linux/pfn.h>
 #include <asm/page.h>
+#include <asm/sections.h>
 #include <as-layout.h>
 #include <init.h>
 #include <kern.h>
 <at>  <at>  -75,8 +76,6  <at>  <at>  void map_memory(unsigned long virt, unsigned long phys, unsigned long len,
 	}
 }

-extern int __syscall_stub_start;
-
 void __init setup_physmem(unsigned long start, unsigned long reserve_end,
 			  unsigned long len, unsigned long long highmem)
 {
diff --git a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c
index 007d5503f49b..d2a0a4c0cd91 100644
--- a/arch/um/kernel/skas/mmu.c
+++ b/arch/um/kernel/skas/mmu.c
 <at>  <at>  -8,12 +8,11  <at>  <at> 
 #include <linux/slab.h>
 #include <asm/pgalloc.h>
 #include <asm/pgtable.h>
+#include <asm/sections.h>
 #include <as-layout.h>
 #include <os.h>
 #include <skas.h>

-extern int __syscall_stub_start;
-
 static int init_stub_pte(struct mm_struct *mm, unsigned long proc,
 			 unsigned long kernel)
 {
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c
index 016adf0985d5..02c21f6e0983 100644
--- a/arch/um/kernel/um_arch.c
+++ b/arch/um/kernel/um_arch.c
 <at>  <at>  -259,8 +259,6  <at>  <at>  EXPORT_SYMBOL(end_iomem);

 #define MIN_VMALLOC (32 * 1024 * 1024)

-extern char __binary_start;
-
 int __init linux_main(int argc, char **argv)
 {
 	unsigned long avail, diff;
--

-- 
2.1.1

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://p.sf.net/sfu/Zoho
Clemens Eisserer | 1 Sep 00:19 2014
Picon

[uml-user] Is the ARM9-architecture supported by UML?

Hi,

I would like to use a current version of debian on my Nokia-770 (linux 2.6.16.27) in a chroot-environment, however everything past lenny (5.0, unsupported since mid 2012) requires a newer kernel - which can't be easily upgraded due to proprietary wlan drivers and other specific patches.

Does user mode linux support the ARM9 architecture with 2.6.16.27 as host?

Thanks, Clemens
------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user
Thomas Meyer | 23 Aug 14:14 2014
Picon

[uml-user] Long loop in __getnsdayoftime() after resume from ram

Hello,

in UML kernel 3.16.1 I get a long loop in __getnstimeofday()
(kernel/time/timekeeping.c:315) in the call of timespec_add_ns(),
because it seems like the tk->xtime_sec wasn't updated yet, but the
nsecs were. nsecs can be as high as 8111000111000111000l when left the
host kernel suspended to ram over night.

then the function timespec_add_ns() (include/linux/time.h:266)
will call __iter_div_u64_rem() which has an optimized loop for the case
that the dividend is not much bigger as the divisior.
but this isn't the case for resume from ram on the host kernel.

any ideas how to fix this? is it possible to intercept the resume from
ram and update the timekeeper->xtime_sec somehow?
or can the um arch somehow overwrite timespec_add_ns() to always use
div_u64_rem() instead?

how does the host kernel deal with this? are there some .suspend/.resume
callbacks missing in the um "itimer" clocksource?

with kind regards
thomas

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Thomas Meyer | 19 Aug 20:53 2014
Picon

[uml-user] 3.16 build without optimization fails

Hi,

the build with -O0 fails with:

make -f scripts/Makefile.build obj=init
  gcc -Wp,-MD,init/.main.o.d  -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include
-I./arch/um/include -Iarch/um/include/generated  -Iinclude -I./arch/um/include/uapi
-Iarch/um/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include
./include/linux/kconfig.h -D__KERNEL__ -m64 -I./arch/x86/um -I./arch/x86/include
-I./arch/x86/include/uapi -Iarch/x86/include/generated -Iarch/x86/include/generated/uapi
-Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
-Werror-implicit-function-declaration -Wno-format-security -mcmodel=large -fno-builtin -m64
-funit-at-a-time -D__arch_um__ -I./arch/um/include/shared -I./arch/x86/um/shared
-I./arch/um/include/shared/skas -Dvmap=kernel_vmap
-Din6addr_loopback=kernel_in6addr_loopback -Din6addr_any=ker
 nel_in6addr_any -Dstrrchr=kernel_strrchr -D_LARGEFILE64_SOURCE -Derrno=kernel_errno
-Dsigprocmask=kernel_sigprocmask -Dmktime=kernel_mktime -fno-delete-null-pointer-checks -O0
-Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable
-fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g
-Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack
-Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO    -D"KBUILD_STR(s)=#s"
-D"KBUILD_BASENAME=KBUILD_STR(main)"  -D"KBUILD_MODNAME=KBUILD_STR(main)" -c -o init/main.o init/main.c
In file included from ./arch/um/include/asm/fixmap.h:58:0,
                 from ./arch/um/include/asm/pgtable.h:11,
                 from include/linux/mm.h:51,
                 from include/linux/ring_buffer.h:5,
                 from include/linux/ftrace_event.h:5,
                 from include/trace/syscall.h:6,
                 from include/linux/syscalls.h:80,
                 from init/main.c:18:
include/asm-generic/fixmap.h: In function 'fix_to_virt':
include/asm-generic/fixmap.h:31:2: error: size of unnamed array is negative
  BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
  ^
make[1]: *** [init/main.o] Error 1
make: *** [init] Error 2

bug or feature?

any ideas?

switching BUILD_BUG_ON unconditionally to BUILD_BUG_ON_MSG - which uses compiletime_assert() -
breaks the build a bit later here:

  gcc -Wp,-MD,arch/um/kernel/skas/.uaccess.o.d  -nostdinc -isystem
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/include -I./arch/um/include
-Iarch/um/include/generated  -Iinclude -I./arch/um/include/uapi
-Iarch/um/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include
./include/linux/kconfig.h -D__KERNEL__ -m64 -I./arch/x86/um -I./arch/x86/include
-I./arch/x86/include/uapi -Iarch/x86/include/generated -Iarch/x86/include/generated/uapi
-Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
-Werror-implicit-function-declaration -Wno-format-security -mcmodel=large -fno-builtin -m64
-funit-at-a-time -D__arch_um__ -I./arch/um/include/shared -I./arch/x86/um/shared
-I./arch/um/include/shared/skas -Dvmap=kernel_vmap -Din6addr_loopback=kernel_in6addr_loopback
  -Din6addr_any=kernel_in6addr_any -Dstrrchr=kernel_strrchr -D_LARGEFILE64_SOURCE
-Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask -Dmktime=kernel_mktime
-fno-delete-null-pointer-checks -O0 -Wframe-larger-than=1024 -fno-stack-protector
-Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls
-fno-var-tracking-assignments -g -Wdeclaration-after-statement -Wno-pointer-sign
-fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes
-DCC_HAVE_ASM_GOTO    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(uaccess)" 
-D"KBUILD_MODNAME=KBUILD_STR(uaccess)" -c -o arch/um/kernel/skas/uaccess.o arch/um/kernel/skas/uaccess.c
In file included from include/linux/err.h:4:0,
                 from arch/um/kernel/skas/uaccess.c:6:
arch/um/kernel/skas/uaccess.c: In function 'do_op_one_page':
include/linux/compiler.h:346:20: error: call to '__compiletime_assert_85' declared with attribute
error: BUILD_BUG_ON failed: __same_type(((void *)addr), struct page *)
    prefix ## suffix();    \
                    ^
include/linux/compiler.h:351:2: note: in expansion of macro '__compiletime_assert'
  __compiletime_assert(condition, msg, prefix, suffix)
  ^
include/linux/compiler.h:363:2: note: in expansion of macro '_compiletime_assert'
  _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
  ^
include/linux/bug.h:50:37: note: in expansion of macro 'compiletime_assert'
 #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                     ^
include/linux/bug.h:74:1: note: in expansion of macro 'BUILD_BUG_ON_MSG'
 BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
 ^
include/linux/highmem.h:125:2: note: in expansion of macro 'BUILD_BUG_ON'
  BUILD_BUG_ON(__same_type((addr), struct page *));       \
  ^
arch/um/kernel/skas/uaccess.c:85:2: note: in expansion of macro 'kunmap_atomic'
  kunmap_atomic((void *)addr);
  ^
make[2]: *** [arch/um/kernel/skas/uaccess.o] Error 1
make[1]: *** [arch/um/kernel/skas] Error 2
make: *** [arch/um/kernel] Error 2

------------------------------------------------------------------------------

Gmane