openvz sources don't build if CONFIG_VE is not defined. Ok, this leaves some space open to discuss, whether it is sensible or not to undefine OpenVZ in an OpenVZ kernel. But IMHO this should be possible. regards Reproducible: Always Steps to Reproduce: 1. emerge =sys-kernel/openvz-sources-028.027 2. undefine "OpenVZ ---> [ ] Virtual Environment support" i.e. CONFIG_VE 3. make Actual Results: make breaks at linux-2.6.18-openvz-028.027 # make kernel/sched.o CHK include/linux/version.h CHK include/linux/utsrelease.h CC kernel/sched.o kernel/sched.c: In function `__activate_task': kernel/sched.c:1721: Warnung: implizite Deklaration der Funktion »ve_stop_idle« kernel/sched.c:1721: Fehler: »ve« nicht deklariert (erste Benutzung in dieser Funktion) kernel/sched.c:1721: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt kernel/sched.c:1721: Fehler: für jede Funktion in der er auftritt.) kernel/sched.c: In function `deactivate_task': kernel/sched.c:1874: Fehler: »pcpu« nicht deklariert (erste Benutzung in dieser Funktion) kernel/sched.c:1891: Warnung: implizite Deklaration der Funktion »ve_strt_idle« kernel/sched.c:1891: Fehler: »ve« nicht deklariert (erste Benutzung in dieser Funktion) kernel/sched.c:1891: Fehler: »cpu« nicht deklariert (erste Benutzung in dieser Funktion) kernel/sched.c: In function `idle_balance': kernel/sched.c:4080: Warnung: keine return-Anweisung in nicht void zurückgebender Funktion kernel/sched.c: In function `vsched_add_vcpu': kernel/sched.c:8380: Fehler: ungültige Anwendung von »sizeof« auf unvollständigen Typen »ve_cpu_stats« kernel/sched.c:8380: Warnung: implizite Deklaration der Funktion »VE_CPU_STATS« kernel/sched.c:8380: Fehler: structure hat kein Element namens »owner_env« kernel/sched.c:8380: Fehler: ungültige Anwendung von »sizeof« auf unvollständigen Typen »ve_cpu_stats« kernel/sched.c:8380: Warnung: Verarbeiten des Argumentes 1 von »__constant_c_and_count_memset« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung kernel/sched.c:8380: Fehler: structure hat kein Element namens »owner_env« kernel/sched.c:8380: Fehler: ungültige Anwendung von »sizeof« auf unvollständigen Typen »ve_cpu_stats« kernel/sched.c:8380: Warnung: Verarbeiten des Argumentes 1 von »__constant_c_memset« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung kernel/sched.c:8380: Fehler: ungültige Anwendung von »sizeof« auf unvollständigen Typen »ve_cpu_stats« kernel/sched.c:8380: Fehler: structure hat kein Element namens »owner_env« kernel/sched.c:8380: Fehler: ungültige Anwendung von »sizeof« auf unvollständigen Typen »ve_cpu_stats« kernel/sched.c:8380: Warnung: Verarbeiten des Argumentes 1 von »__memset_generic« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung kernel/sched.c:8380: Fehler: structure hat kein Element namens »owner_env« kernel/sched.c:8380: Fehler: ungültige Anwendung von »sizeof« auf unvollständigen Typen »ve_cpu_stats« kernel/sched.c:8380: Warnung: Verarbeiten des Argumentes 1 von »__memset_generic« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung kernel/sched.c:8383: Fehler: structure hat kein Element namens »owner_env« kernel/sched.c: At top level: kernel/sched.c:902: Fehler: Speichergröße von »kstat_glob« ist unbekannt make[1]: *** [kernel/sched.o] Error 1 make: *** [kernel/sched.o] Error 2 It seems that __activate_task() needs more #ifdefs static void __activate_task(struct task_struct *p, struct rq *rq) { struct prio_array *target = rq->active; cycles_t cycles; #ifdef CONFIG_VE struct ve_struct *ve; cycles = get_cycles(); write_wakeup_stamp(p, cycles); p->ve_task_info.sleep_time += cycles; ve = VE_TASK_INFO(p)->owner_env; #endif if (batch_task(p)) target = rq->expired; enqueue_task(p, target); inc_nr_running(p, rq); inc_nr_running(p, rq); here ->> ve_nr_running_inc(ve, task_cpu(p)); nr_running_inc(smp_processor_id()); if (rq->nr_running == 1) { and here ->> ve_stop_idle(ve, task_vcpu(p), cycles); vcpu_attach(rq); } }
it is not supported upstream at this time