Бага по этой теме в winehq: http://bugs.winehq.org/show_bug.cgi?id=5732 Проблема связана с тем, что во FreeBSD другое разделение памяти (не 3/1G, как в Windows/Linux, а 2/2G).
Есть отдельный loader для FreeBSD и описание известных проблем: http://wiki.freebsd.org/Wine
Ждём пока эти патчи будут полностью интегрированы.
Сейчас проблема с патчем mcache. Надо скорее найти ошибку к пересборке.
Для FreeBSD отключен
Сейчас падает на вызове times. Не говорю уж об отсутствии проверки результата tick_per_sec = sysconf(_SC_CLK_TCK); и возможного дальшейшего деления на 0. Надо перевести на NtGetTickCount.
Для любителей times(0) маленькая строчка из man times: On Linux, the buf argument can be specified as NULL, with the result that times() just returns a function result. However, POSIX does not specify this behaviour, and most other Unix implementations require a non-NULL value for buf. Нужно использовать NtGetTickCount, согласно документации, она возвращает ULONG, количество времени в мс, прошедшее со старта системы.
Закоммитил исправленный mcache. Осталось смутное сомнение, что NtGetTickCount действительно возвращает миллисекунды.
(In reply to comment #7) > Закоммитил исправленный mcache. > Осталось смутное сомнение, что NtGetTickCount > действительно возвращает миллисекунды. Ну вроде так. Здесь есть интересное обсуждение: http://rsdn.ru/Forum/message/1320018.flat.aspx