Die urspruengliche Problembeschreibung: "Wine geht nur wenn ich mich direkt auf der maschine einlogge, ueber ssh segfaultet das". Interessant. Wie sich bei naeherer betrachtung herausstellt haben prozesse die ueber ssh gestartet werden ein ganz anderes VMA layout als solche die lokal gestartet werden. Auch interessant. Das mapping fuer Prozesse die unter dem ssh laufen erinnert daran wie das vma-mapping frueher ausgesehen hat, nur das der stack knapp unter 0xc0000000 beginnt, wie es sich unter einem modernen unix gehoert. Das ganze sieht sehr nach einem gesetzten ADDR_COMPAT_LAYOUT personality flag aus (siehe 'man 2 personality'). Aber ssh hat wirklich keinen grund das zu setzten (und wie sich bei naeherer betrachtung herausgestellt hat tut ssh das auch nicht). Dennoch hat die entsprechende stelle im kernel code alles aufgeklaert (arch/i386/mm/mmap.c):
if (sysctl_legacy_va_layout ||
(current->personality & ADDR_COMPAT_LAYOUT) ||
current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY) {
mm->mmap_base = TASK_UNMAPPED_BASE;
mm->get_unmapped_area = arch_get_unmapped_area;
mm->unmap_area = arch_unmap_area;
} else {
mm->mmap_base = mmap_base(mm);
mm->get_unmapped_area = arch_get_unmapped_area_topdown;
mm->unmap_area = arch_unmap_area_topdown;
}
Ich bin mir noch nicht ganz sicher ob das voellig hirnrissig oder total genial ist. Jedenfalls hat ein simples 'ulimit -s 8192' hat das problem aus der welt geschafft.