gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] [Maxima-discuss] gcl vs sbcl vs ccl


From: kilian singer
Subject: Re: [Gcl-devel] [Maxima-discuss] gcl vs sbcl vs ccl
Date: Sun, 16 Nov 2014 11:12:24 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

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)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]