Sören Jonsson <sorjon02 <at> gmail.com> writes: > > > > Hello, > I saw this mail on the gnu-devel list, from Camm Maguire: > Greetings! If you could step me through the installation of 64bit mingw > or cygwin on a Win7 machine, I think I can get a 64bit gcl port very > quickly. > > Take care, > > > A a response, I located this website: http://mingw- w64.sourceforge.net/ > > It is the website I used to download Mingw-w64 GCC when I made my attempt to make GCL. Installing it is very straight forward. > > You might have to download make and bash separately, but that is very easy as well. > > I hope this will solve your problem, > > Best regards, > > Sören Jonsson, > SWEDEN > > > > _______________________________________________ > Gcl-devel mailing list > Gcl-devel <at> gnu.org > https://lists.gnu.org/mailman/listinfo/gcl-devel >
1) Installing msys2 (point 1 and 2 are summarized from the msys2 installation instructions) You need msys and mingw. Msys is needed to get a linux like shell. And mingw is needed to get the compilersuite. There is a newer version with more up to date files called msys2, which I can recommend. These instructions are for setting up a fully functional mingw32 or mingw64 environment with msys2. First you need to download msys2 from: http://sourceforge.net/projects/msys2/?source=typ_redirect There is a 32 bit and a 64 bit version of msys2. Both are able to compile with mingw32 and ming64 but I recomment installing 32bit msys2 to compile with ming32 and installing 64 bit msys2 for compiling with ming64. You can download msys 32 from: http://sourceforge.net/projects/msys2/files/Base/i686/ and the 64 bit version from: http://sourceforge.net/projects/msys2/files/Base/x86_64/ 2) Updating msys2 Once installed (do not install to places where there are spaces in the path) open with explorer e.g.: c:\msys32\ or c:\msys64\ Msys emulating the fork system call under linux by using the same addresses spaces for all dlls but therefore all addresses need to be adjusted before, so first call: autorebase.bat Then open msys2_shell.bat for only the next steps (later you will use mingw32_shell for 32 bit compilations and mingw64_shell for 64 bit compilations). Now synchronize your local package databases with the latest repositories by typing (the $ is the command propmt): $pacman -Sy (do not use "pacman -Syu", which would update everything in a single run but then the system would become unstable because you need to call autorebase in between see below) Update the core programs first: $pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl If any of these files get updated then exit msys and call autorebase.bat and start msys2_shell.bat again and update the rest: $pacman -Su Now close msys2_shell and open mingw32_shell.bat or mingw64_shell.bat depending if you want to compile for 32 or 64 bit: do for 64bit: pacman -S autoconf autogen automake automake-wrapper diffutils \ msys2-w32api-headers msys2-w32api-runtime \ guile libgc libguile libltdl libunistring make \ mingw-w64-x86_64-toolchain \ mingw-w64-x86_64-tcl \ mingw-w64-x86_64-tk \ mingw-w64-x86_64-make mingw-w64-x86_64-libtool \ mingw-w64-x86_64-binutils mingw-w64-x86_64-bzip2 \ mingw-w64-x86_64-cairo mingw-w64-x86_64-cloog \ mingw-w64-x86_64-crt-git mingw-w64-x86_64-dbus \ mingw-w64-x86_64-expat mingw-w64-x86_64-fontconfig \ mingw-w64-x86_64-freetype mingw-w64-x86_64-gcc \ mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-gdk-pixbuf2 \ mingw-w64-x86_64-gettext mingw-w64-x86_64-giflib \ mingw-w64-x86_64-glib2 mingw-w64-x86_64-gmp \ mingw-w64-x86_64-gnutls mingw-w64-x86_64-harfbuzz \ mingw-w64-x86_64-headers-git mingw-w64-x86_64-isl \ mingw-w64-x86_64-libcroco mingw-w64-x86_64-libffi \ mingw-w64-x86_64-libiconv mingw-w64-x86_64-libjpeg-turbo \ mingw-w64-x86_64-libpng mingw-w64-x86_64-librsvg \ mingw-w64-x86_64-libtiff mingw-w64-x86_64-libwinpthread-git \ mingw-w64-x86_64-libxml2 mingw-w64-x86_64-mpc \ mingw-w64-x86_64-mpfr mingw-w64-x86_64-pango \ mingw-w64-x86_64-pixman mingw-w64-x86_64-winpthreads \ mingw-w64-x86_64-xpm-nox mingw-w64-x86_64-xz \ mingw-w64-x86_64-zlib tar gcc do for 32 bit: pacman -S autoconf autogen automake automake-wrapper diffutils \ guile libgc libguile libltdl libunistring make \ msys2-w32api-headers msys2-w32api-runtime mingw-w64-i686-headers-git \ mingw-w64-i686-toolchain \ mingw-w64-i686-tcl \ mingw-w64-i686-tk \ mingw-w64-i686-make mingw-w64-i686-libtool \ mingw-w64-i686-binutils mingw-w64-i686-bzip2 \ mingw-w64-i686-cairo mingw-w64-i686-cloog \ mingw-w64-i686-crt-git mingw-w64-i686-dbus \ mingw-w64-i686-expat mingw-w64-i686-fontconfig \ mingw-w64-i686-freetype mingw-w64-i686-gcc \ mingw-w64-i686-gcc-libs mingw-w64-i686-gdk-pixbuf2 \ mingw-w64-i686-gettext mingw-w64-i686-giflib \ mingw-w64-i686-glib2 mingw-w64-i686-gmp \ mingw-w64-i686-gnutls mingw-w64-i686-harfbuzz \ mingw-w64-i686-headers-git mingw-w64-i686-isl \ mingw-w64-i686-libcroco mingw-w64-i686-libffi \ mingw-w64-i686-libiconv mingw-w64-i686-libjpeg-turbo \ mingw-w64-i686-libpng mingw-w64-i686-librsvg \ mingw-w64-i686-libtiff mingw-w64-i686-libwinpthread-git \ mingw-w64-i686-libxml2 mingw-w64-i686-mpc \ mingw-w64-i686-mpfr mingw-w64-i686-pango \ mingw-w64-i686-pixman mingw-w64-i686-winpthreads \ mingw-w64-i686-xpm-nox mingw-w64-i686-xz \ mingw-w64-i686-zlib tar gcc If you are searching for packages use pacman -Ss >name_pattern> If you do run into failures to run post-install scripts, then make a list of all the packages that failed to install correctly, exit all your MSYS2 shells (make sure that they fully exit and no mintty/bash processes are running). Then launch a new MSYS2 shell, and issue: pacman -S <list-of-packages-that-failed-to-install> exit mingw shell call autorebase and open the shell again. 3) compiling gcl: 32 bit: grab gcl-2.6.11.tar.gz and unpack rename C:\msys32\mingw32\i686-w64-mingw32\include\malloc.h into alloca.h in gcl/h/include.h add: typedef unsigned int sigset_t; in protoize.h comment out //void * //alloca(size_t); in gcl source dir: $./configure --enable-ansi $make $make install Check that gcl works by typing gcl at MSYS command line ----------------------------------------------------------------------- $ gcl > (+ 1 2 3) 6 > (quit) ___________________________________ 64 bit: better grab gcl-2.6.11.tar.gz and unpack rename C:\msys64\mingw64\x86_64-w64-mingw32\include\malloc.h into alloca.h in h/include.h add at line 38: typedef unsigned int sigset_t; in protoize.h comment out //void * //alloca(size_t); for 64bit additionally edit configure.in (line 1334) and configure (line 6612) ___ #include "`pwd`/h/object.h" #include "`pwd`/h/enum.h" #include "`pwd`/h/type.h" #include "`pwd`/h/lu.h" #include "`pwd`/h/object.h" and change into #include "./h/enum.h" #include "./h/type.h" #include "./h/lu.h" #include "./h/object.h" copy msys64/usr/lib/w32api to /msys64/mingw64/lib copy msys64/usr/include/w32api to /msys64/mingw64/include ___ in gcl source dir: $./configure --enable-ansi --enable-machine=mingw $make currently you will get an error due to an assertion in sfaslcoff.c. This is an object loader which currently can only handle 32 bit object files. now the compilation fails with: > Building symbol table for C:/msys64/home/k/gcl/unixport/raw_pre_gcl.exe .. > The assertion h->h_magic==0x10b || !h->h_dbase on line 246 of > sfaslcoff.c in function load_self_symbos failedmakefile:127: die Regel > für Ziel „saved_pre_gcl“ scheiterte the problem occurs in sfaslcoff.c line 245 massert(h->h_magic==0x10b || h->h_magic==0x20b); massert(h->h_magic==0x10b || !h->h_dbase); /*We cannot handle a 64bit load address*/ I hope anybody can fix this. $make install Check that gcl works by typing gcl at MSYS command line ----------------------------------------------------------------------- $ gcl > (+ 1 2 3) 6 > (quit) _______________________________________________ Gcl-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gcl-devel
