gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] gcl win64


From: Camm Maguire
Subject: [Gcl-devel] gcl win64
Date: Tue, 18 Nov 2014 09:45:10 -0500

Greetings, and thank you both for your helpful replies!

I have remote rdp access to a win7 box with msys, cygwin, and mingw32
installed for gcl development purposes.  Frankly, the less I have to
learn about windows internals, the better, but I am the original author
of the file that needs modification.  

I tried installing msys2, but on attempting a run of the downloaded
executable, windows tells me that it is incompatible.  I noticed also in
Soren's posted instructions that mingw64 or parts thereof are only
supported on a 64 bit host.  I don't even know how to determine the
running cpu or os in windows to chase this down.

The existing mingw installation manager does not offer 64bit package
options.

If no obvious solution comes to mind, I'll write to the admin of the
box. 

Take care,

> 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)
-- 
Camm Maguire                                        address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah



reply via email to

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