(Хаскель тут при том что достали глюки ansi-terminal под вендой)
(Хаскель тут при том что достали глюки ansi-terminal под вендой)
(напмню: со сборкой 4.7 проблем не было)
В общем, кто сталкивался, как решали?
datacompboy.ru
1) ставим просто jhbuild
2) jhbuild.mingw.gtk-2.24.20.tgz — распаковываем
3) cd jhbuild.mingw.gtk-2.24.10/; ./cross-build-gtk-rls
4) из target.rls/ забираем рабочий runtime.
Так, пакет для кросс-сборки GTK+ 2.24.20 на jhbuild: 1) ставим просто jhbuild
2) jhbuild.mingw.gtk-2.24.20.tgz — распаковываем
3) cd jhbuild.mingw.gtk-2.24.10/; ./cross-build-gtk-rls
4) из target.rls/ забираем рабочий runtime.
Breakpoint 1 at 0x413364: file main.cc, line 357.
(gdb) r
Starting program: d:\salirzaev\avarice-code\avarice\src\avarice.exe -g -d
[New Thread 5804.0x19f4]
Breakpoint 1, main (argc=-2082109099, argv=0xbca108ec) at main.cc:357
357 {
(gdb)
dl.dropbox.com
Позже распишу, как это все собирать — но сразу скажу, натрахался на год вперед.
Сконфигурировано все под i686-pc-mingw32.
i686 это P6(http://en.wikipedia.org/wiki/I686)
У всего вместе отрублен NLS, потому что он все-равно хреново работает.
То есть, общаются утилиты только на английском.
binutils-2.22
То есть, всякие там ld, as, windres, strip и т.п.
Утилиты слинкованы со всеми необходимыми библиотеками(gmp-5.0.2, mpfr-3.1.0, mpc-0.8.2, ppl-0.11.2, cloog-ppl-0.15.11) статически.
gcc-4.6.2
Собраны компиляторы для c, c++, fortran, objc и objc-c++
Стандартные библиотеки собраны как статические, так и динамические.
Влючены gomp и lto.
Также, дополнительно собрана дебаг-версия libstdc++(лежит в lib/bin).
Сами компиляторы, и вообще, исполняемые файлы, типа драйвера(gcc.exe) тоже, как и binutils, статически слинкованы с необходимыми либами.
w32api-3.17-2
Заголовочные файлы и библиотеки импорта для WinAPI.
minwrt-3.20
Рантайм MinGW.
zlib-1.2.5
Статическая и динамическая версии.
pthreads-w32-2-8-0
GC2-конфигурация, DLL.
libiconv-1.14
И DLL, и статическая версия.
gettext-0.18.1.1
Аналогично, и статическая версия, и dll'ки.
expat-2.0.1
Опять же, и DLL, и статическая библиотека.
gmp-5.0.2
DLL-версия.
C++-обертка(libgmpxx-4.dll) зависит от DLL'ек libgcc и libstdc++
mpfr-3.2.0-dev
Версия из SVN. DLL.
mpc-1.0.0dev
Аналогично — DLL, и собиралась из svn trunk.
ppl-0.11.2
cloog-ppl-0.15.11
Как и gmp/mpfr/mpc — собирались с --enable-shared --disable-static.
make-3.82
Лежит в bin, i686-pc-mingw32-make.exe.
По слухам, он довольно кривой, особенно в области распараллеливания, так что лучше использовать make из msys.
libtool-2.42
autoconf-2.68
automake-1.11.2
— GNU autocrap. Вроде работают.
bzip2-1.0.6
Версии библиотеки — как DLL, так и статическая.
xz-5.0.3
Аналогично bzip2.
Я бы в принципе, добавил еще GDB, но ему нужен питон, и мне пока лень их оба собирать.
Для корректной работы весь этот хлам надо распаковать в C:/MinGW
Кстати, насколько я понимаю, autotools, даже вот эти MinGW-версии, требуют unix-like окружение для работы, поэтому желательно еще добавить ко всему этому MSYS(ее брать с сайта mingw или через mingw-get, и устанавливать в C:/MinGW/msys).
ну или там, '-g -O0'. Но суть в том, что оптимизации надо отрубить, иначе собирается неправильно.
А по дефолту там '-g -O2'.
Пятая, по-моему, попытка за год.
Пока все идет ок — собрал либы статически, собрал binutils, собрал GCC без бутстрапа(с бутстрапом — make падает в директории ada(хотя, прикол, ada отключена!)), все статически слинковал, заменил директории, теперь пересобираю либы новыми компиляторами.
Следующий этап — пересборка binutils. Потом — пересборка GCC, заново, самим собой, и сборка динамических библиотек.
Пока что больше всего трахался с ключами в binutils и gcc — чтобы заставить линковать зависимости статически — binutils, например, линкуется с zlib, но чтобы где-то был ключик выбора где искать zlib, это хуй.
Еще, меня очень сильно волнует, почему рантайм MinGW собирается неправильно, и сишные программы, линкующиеся с ним падают при старте?
Пришлось брать рантайм с сайта mingw. Я сначала думал на сам тулчейн, что может, где-то что-то не так собралось(тут еще добавляет радости, что с этими сраными autotools еще и хуй поймешь где что не так), но потом перестал так думать, томущо программы и другие библиотеки таки работают и собираются ОК. Непонятная херня, короче.
Как закончу, напишу в жж статью о превращении Windows 7 в slackware.
Не знаю, что точно там не работало, но пришлось убрать компиляторы Ады и Go, сделать все рантайм-либы кроме libstdc++ статическими и откатиться на cloog-ppl-0.15.11(вместо 0.16.3 и isl).
Вроде конпилирует.
Сейчас пересобираю им GMP.
2 часа собирал GCC под mingw
Ссука. Билд наебнулся, да.
Не найдена точка входа куда-то там блять в libstdc++-6.dll
Уебать, блядь, ногами, блядь.
Гнутое говно, блядь.
Блядь, ненавижу.
Кто хочет протестить? Порядок скачивания и распаковки:
1. psi-dev.googlecode.com
2. psi-dev.googlecode.com
3. psi-dev.googlecode.com
PATH=".:/usr/lib:/bin:/mingw/bin"
LD_RUN_PATH="/usr/lib"
LDFLAGS="-L/usr/lib"
CFLAGS="-mtune=pentium -march=pentium -I/usr/include"
CXXFLAGS="$CFLAGS"
CC=gcc-dw2
CXX=g++-dw2
CPP=cpp-dw2
PKG_CONFIG=/usr/bin/pkg-config
PKG_CONFIG_PATH=/usr/lib/pkgconfig
gcc-4.4.3:
./configure --prefix=/usr --build=pentium-pc-mingw32 --with-gmp=/usr --with-mpfr=/usr --enable-languages=c,c++ --enable-threads --disable-werror --disable-sjlj-exceptions
sqlite-3.6.20:
./configure --prefix=/usr --build=pentium-pc-mingw32 --disable-static --disable-tcl
gettext-0.17:
./configure --prefix=/usr --build=pentium-pc-mingw32
Логи компиляции: bin.mypage.sk
Строка конфигурирования: $ CC=gcc-dw2 CXX=g++-dw2 ./configure --prefix=/usr --build=pentium-pc-mingw32 --with-gmp=/usr --with-mpfr=/usr