Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 188232 - sys-kernel/openvz-sources-028.027 fails to build without CONFIG_VE defined
Summary: sys-kernel/openvz-sources-028.027 fails to build without CONFIG_VE defined
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo VPS Team (OBSOLETE)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-09 13:52 UTC by j.habenicht
Modified: 2007-10-20 16:07 UTC (History)
0 users

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 j.habenicht 2007-08-09 13:52:14 UTC
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);
        }
}
Comment 1 Benedikt Böhm (RETIRED) gentoo-dev 2007-10-20 16:07:47 UTC
it is not supported upstream at this time