Зеркало и macOS

В рамках проекта «Всё, что шевелится, соберу под Андроидом и Эпплом» адаптировал код Зеркала к macOS

https://github.com/prool/zerkalomud

Это получилось не так просто, как у Виртустан мада, так как код Виртустана взят из более свежего релиза Былин и он адаптирован к 64-разрядной архитектуре. А код Зеркала стар и при 32 разрядах собирается и работает без проблем, а на 64 вылетает в корку на макросах флагов. Место, где вылетало, найдено и исправлено. Это макрос GET_FLAG. Эти проблемы еще частично связаны с тем, что в macOS родной компилятор не gcc, а «богомерзкий clang»

Сборка кода «Былин» на Debian 7 64 bit

Неочевидные (для меня) вещи:

1. Ручная инсталляция 32-битной библиотеки:

cp ~prool/1/usr-lib/usr/lib/gcc/i486-linux-gnu/4.7/libstdc++.a /lib32/

(б-ку libstdc++.a берем из 32-битной Ubuntu 32. Это неправильно, но это работает)

2. В качестве zlib надо инсталлировать 32-битную:

apt-get install lib32z1-dev

Источники инфы:

http://badyblog.com/doustanovka-bibliotek-32bit-na-64bit-debian-linux/

http://stackoverflow.com/questions/3373995/usr-bin-ld-cannot-find-lz

* * *

Update. 30.12.2013

Всё вышеперечисленное относится к случаю сборки Былин в Ubuntu 7/64 с оригинальным Makefile, в котором есть флаг m32, насильственно приводящий получаемый код к 32-битный модели. Стоит убрать этот флаг и всё собирается на ура без необходимости насильственной установки 32-битных библиотек. И работает. Проверено

* * *

Свежий код Виртустан-мада собирается так же, как и свежие Былины, так как это по сути тот же самый код, с минимальными косметическими модификациями

Код «Большого зеркала» (старый код Былин) собирается и работает на 64-битной архитектуре только пр добавлении в Makefile флага m32 в двух местах (для компиляции и для сборки), где именно, можно посмотреть в Makefile Былин или Виртустана (и естественно надо в ОС инсталлировать 32-битные библиотеки, как это написано выше)

* * *

Update 12 Feb 2014. В Ubuntu 12.04.4 LTS 64 bit потребовалось

sudo apt-get install libc6-dev-i386