GCC 4.4 and strict aliasing

View: New views
19 Messages — Rating Filter:   Alert me  

GCC 4.4 and strict aliasing

by Jerry James-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Recently, GCC 4.4.0 went into Fedora Rawhide (which will become Fedora
11).  Thereafter, the GCL build started failing.  Investigation shows
that this is because GCC 4.4.0 is much more aggressive than its
predecessors about exploiting the ANSI C strict aliasing rules.  GCL
fails to follow those rules in several places, so GCC emitted code
that caused runtime failures.

I have fixed the build for now by passing -fno-strict-aliasing to GCC.
 However, that is not a good long-term solution, since it prevents GCC
from emitting the most optimized code possible.  Over the next couple
of weeks, I will try to look at how to fix up the C code to obey the
ANSI C rules.  If anybody is interested in participating in that, let
me know so we don't duplicate work.

Regards,
--
Jerry James
http://loganjerry.googlepages.com/


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Camm Maguire-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Greetings, and thanks so much for looking into this!

As always, a small code example is worth its weight in gold.  I'm
assuming we're referring to code emitted by the GCL lisp compiler?  If
not, the task is considerably simpler.  In either case, we've adapted
to gcc changes before and can do so again.  4.4 is not yet in Debian
sid, apparently.

BTW, I've made considerable progress on your very helpful patches and
will have more to report soon.

Take care,

Jerry James <loganjerry@...> writes:

> Recently, GCC 4.4.0 went into Fedora Rawhide (which will become Fedora
> 11).  Thereafter, the GCL build started failing.  Investigation shows
> that this is because GCC 4.4.0 is much more aggressive than its
> predecessors about exploiting the ANSI C strict aliasing rules.  GCL
> fails to follow those rules in several places, so GCC emitted code
> that caused runtime failures.
>
> I have fixed the build for now by passing -fno-strict-aliasing to GCC.
>  However, that is not a good long-term solution, since it prevents GCC
> from emitting the most optimized code possible.  Over the next couple
> of weeks, I will try to look at how to fix up the C code to obey the
> ANSI C rules.  If anybody is interested in participating in that, let
> me know so we don't duplicate work.
>
> Regards,
> --
> Jerry James
> http://loganjerry.googlepages.com/
>
>
> _______________________________________________
> Gcl-devel mailing list
> Gcl-devel@...
> http://lists.gnu.org/mailman/listinfo/gcl-devel
>
>
>
>

--
Camm Maguire        camm@...
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Gabriel Dos Reis-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Camm Maguire <camm@...> writes:

| Greetings, and thanks so much for looking into this!
|
| As always, a small code example is worth its weight in gold.  I'm
| assuming we're referring to code emitted by the GCL lisp compiler?  If
| not, the task is considerably simpler.  In either case, we've adapted
| to gcc changes before and can do so again.  4.4 is not yet in Debian
| sid, apparently.

I seem to remember that Tim Daly reported this warning (and at the
time I could concur) some time ago.

| BTW, I've made considerable progress on your very helpful patches and
| will have more to report soon.

is there a chance to apply some of those (that fixes binutils
problems) to GCL-2.6.8pre?  

Thanks,

-- Gaby


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Jerry James-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sun, Feb 22, 2009 at 6:43 PM, Camm Maguire <camm@...> wrote:
> Greetings, and thanks so much for looking into this!
>
> As always, a small code example is worth its weight in gold.  I'm
> assuming we're referring to code emitted by the GCL lisp compiler?  If
> not, the task is considerably simpler.  In either case, we've adapted
> to gcc changes before and can do so again.  4.4 is not yet in Debian
> sid, apparently.

No, or at least the build didn't make it far enough to emit code from
the Lisp compiler.  See the build log here:

http://linux.dell.com/files/fedora/FixBuildRequires/mock-results/x86_64/gcl-2.6.8-0.1.20080902cvs.2.fc11.src.rpm/result/build.log

> BTW, I've made considerable progress on your very helpful patches and
> will have more to report soon.

Great.!  I'm happy to answer any questions you may have.
--
Jerry James
http://loganjerry.googlepages.com/


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Camm Maguire-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Greetings!

OK, a minimal bfd fix is in 2.6.8pre -- thanks Jerry!  I'd really
prefer to keep 2.6.8pre changes to very important bug fix minimal mods
only, given the lack of resources we have to maintain two branches.  

I've followed Jerry's advise with a much more substantial configure.in
cleanup for cvs head, which should go in shortly.  It is still not
complete.  configure.in is too complicated, and the macro
interdependencies are difficult.  I was wondering whether this would
be better done with a series of .m4 files to use with aclocal, but am
not really familiar with the tool, and need to carefully judge the
time required.  At least acconfig.h can go (away) with the next
commit.  I'm not really sure if configure.ac is a more modern name, or
whether this implies any syntax changes.  Finally, the makefiles are
very fragile and really should go through automake, but this has ever
seemed a low priority.

Other Jerry patches which appear to fall into the 'critical breakage'
category are:

unrandomize -- which gcc cannot #include inside a function?  I've used
               this syntax forever.
getcwd
selinux ?
elisp

Please let me know if this assessment is faulty.

I'll try to upload a 2.6.7-46 debian package shortly to see where we
are on the new sid autobuilders.

Take care,

Gabriel Dos Reis <gdr@...> writes:

> Camm Maguire <camm@...> writes:
>
> | Greetings, and thanks so much for looking into this!
> |
> | As always, a small code example is worth its weight in gold.  I'm
> | assuming we're referring to code emitted by the GCL lisp compiler?  If
> | not, the task is considerably simpler.  In either case, we've adapted
> | to gcc changes before and can do so again.  4.4 is not yet in Debian
> | sid, apparently.
>
> I seem to remember that Tim Daly reported this warning (and at the
> time I could concur) some time ago.
>
> | BTW, I've made considerable progress on your very helpful patches and
> | will have more to report soon.
>
> is there a chance to apply some of those (that fixes binutils
> problems) to GCL-2.6.8pre?  
>
> Thanks,
>
> -- Gaby
>
>
>
>

--
Camm Maguire        camm@...
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

While we're minimizing shell spawns ...

by Camm Maguire-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

... would anyone like to volunteer to write a lisp #'directory function
sing unix dirent structures, with a mind toward portability on mingw,
cygwin, macosx, and solaris?  Preferably, the C primitives should be
minimal, and most of the logic implemented in lisp.  For cvs head I'd
think unless really simple

This is an old request from some maxima people.

Take care,
--
Camm Maguire        camm@...
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Jerry James-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Feb 23, 2009 at 1:10 PM, Camm Maguire <camm@...> wrote:
Greetings!

OK, a minimal bfd fix is in 2.6.8pre -- thanks Jerry!  I'd really
prefer to keep 2.6.8pre changes to very important bug fix minimal mods
only, given the lack of resources we have to maintain two branches.

I've followed Jerry's advise with a much more substantial configure.in
cleanup for cvs head, which should go in shortly.  It is still not
complete.  configure.in is too complicated, and the macro
interdependencies are difficult.  I was wondering whether this would
be better done with a series of .m4 files to use with aclocal, but am
not really familiar with the tool, and need to carefully judge the
time required.  At least acconfig.h can go (away) with the next
commit.  I'm not really sure if configure.ac is a more modern name, or
whether this implies any syntax changes.  Finally, the makefiles are
very fragile and really should go through automake, but this has ever
seemed a low priority.

The configure.in to configure.ac name change is only to signal that you are using a newer autoconf.  It does not imply any changes to the contents of the file itself.

I've had mixed results with automake.  My experience has been that automake helps me whip out simple Makefiles very quickly, and confuses the heck out of me when I need to do something complex.  YMMV.
 
Other Jerry patches which appear to fall into the 'critical breakage'
category are:

unrandomize -- which gcc cannot #include inside a function?  I've used
              this syntax forever.

I hit this with Fedora 9, but only with -O2 or -O3.  With -O0 or -O1, it worked fine.  It appears to be caused by some recent glibc work.  They've turned some former functions into inline functions or macros, so they can add some error-checking.  In at least a few cases, the error-checking is only triggered by -O2 or higher, which is why -O1 works.  When I complained about this, I was told that #include inside a function is not legal C, complete with a quote from the ANSI C spec.

getcwd
selinux ?

Most of the selinux patch is needed only for those building GCL on an SELinux-enabled host.  However, those trying to run GCL on an SELinux-enabled machine will need to have the policy installed and the proper labeling in place on the image files.  I have only ever used SELinux on Fedora, and don't currently have access to any other Linux distributions, so I'm not at all sure how to write a general guide to using GCL with SELinux.  I can easily give the Fedora recipe.  Is there anybody who can help me figure out how that recipe needs to be altered for other Linux distributions?

elisp

The bfd and unrandomize patches include changes to configure.in.  I cannot produce a working configure script with the autoconf I have available to me, which is the reason for the infrastructure patch.  You'll probably have to change those patches somewhat to work with an older autoconf.

Regards,
--
Jerry James
http://loganjerry.googlepages.com/


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

New members

by Camm Maguire-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Greetings, and welcome to the gcl development team!

Both of you now should have cvs write access.  I would greatly
appreciate it if we could briefly discuss any commits you'd like to
make at the beginning, until we get a feel for how to best divide the
workload and avoid duplication.  

Donald, your area would clearly seem to be the maintenance of the
mingw port, unless you have other interests.  This is a fairly
contained area.  I feel comfortable giving you wide latitude in this
regard, primarily because I have no familiarity with these systems :-)
Please let me know if you're interested in anything else as well.

From your very helpful patches, Jerry, I get a feel for what you may
be interested in, and it is very helpful indeed.  As collisions
between us are a bit more likely, discussion at the beginning would be
most appreciated.

Please be aware that our primary purpose is to support the existing
large applications with great portability and performance.
(maxima,acl2,axiom,fricas,hol88,nqthm1992)  If you are interested in
anything major, its a good idea to build a local tree and test at
least some of these applications.

Take care, and thanks again!
--
Camm Maguire        camm@...
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: New members

by Jerry James-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Feb 23, 2009 at 2:17 PM, Camm Maguire <camm@...> wrote:
Greetings, and welcome to the gcl development team!

Both of you now should have cvs write access.  I would greatly
appreciate it if we could briefly discuss any commits you'd like to
make at the beginning, until we get a feel for how to best divide the
workload and avoid duplication.

Donald, your area would clearly seem to be the maintenance of the
mingw port, unless you have other interests.  This is a fairly
contained area.  I feel comfortable giving you wide latitude in this
regard, primarily because I have no familiarity with these systems :-)
Please let me know if you're interested in anything else as well.

From your very helpful patches, Jerry, I get a feel for what you may
be interested in, and it is very helpful indeed.  As collisions
between us are a bit more likely, discussion at the beginning would be
most appreciated.

Absolutely.  I certainly don't want to step on your toes or waste time duplicating effort.
 
Please be aware that our primary purpose is to support the existing
large applications with great portability and performance.
(maxima,acl2,axiom,fricas,hol88,nqthm1992)  If you are interested in
anything major, its a good idea to build a local tree and test at
least some of these applications.

I have a goal, by the way, to add PVS to that list.  I'll certainly have to build and try out some of those applications, though, so I can tell whether I've broken anything.

Thanks for giving me the chance to participate, Camm.
--
Jerry James
http://loganjerry.googlepages.com/


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

RE: New members

by Billinghurst, David (CRTS) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> Subject: [Gcl-devel] New members
>
> Greetings, and welcome to the gcl development team!
>
> Donald, your area would clearly seem to be the maintenance of
> the mingw port, unless you have other interests.  This is a
> fairly contained area.  I feel comfortable giving you wide
> latitude in this regard, primarily because I have no
> familiarity with these systems :-) Please let me know if
> you're interested in anything else as well.

Donald,

I also have an interest in gcl on mingw, as we use it to build
maxima.  I don't have a lot of time at present but I am happy
to test stuff if you want a second opinion.

        David Billinghurst

This email is confidential and may also be privileged.  If you are not the intended recipient, please notify us immediately and delete this message from your system without first printing or copying it. Any personal data in this email (including any attachments) must be handled in accordance with the Rio Tinto Group Data Protection Policy and all applicable data protection laws.


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Gabriel Dos Reis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Feb 23, 2009 at 2:10 PM, Camm Maguire <camm@...> wrote:
> Greetings!
>
> OK, a minimal bfd fix is in 2.6.8pre -- thanks Jerry!  I'd really
> prefer to keep 2.6.8pre changes to very important bug fix minimal mods
> only, given the lack of resources we have to maintain two branches.

I just update by 2.6.8pre.  The build fails (ono opensuse 11.1) with
undefined symbols:

gcc -o raw_pre_gcl  \
                -L.  -Wl,-Map raw_pre_gcl_map   -lpre_gcl -lm  -lgmp
-lreadline -lncurses -lc -lgclp
./libpre_gcl.a(binutils_bfd_compress.o): In function
`bfd_uncompress_section_contents':
/usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:96:
undefined reference to `inflateInit_'
/usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:103:
undefined reference to `inflate'
/usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:106:
undefined reference to `inflateReset'
/usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:108:
undefined reference to `inflateEnd'
collect2: ld returned 1 exit status
make[1]: *** [raw_pre_gcl_map] Error 1
make[1]: Leaving directory `/home/gdr/src/gcl-2.6.8pre/unixport'


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Camm Maguire-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Greetings, and my apologies!  Forgot to commit the configure script,
as opposed to configure.in.  Please try again and let me know if you
have problems.

Take care,

Gabriel Dos Reis <gdr@...> writes:

> On Mon, Feb 23, 2009 at 2:10 PM, Camm Maguire <camm@...> wrote:
>> Greetings!
>>
>> OK, a minimal bfd fix is in 2.6.8pre -- thanks Jerry!  I'd really
>> prefer to keep 2.6.8pre changes to very important bug fix minimal mods
>> only, given the lack of resources we have to maintain two branches.
>
> I just update by 2.6.8pre.  The build fails (ono opensuse 11.1) with
> undefined symbols:
>
> gcc -o raw_pre_gcl  \
>                 -L.  -Wl,-Map raw_pre_gcl_map   -lpre_gcl -lm  -lgmp
> -lreadline -lncurses -lc -lgclp
> ./libpre_gcl.a(binutils_bfd_compress.o): In function
> `bfd_uncompress_section_contents':
> /usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:96:
> undefined reference to `inflateInit_'
> /usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:103:
> undefined reference to `inflate'
> /usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:106:
> undefined reference to `inflateReset'
> /usr/src/packages/BUILD/binutils-2.19/build-dir/bfd/../../bfd/compress.c:108:
> undefined reference to `inflateEnd'
> collect2: ld returned 1 exit status
> make[1]: *** [raw_pre_gcl_map] Error 1
> make[1]: Leaving directory `/home/gdr/src/gcl-2.6.8pre/unixport'
>
>
>
>

--
Camm Maguire        camm@...
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: New members

by Donald Winiecki :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Camm and everyone,

I will maintain a low profile most of the time since I am primarily
following on with Win32 builds of the work.  Whatever things I commit to
the CVS will be in the service of that end.  

I'll admit to a rough-and-ready knowledge of everything going on at
present, but quickly add that learning is one of my linked goals.  With
that * and since I am working primarily in Win32 environments for now
-- I am not foreseeing my participation beyond the above.  If this
changes I'll announce it on the gcl-devel list.

Best,

_don winiecki

>>> Camm Maguire <camm@...> 2/23/2009 2:17:41 PM >>>
Greetings, and welcome to the gcl development team!

Both of you now should have cvs write access.  I would greatly
appreciate it if we could briefly discuss any commits you'd like to
make at the beginning, until we get a feel for how to best divide the
workload and avoid duplication.  

Donald, your area would clearly seem to be the maintenance of the
mingw port, unless you have other interests.  This is a fairly
contained area.  I feel comfortable giving you wide latitude in this
regard, primarily because I have no familiarity with these systems :-)
Please let me know if you're interested in anything else as well.

From your very helpful patches, Jerry, I get a feel for what you may
be interested in, and it is very helpful indeed.  As collisions
between us are a bit more likely, discussion at the beginning would be
most appreciated.

Please be aware that our primary purpose is to support the existing
large applications with great portability and performance.
(maxima,acl2,axiom,fricas,hol88,nqthm1992)  If you are interested in
anything major, its a good idea to build a local tree and test at
least some of these applications.

Take care, and thanks again!
--
Camm Maguire      
camm@...
==========================================================================
"The earth is but one country, and mankind its citizens."  --
Baha'u'llah


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

RE: New members

by Donald Winiecki :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks David!  As I suspect we're all stretched I'll do my best to be
protective of your time.

Having said that, I would like to ask a question now.  I have
prototyped directions for building CGL on both WinXP and Vista.  Each
works for me on my various machines, but I'm not sure if my setups are
consistent with others.  

If you get a chance, please run through my prototype directions below
and let me know if this works.  If you're not able to get to this that's
fine.  Time will come eventually when someone else gives it a try and
lets me know!

Best,

_don winiecki

------
------

===============================================
BUILDING NATIVE WIN32 GNU COMMON LISP FROM CVS
===============================================

The preferred build host system for the Mingw32 compiler is MSYS.

I use gcc version 3.3.1 and binutils 2.14.90, but earlier versions
of gcc back to 2.95 are OK provided that you remove the
"-fno-zero-initialized-in-bss" flag in "h/mingw.defs" before running
"configure".

Note that gcc 3.3.3 and gcc 3.4.0 do NOT work; likewise binutils
2.13.90
and 2.15.90.

The working binutils version can be found at:

http://gd.tuwien.ac.at/gnu/mingw/binutils-2.14.90-20030612-1.tar.gz 

===============================================
INSTALL AND CONFIGURE TORTOISE CVS
===============================================

Download Tortoise CVS from:  http://www.tortoisecvs.org/ 

After downloading, install Tortoise CVS and included programs,
accepting default installation directories.

===============================================
DOWNLOAD CVS FOR GCL
===============================================

Choose a directory to which you will download (check out) of the GCL
CVS
(I created c:\_cvs).

Enter the directory created and right click.  The context menu will
show
`CVS checkout' as a context menu itemu.

Choose the 'CVS checkout' context menu item.  You should be presented
with
a dialogue box titled 'TortoiseCVS-Checkout Module'.  

Under the 'Module' tab, enter the following:

For Protocol, enter

     :pserver

For `server', enter

    cvs.savannah.gnu.org    

For `Repository folder', enter

    /sources/gcl

For `User name', enter

     anonymous

On the right side of the dialog box, for `Module', enter

     gcl

Under the 'Revision' tab:

Select the 'Choose branch or tag' radio button

Select the 'Update list...' button

Open the 'Branch or tag name:' drop down list and select the version
you want
to build

Under the 'Options' tab:

Select the `Export - for making a software release' radio button

Check the `Use UNIX line ending' box

Choose the 'Enter your own folder name' radio button

In the 'Custom folder name:' field, enter the name of the folder you
desire
to be created (for example, 'gcl-2.6.7' to match the version to be
built)

Now, click again on `Module' tab. Click on OK.  You should see that
tortoise CVS is checking out GCL from CVS repo.


More information on CVS access is available here

   http://savannah.gnu.org/cvs/?group=gcl 


================================================
INSTALLING BUILD TOOLS (MinGW, MSYS)
================================================

------------------------------------------------
** IF INSTALLING ON WINDOWS XP **
** (see below if installing on WINDOWS VISTA) **
------------------------------------------------

BUILD TOOLS

Subject to the above warnings, it is usually a good idea to keep up to
date with Mingw32 and MSYS.  Updates for various parts of these
packages
are available on the web site.

Go to http://www.mingw.org/download.shtml and download

  http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download 

  http://prdownloads.sf.net/mingw/MSYS-1.0.9.exe?download 

  http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe?download 

 
http://prdownloads.sf.net/mingw/gcc-core-3.3.1-20030804-1.tar.gz?download


Install these files in the same order as above. Accept the default
locations. GCC-CORE-3.3.1-20038041.tar.gz' should be extracted into
c:/mingw and overwrites the older version of gcc.

When you are done, you should be able to start MSYS and a get the '$'
prompt
(customized for your machine name and your username, if active)

To check the installation, type 'gcc -v' at the prompt.  If all was
installed
properly you should see:

  gcc version 3.3.1 (mingw special 20030804-1)


------------------------------------------------
** IF INSTALLING ON WINDOWS VISTA **
** (see above if installing on WINDOWS XP) **
** (Thanks to Dan Raymond for this: **
**
http://readlist.com/lists/lists.sourceforge.net/mingw-msys/0/918.html)
**
------------------------------------------------

BUILD TOOLS

Subject to the above warnings, it is usually a good idea to keep up to
date with Mingw32 and MSYS.  Updates for various parts of these
packages
are available on the web site.

(Alternative location for these files is [as of 6 July 08]:
 http://www.mingw.org/download.shtml and download)

Install these files in the same order as indicated below.  Accept the
default locations.

  http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download 

When the following program opens a terminal window and asks permission
to
perform postinstall processing, press `n' and `enter' to abort the
postinstall processing (otherwise, an error may occur and Vista will
generate over 100 windows).  

  http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download 

  http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe?download 

Open an MSYS window and type the following command (this will allow you
to
use the MSYS version of ftp instead of the Windows version of ftp
subsequently):

mv /bin/ftp /bin/ftp.old

Copy the following files to c:\mingw

 
http://prdownloads.sf.net/mingw/binutils-2.14.90-20030612-1.tar.gz?download


 
http://prdownloads.sf.net/mingw/gcc-core-3.3.1-20030804-1.tar.gz?download


  http://prdownloads.sf.net/mingw/mingw-runtime-3.14.tar.gz?download 

  http://prdownloads.sf.net/mingw/w32api-3.11.tar.gz?download 

Open an MSYS window and execute the following commands (The first four

command lines below untar the archives and delete them while the last
line
sets up the mount point for mingw (you need to do this manually since
you
aborted the post install for MSYS).

cd /c/mingw
gzip -d *.gz
find -name '*.tar' -exec tar -xvf {} \;
rm *.tar
echo 'C:/mingw /mingw' > /etc/fstab


When you are done, you should be able to start MSYS and a get the '$'
prompt
(customized for your machine name and your username, if active).  

To check the installation, type 'gcc -v' at the prompt.  If all was
installed
properly you should see the following.  (If not, something got missed
along
the way.  At this point, uninstall msysDTK, MSYS and MinGW through
Windows'
control panel and delete the c:\MinGW and c:\msys directories, reboot
and
reinstall following the procedure above.)

  gcc version 3.3.1 (mingw special 20030804-1)

===============================================
BUILDING GCL USING MSYS AS THE HOST
===============================================

At the MSYS '$' prompt, change to your GCL source directory (for
example):

  cd /c/_cvs/gcl

You are now ready to configure GCL:

If you want to build the CLTL1 variant, type:

  ./configure --prefix="c:/gcl" > configure.log 2>&1

If you want to build the ANSI variant, type:

  ./configure --prefix="c:/gcl" > --enable-ansi configure.log 2>&1

  Change the prefix directory as required for your desired final
installation
  path.

When configure is completed, enter the following command at the MinGW
command
line (the MSYS shell):

   make >& make.log

On my dual core 2.2GHz machine, the process takes about 10-12 minutes.
The
"saved_gcl.exe" (or "saved_ansi_gcl.exe") should turn up eventually in

the unixport directory (inside the \lib\gcl-x.x.x directory of the
final
installation directory).  

You can try it out directly inside the MSYS shell by typing the
following at
the MSYS command prompt.


For the CLtL1 version, type the following:

  ./unixport/saved_gcl.exe

For the ANSI version, type the following:

  ./unixport/saved_ansi_gcl.exe

To install, type the following at the MSYS command prompt:

  make install >& install.log

- The batch file "gclm.bat" can be used to make a Windows desktop
  shortcut.  (NOTE: I have not been able to make this batch file work
[djw])

- BFD fasloading, Stratified Garbage Collection (SGC) readline and
GCL-TK
  don't work under Windows.  The configuration options above provide a
  "traditional" GCL executable which will build the current CVS version
of
  Maxima.  The BFD option will depend on someone with knowledge of BFD
and
  PE-COFF linking fixing some problems with the BFD library - I am
slowly
  absorbing the info needed, but we really need input from an expert.
My
  inclination is to stick with custom relocation as BFD is less
efficient.

===============================================
INSTALLING GCL INFORMATION ACCESSIBLE FROM GCL INTERPRETER
===============================================

Download "gcl.info.tgz" from ftp://ftp.gnu.org/pub/gnu/gcl/

Make the following directory path and unpack the downloaded file into

C:\usr\local\gnu\info

===============================================
RUNNING GCL
===============================================

You can move the final installation folder (for example,
"GCL-2.6.7-ANSI")
anywhere on your hard drive (typically, c:\program files).

Create a shortcut to the executable (either "saved_gcl.exe" or
"saved_ansi_gcl.exe") and assign to it the icon located in the \bin
directory.

You can then move the shortcut to anywhere (the 'Start' menu or your
'Quick
Launch' menu).  Double click the icon to launch GCL.

===============================================
CONFIGURE GCL TO RUN IN INFERIOR MODE UNDER EMACS
===============================================

Follow directions provided by Gordon Novak Jr. at:

http://www.cs.utexas.edu/users/novak/gclwin.html 


===============================================
Original setup and configuration directions by Mike Thomas, 15 Jun
2004.

Updates and modifications by Don Winiecki, 1:06 PM 01 Jan 2008, using
details
provided by Mike Thomas, Camm Maguire, Gaby Dos Reis, and Gordon Novak
Jr.  
(http://lists.gnu.org/archive/html/axiom-developer/2003-10/msg00227.html)

Updates for setup on MS-Vista by Don Winiecki, 12:40PM 06 Jul 2008,
using
information provided by Dan Raymond.

------
------

>>> "Billinghurst, David (RTATECH)" <David.Billinghurst@...>
2/23/2009 2:30:00 PM >>>

> Subject: [Gcl-devel] New members
>
> Greetings, and welcome to the gcl development team!
>
> Donald, your area would clearly seem to be the maintenance of
> the mingw port, unless you have other interests.  This is a
> fairly contained area.  I feel comfortable giving you wide
> latitude in this regard, primarily because I have no
> familiarity with these systems :-) Please let me know if
> you're interested in anything else as well.

Donald,

I also have an interest in gcl on mingw, as we use it to build
maxima.  I don't have a lot of time at present but I am happy
to test stuff if you want a second opinion.

        David Billinghurst

This email is confidential and may also be privileged.  If you are not
the intended recipient, please notify us immediately and delete this
message from your system without first printing or copying it. Any
personal data in this email (including any attachments) must be handled
in accordance with the Rio Tinto Group Data Protection Policy and all
applicable data protection laws.

>>> "Billinghurst, David (RTATECH)" <David.Billinghurst@...>
2/23/2009 2:30:00 PM >>>

> Subject: [Gcl-devel] New members
>
> Greetings, and welcome to the gcl development team!
>
> Donald, your area would clearly seem to be the maintenance of
> the mingw port, unless you have other interests.  This is a
> fairly contained area.  I feel comfortable giving you wide
> latitude in this regard, primarily because I have no
> familiarity with these systems :-) Please let me know if
> you're interested in anything else as well.

Donald,

I also have an interest in gcl on mingw, as we use it to build
maxima.  I don't have a lot of time at present but I am happy
to test stuff if you want a second opinion.

        David Billinghurst

This email is confidential and may also be privileged.  If you are not
the intended recipient, please notify us immediately and delete this
message from your system without first printing or copying it. Any
personal data in this email (including any attachments) must be handled
in accordance with the Rio Tinto Group Data Protection Policy and all
applicable data protection laws.


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Gabriel Dos Reis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Feb 23, 2009 at 9:11 PM, Camm Maguire <camm@...> wrote:
> Greetings, and my apologies!  Forgot to commit the configure script,
> as opposed to configure.in.  Please try again and let me know if you
> have problems.

I updated and it built like a charm.  I'm not in the process of
try a GCL-based OpenAxiom build.

There were many 'no real prototype' warnings though.  I don't know
whether that can be fixed in 2.6.8 timeframe.

Regarding your question about configure.in vs. configure.ac; yes,
configure.ac is the preferred naming now.

-- Gaby


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: GCC 4.4 and strict aliasing

by Gabriel Dos Reis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Feb 24, 2009 at 11:54 AM, Gabriel Dos Reis
<gdr@...> wrote:
> On Mon, Feb 23, 2009 at 9:11 PM, Camm Maguire <camm@...> wrote:
>> Greetings, and my apologies!  Forgot to commit the configure script,
>> as opposed to configure.in.  Please try again and let me know if you
>> have problems.
>
> I updated and it built like a charm.  I'm not in the process of
                                                           ^^^
s/not/now/
> try a GCL-based OpenAxiom build.

I've put a log of

     make all-interpsys

for OpenAxiom-1.2.1 here

     http://parasol.tamu.edu/~gdr/OpenAxiom/build/gcl-2.6.8pre.log

You can see lot of warning of the form

    note: XXX was declared here

These are warnings about the C code generated by GCL.

-- Gaby


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: While we're minimizing shell spawns ...

by Raymond Toy-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Camm Maguire wrote:
> ... would anyone like to volunteer to write a lisp #'directory function
> sing unix dirent structures, with a mind toward portability on mingw,
> cygwin, macosx, and solaris?  Preferably, the C primitives should be
> minimal, and most of the logic implemented in lisp.  For cvs head I'd
> think unless really simple
>
> This is an old request from some maxima people.

One possibility would be to steal the code from cmucl or clisp.  Cmucl
uses stat functions, I think, to walk the directory.

While I'm asking, can we also get a ensure-directories-exist?  This is
useful with mk defsystem.  For now, I just hacked a version that
basically calls mkdir -p. :-)

Also, gcl seems to have define-compiler-macro, but it's in the SYSTEM
package, not COMMON-LISP.  I tried (with maxima) to import the symbol
into COMMON-LISP, but got symbol conflicts.  I couldn't figure out how
to get rid of the offending symbol.

It's very nice to see some development on gcl once again!

Ray



_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Building gcl on windows

by Billinghurst, David (CRTS) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Don,

I have just built gcl on a clean Windows XP system.  I agree that
the gcc and binutils versions given are essential.

My setup is similar to your description.  The main differences are:
 - I have used MSYS-1.0.10.exe
 - I use cygwin cvs to get gcl
 - I build and install a recent gmp, rather than use the older version
in
   the gcl tree.  This save some time in the long run, as I don't have
to
   re-build gmp when I build gcl.

1. Install MinGW and MSYS as you describe, although I used
MSYS-1.0.10.exe

MinGW-3.1.0-1.exe
MSYS-1.0.10.exe
msysDTK-1.0.1.exe
mingw-runtime-3.14.tar.gz
gcc-core-3.3.1-20030804-1.tar.gz
binutils-2.14.90-20030612-1.tar.gz
w32api-3.11.tar.gz


2. Download gcl CVS.

I used CVS under cygwin, then copied the files.


3. Build and install gmp-4.2.4 under msys.

Download gmp-4.2.4.tar.bz2 from http://www.gmplib.org/
tar xjf gmp-4.2.4.tar.bz2
cd gmp-4.2.4
./configure --enable-static --disable-shared --disable-cxx --enable-fat
make
make check
make install


4. Build and install gcl using recently built gmp

cd gcl-2.6.8pre
./configure --enable-ansi --enable-dynsysgmp --enable-readine
make
make install


5.  The installed gcl will build maxima (although additional setup
is required for this).



> -----Original Message-----
> From: Donald Winiecki [mailto:DWINIECKI@...]
> Sent: Tuesday, 24 February 2009 15:42
> To: Billinghurst, David (RTATECH)
> Cc: GCL Development
> Subject: RE: [Gcl-devel] New members
>
> Thanks David!  As I suspect we're all stretched I'll do my
> best to be protective of your time.
>
> Having said that, I would like to ask a question now.  I have
> prototyped directions for building CGL on both WinXP and
> Vista.  Each works for me on my various machines, but I'm not
> sure if my setups are consistent with others.  
>
> If you get a chance, please run through my prototype
> directions below and let me know if this works.  If you're
> not able to get to this that's fine.  Time will come
> eventually when someone else gives it a try and lets me know!
>
> Best,
>
> _don winiecki
>
> ------
> ------
>
> ===============================================
> BUILDING NATIVE WIN32 GNU COMMON LISP FROM CVS
> ===============================================
>
> The preferred build host system for the Mingw32 compiler is MSYS.
>
> I use gcc version 3.3.1 and binutils 2.14.90, but earlier
> versions of gcc back to 2.95 are OK provided that you remove
> the "-fno-zero-initialized-in-bss" flag in "h/mingw.defs"
> before running "configure".
>
> Note that gcc 3.3.3 and gcc 3.4.0 do NOT work; likewise
> binutils 2.13.90 and 2.15.90.
>
> The working binutils version can be found at:
>
> http://gd.tuwien.ac.at/gnu/mingw/binutils-2.14.90-20030612-1.tar.gz 
>
> ===============================================
> INSTALL AND CONFIGURE TORTOISE CVS
> ===============================================
>
> Download Tortoise CVS from:  http://www.tortoisecvs.org/ 
>
> After downloading, install Tortoise CVS and included
> programs, accepting default installation directories.
>
> ===============================================
> DOWNLOAD CVS FOR GCL
> ===============================================
>
> Choose a directory to which you will download (check out) of
> the GCL CVS (I created c:\_cvs).
>
> Enter the directory created and right click.  The context
> menu will show `CVS checkout' as a context menu itemu.
>
> Choose the 'CVS checkout' context menu item.  You should be
> presented with a dialogue box titled 'TortoiseCVS-Checkout Module'.  
>
> Under the 'Module' tab, enter the following:
>
> For Protocol, enter
>
>      :pserver
>
> For `server', enter
>
>     cvs.savannah.gnu.org    
>
> For `Repository folder', enter
>
>     /sources/gcl
>
> For `User name', enter
>
>      anonymous
>
> On the right side of the dialog box, for `Module', enter
>
>      gcl
>
> Under the 'Revision' tab:
>
> Select the 'Choose branch or tag' radio button
>
> Select the 'Update list...' button
>
> Open the 'Branch or tag name:' drop down list and select the
> version you want to build
>
> Under the 'Options' tab:
>
> Select the `Export - for making a software release' radio button
>
> Check the `Use UNIX line ending' box
>
> Choose the 'Enter your own folder name' radio button
>
> In the 'Custom folder name:' field, enter the name of the
> folder you desire to be created (for example, 'gcl-2.6.7' to
> match the version to be
> built)
>
> Now, click again on `Module' tab. Click on OK.  You should
> see that tortoise CVS is checking out GCL from CVS repo.
>
>
> More information on CVS access is available here
>
>    http://savannah.gnu.org/cvs/?group=gcl 
>
>
> ================================================
> INSTALLING BUILD TOOLS (MinGW, MSYS)
> ================================================
>
> ------------------------------------------------
> ** IF INSTALLING ON WINDOWS XP **
> ** (see below if installing on WINDOWS VISTA) **
> ------------------------------------------------
>
> BUILD TOOLS
>
> Subject to the above warnings, it is usually a good idea to
> keep up to date with Mingw32 and MSYS.  Updates for various
> parts of these packages are available on the web site.
>
> Go to http://www.mingw.org/download.shtml and download
>
>   http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download 
>
>   http://prdownloads.sf.net/mingw/MSYS-1.0.9.exe?download 
>
>   http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe?download 
>
>  
> http://prdownloads.sf.net/mingw/gcc-core-3.3.1-20030804-1.tar.
gz?download

>
>
> Install these files in the same order as above. Accept the
> default locations. GCC-CORE-3.3.1-20038041.tar.gz' should be
> extracted into c:/mingw and overwrites the older version of gcc.
>
> When you are done, you should be able to start MSYS and a get the '$'
> prompt
> (customized for your machine name and your username, if active)
>
> To check the installation, type 'gcc -v' at the prompt.  If
> all was installed properly you should see:
>
>   gcc version 3.3.1 (mingw special 20030804-1)
>
>
> ------------------------------------------------
> ** IF INSTALLING ON WINDOWS VISTA **
> ** (see above if installing on WINDOWS XP) **
> ** (Thanks to Dan Raymond for this: **
> **
> http://readlist.com/lists/lists.sourceforge.net/mingw-msys/0/918.html)
> **
> ------------------------------------------------
>
> BUILD TOOLS
>
> Subject to the above warnings, it is usually a good idea to
> keep up to date with Mingw32 and MSYS.  Updates for various
> parts of these packages are available on the web site.
>
> (Alternative location for these files is [as of 6 July 08]:
>  http://www.mingw.org/download.shtml and download)
>
> Install these files in the same order as indicated below.  
> Accept the default locations.
>
>   http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download 
>
> When the following program opens a terminal window and asks
> permission to perform postinstall processing, press `n' and
> `enter' to abort the postinstall processing (otherwise, an
> error may occur and Vista will generate over 100 windows).  
>
>   http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download 
>
>   http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe?download 
>
> Open an MSYS window and type the following command (this will
> allow you to use the MSYS version of ftp instead of the
> Windows version of ftp
> subsequently):
>
> mv /bin/ftp /bin/ftp.old
>
> Copy the following files to c:\mingw
>
>  
> http://prdownloads.sf.net/mingw/binutils-2.14.90-20030612-1.ta
> r.gz?download
>
>
>  
> http://prdownloads.sf.net/mingw/gcc-core-3.3.1-20030804-1.tar.
gz?download

>
>
>   http://prdownloads.sf.net/mingw/mingw-runtime-3.14.tar.gz?download 
>
>   http://prdownloads.sf.net/mingw/w32api-3.11.tar.gz?download 
>
> Open an MSYS window and execute the following commands (The first four
>
> command lines below untar the archives and delete them while
> the last line sets up the mount point for mingw (you need to
> do this manually since you aborted the post install for MSYS).
>
> cd /c/mingw
> gzip -d *.gz
> find -name '*.tar' -exec tar -xvf {} \;
> rm *.tar
> echo 'C:/mingw /mingw' > /etc/fstab
>
>
> When you are done, you should be able to start MSYS and a get the '$'
> prompt
> (customized for your machine name and your username, if active).  
>
> To check the installation, type 'gcc -v' at the prompt.  If
> all was installed properly you should see the following.  (If
> not, something got missed along the way.  At this point,
> uninstall msysDTK, MSYS and MinGW through Windows'
> control panel and delete the c:\MinGW and c:\msys
> directories, reboot and reinstall following the procedure above.)
>
>   gcc version 3.3.1 (mingw special 20030804-1)
>
> ===============================================
> BUILDING GCL USING MSYS AS THE HOST
> ===============================================
>
> At the MSYS '$' prompt, change to your GCL source directory (for
> example):
>
>   cd /c/_cvs/gcl
>
> You are now ready to configure GCL:
>
> If you want to build the CLTL1 variant, type:
>
>   ./configure --prefix="c:/gcl" > configure.log 2>&1
>
> If you want to build the ANSI variant, type:
>
>   ./configure --prefix="c:/gcl" > --enable-ansi configure.log 2>&1
>
>   Change the prefix directory as required for your desired
> final installation
>   path.
>
> When configure is completed, enter the following command at
> the MinGW command line (the MSYS shell):
>
>    make >& make.log
>
> On my dual core 2.2GHz machine, the process takes about 10-12
> minutes.
> The
> "saved_gcl.exe" (or "saved_ansi_gcl.exe") should turn up eventually in
>
> the unixport directory (inside the \lib\gcl-x.x.x directory
> of the final installation directory).  
>
> You can try it out directly inside the MSYS shell by typing
> the following at the MSYS command prompt.
>
>
> For the CLtL1 version, type the following:
>
>   ./unixport/saved_gcl.exe
>
> For the ANSI version, type the following:
>
>   ./unixport/saved_ansi_gcl.exe
>
> To install, type the following at the MSYS command prompt:
>
>   make install >& install.log
>
> - The batch file "gclm.bat" can be used to make a Windows desktop
>   shortcut.  (NOTE: I have not been able to make this batch file work
> [djw])
>
> - BFD fasloading, Stratified Garbage Collection (SGC)
> readline and GCL-TK
>   don't work under Windows.  The configuration options above provide a
>   "traditional" GCL executable which will build the current
> CVS version of
>   Maxima.  The BFD option will depend on someone with
> knowledge of BFD and
>   PE-COFF linking fixing some problems with the BFD library -
> I am slowly
>   absorbing the info needed, but we really need input from an expert.
> My
>   inclination is to stick with custom relocation as BFD is
> less efficient.
>
> ===============================================
> INSTALLING GCL INFORMATION ACCESSIBLE FROM GCL INTERPRETER
> ===============================================
>
> Download "gcl.info.tgz" from ftp://ftp.gnu.org/pub/gnu/gcl/
>
> Make the following directory path and unpack the downloaded file into
>
> C:\usr\local\gnu\info
>
> ===============================================
> RUNNING GCL
> ===============================================
>
> You can move the final installation folder (for example,
> "GCL-2.6.7-ANSI")
> anywhere on your hard drive (typically, c:\program files).
>
> Create a shortcut to the executable (either "saved_gcl.exe" or
> "saved_ansi_gcl.exe") and assign to it the icon located in
> the \bin directory.
>
> You can then move the shortcut to anywhere (the 'Start' menu
> or your 'Quick Launch' menu).  Double click the icon to launch GCL.
>
> ===============================================
> CONFIGURE GCL TO RUN IN INFERIOR MODE UNDER EMACS
> ===============================================
>
> Follow directions provided by Gordon Novak Jr. at:
>
> http://www.cs.utexas.edu/users/novak/gclwin.html 
>
>
> ===============================================
> Original setup and configuration directions by Mike Thomas,
> 15 Jun 2004.
>
> Updates and modifications by Don Winiecki, 1:06 PM 01 Jan
> 2008, using details provided by Mike Thomas, Camm Maguire,
> Gaby Dos Reis, and Gordon Novak Jr.  
> (http://lists.gnu.org/archive/html/axiom-developer/2003-10/msg
00227.html)

>
> Updates for setup on MS-Vista by Don Winiecki, 12:40PM 06 Jul
> 2008, using information provided by Dan Raymond.
>
> ------
> ------
>
> >>> "Billinghurst, David (RTATECH)" <David.Billinghurst@...>
> 2/23/2009 2:30:00 PM >>>
> > Subject: [Gcl-devel] New members
> >
> > Greetings, and welcome to the gcl development team!
> >
> > Donald, your area would clearly seem to be the maintenance of the
> > mingw port, unless you have other interests.  This is a fairly
> > contained area.  I feel comfortable giving you wide
> latitude in this
> > regard, primarily because I have no familiarity with these
> systems :-)
> > Please let me know if you're interested in anything else as well.
>
> Donald,
>
> I also have an interest in gcl on mingw, as we use it to
> build maxima.  I don't have a lot of time at present but I am
> happy to test stuff if you want a second opinion.
>
> David Billinghurst
>
> This email is confidential and may also be privileged.  If
> you are not the intended recipient, please notify us
> immediately and delete this message from your system without
> first printing or copying it. Any personal data in this email
> (including any attachments) must be handled in accordance
> with the Rio Tinto Group Data Protection Policy and all
> applicable data protection laws.
>
> >>> "Billinghurst, David (RTATECH)" <David.Billinghurst@...>
> 2/23/2009 2:30:00 PM >>>
> > Subject: [Gcl-devel] New members
> >
> > Greetings, and welcome to the gcl development team!
> >
> > Donald, your area would clearly seem to be the maintenance of the
> > mingw port, unless you have other interests.  This is a fairly
> > contained area.  I feel comfortable giving you wide
> latitude in this
> > regard, primarily because I have no familiarity with these
> systems :-)
> > Please let me know if you're interested in anything else as well.
>
> Donald,
>
> I also have an interest in gcl on mingw, as we use it to
> build maxima.  I don't have a lot of time at present but I am
> happy to test stuff if you want a second opinion.
>
> David Billinghurst
>
> This email is confidential and may also be privileged.  If
> you are not the intended recipient, please notify us
> immediately and delete this message from your system without
> first printing or copying it. Any personal data in this email
> (including any attachments) must be handled in accordance
> with the Rio Tinto Group Data Protection Policy and all
> applicable data protection laws.
>
>


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel

Re: Building gcl on windows

by Donald Winiecki :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks Dave!  I'll update the build instructions to accommodate the different angles you've taken.  My list is getting kind of long so it may take a bit to get things up to the program level.

Best,

_don


On Sat, Mar 28, 2009 at 11:55 PM, David (RTATECH) Billinghurst <David.Billinghurst@...> wrote:
Don,

I have just built gcl on a clean Windows XP system.  I agree that
the gcc and binutils versions given are essential.

My setup is similar to your description.  The main differences are:
 - I have used MSYS-1.0.10.exe
 - I use cygwin cvs to get gcl
 - I build and install a recent gmp, rather than use the older version
in
  the gcl tree.  This save some time in the long run, as I don't have
to
  re-build gmp when I build gcl.

1. Install MinGW and MSYS as you describe, although I used
MSYS-1.0.10.exe

MinGW-3.1.0-1.exe
MSYS-1.0.10.exe
msysDTK-1.0.1.exe
mingw-runtime-3.14.tar.gz
gcc-core-3.3.1-20030804-1.tar.gz
binutils-2.14.90-20030612-1.tar.gz
w32api-3.11.tar.gz


2. Download gcl CVS.

I used CVS under cygwin, then copied the files.


3. Build and install gmp-4.2.4 under msys.

Download gmp-4.2.4.tar.bz2 from http://www.gmplib.org/
tar xjf gmp-4.2.4.tar.bz2
cd gmp-4.2.4
/configure --enable-static --disable-shared --disable-cxx --enable-fat
make
make check
make install


4. Build and install gcl using recently built gmp

cd gcl-2.6.8pre
/configure --enable-ansi --enable-dynsysgmp --enable-readine
make
make install


5.  The installed gcl will build maxima (although additional setup
is required for this).



> -----Original Message-----
> From: Donald Winiecki [mailto:DWINIECKI@...]
> Sent: Tuesday, 24 February 2009 15:42
> To: Billinghurst, David (RTATECH)
> Cc: GCL Development
> Subject: RE: [Gcl-devel] New members
>
> Thanks David!  As I suspect we're all stretched I'll do my
> best to be protective of your time.
>
> Having said that, I would like to ask a question now.  I have
> prototyped directions for building CGL on both WinXP and
> Vista.  Each works for me on my various machines, but I'm not
> sure if my setups are consistent with others.
>
> If you get a chance, please run through my prototype
> directions below and let me know if this works.  If you're
> not able to get to this that's fine.  Time will come
> eventually when someone else gives it a try and lets me know!
>
> Best,
>
> _don winiecki
>
> ------
> ------
>
> ===============================================
> BUILDING NATIVE WIN32 GNU COMMON LISP FROM CVS
> ===============================================
>
> The preferred build host system for the Mingw32 compiler is MSYS.
>
> I use gcc version 3.3.1 and binutils 2.14.90, but earlier
> versions of gcc back to 2.95 are OK provided that you remove
> the "-fno-zero-initialized-in-bss" flag in "h/mingw.defs"
> before running "configure".
>
> Note that gcc 3.3.3 and gcc 3.4.0 do NOT work; likewise
> binutils 2.13.90 and 2.15.90.
>
> The working binutils version can be found at:
>
> http://gd.tuwien.ac.at/gnu/mingw/binutils-2.14.90-20030612-1.tar.gz
>
> ===============================================
> INSTALL AND CONFIGURE TORTOISE CVS
> ===============================================
>
> Download Tortoise CVS from:  http://www.tortoisecvs.org/
>
> After downloading, install Tortoise CVS and included
> programs, accepting default installation directories.
>
> ===============================================
> DOWNLOAD CVS FOR GCL
> ===============================================
>
> Choose a directory to which you will download (check out) of
> the GCL CVS (I created c:\_cvs).
>
> Enter the directory created and right click.  The context
> menu will show `CVS checkout' as a context menu itemu.
>
> Choose the 'CVS checkout' context menu item.  You should be
> presented with a dialogue box titled 'TortoiseCVS-Checkout Module'.
>
> Under the 'Module' tab, enter the following:
>
> For Protocol, enter
>
>      :pserver
>
> For `server', enter
>
>     cvs.savannah.gnu.org
>
> For `Repository folder', enter
>
>     /sources/gcl
>
> For `User name', enter
>
>      anonymous
>
> On the right side of the dialog box, for `Module', enter
>
>      gcl
>
> Under the 'Revision' tab:
>
> Select the 'Choose branch or tag' radio button
>
> Select the 'Update list...' button
>
> Open the 'Branch or tag name:' drop down list and select the
> version you want to build
>
> Under the 'Options' tab:
>
> Select the `Export - for making a software release' radio button
>
> Check the `Use UNIX line ending' box
>
> Choose the 'Enter your own folder name' radio button
>
> In the 'Custom folder name:' field, enter the name of the
> folder you desire to be created (for example, 'gcl-2.6.7' to
> match the version to be
> built)
>
> Now, click again on `Module' tab. Click on OK.  You should
> see that tortoise CVS is checking out GCL from CVS repo.
>
>
> More information on CVS access is available here
>
>    http://savannah.gnu.org/cvs/?group=gcl
>
>
> ================================================
> INSTALLING BUILD TOOLS (MinGW, MSYS)
> ================================================
>
> ------------------------------------------------
> ** IF INSTALLING ON WINDOWS XP **
> ** (see below if installing on WINDOWS VISTA) **
> ------------------------------------------------
>
> BUILD TOOLS
>
> Subject to the above warnings, it is usually a good idea to
> keep up to date with Mingw32 and MSYS.  Updates for various
> parts of these packages are available on the web site.
>
> Go to http://www.mingw.org/download.shtml and download
>
>   http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download
>
>   http://prdownloads.sf.net/mingw/MSYS-1.0.9.exe?download
>
>   http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe?download
>
>
> http://prdownloads.sf.net/mingw/gcc-core-3.3.1-20030804-1.tar.
gz?download

>
>
> Install these files in the same order as above. Accept the
> default locations. GCC-CORE-3.3.1-20038041.tar.gz' should be
> extracted into c:/mingw and overwrites the older version of gcc.
>
> When you are done, you should be able to start MSYS and a get the '$'
> prompt
> (customized for your machine name and your username, if active)
>
> To check the installation, type 'gcc -v' at the prompt.  If
> all was installed properly you should see:
>
>   gcc version 3.3.1 (mingw special 20030804-1)
>
>
> ------------------------------------------------
> ** IF INSTALLING ON WINDOWS VISTA **
> ** (see above if installing on WINDOWS XP) **
> ** (Thanks to Dan Raymond for this: **
> **
> http://readlist.com/lists/lists.sourceforge.net/mingw-msys/0/918.html)
> **
> ------------------------------------------------
>
> BUILD TOOLS
>
> Subject to the above warnings, it is usually a good idea to
> keep up to date with Mingw32 and MSYS.  Updates for various
> parts of these packages are available on the web site.
>
> (Alternative location for these files is [as of 6 July 08]:
>  http://www.mingw.org/download.shtml and download)
>
> Install these files in the same order as indicated below.
> Accept the default locations.
>
>   http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download
>
> When the following program opens a terminal window and asks
> permission to perform postinstall processing, press `n' and
> `enter' to abort the postinstall processing (otherwise, an
> error may occur and Vista will generate over 100 windows).
>
>   http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download
>
>   http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe?download
>
> Open an MSYS window and type the following command (this will
> allow you to use the MSYS version of ftp instead of the
> Windows version of ftp
> subsequently):
>
> mv /bin/ftp /bin/ftp.old
>
> Copy the following files to c:\mingw
>
>
> http://prdownloads.sf.net/mingw/binutils-2.14.90-20030612-1.ta
> r.gz?download
>
>
>
> http://prdownloads.sf.net/mingw/gcc-core-3.3.1-20030804-1.tar.
gz?download

>
>
>   http://prdownloads.sf.net/mingw/mingw-runtime-3.14.tar.gz?download
>
>   http://prdownloads.sf.net/mingw/w32api-3.11.tar.gz?download
>
> Open an MSYS window and execute the following commands (The first four
>
> command lines below untar the archives and delete them while
> the last line sets up the mount point for mingw (you need to
> do this manually since you aborted the post install for MSYS).
>
> cd /c/mingw
> gzip -d *.gz
> find -name '*.tar' -exec tar -xvf {} \;
> rm *.tar
> echo 'C:/mingw /mingw' > /etc/fstab
>
>
> When you are done, you should be able to start MSYS and a get the '$'
> prompt
> (customized for your machine name and your username, if active).
>
> To check the installation, type 'gcc -v' at the prompt.  If
> all was installed properly you should see the following.  (If
> not, something got missed along the way.  At this point,
> uninstall msysDTK, MSYS and MinGW through Windows'
> control panel and delete the c:\MinGW and c:\msys
> directories, reboot and reinstall following the procedure above.)
>
>   gcc version 3.3.1 (mingw special 20030804-1)
>
> ===============================================
> BUILDING GCL USING MSYS AS THE HOST
> ===============================================
>
> At the MSYS '$' prompt, change to your GCL source directory (for
> example):
>
>   cd /c/_cvs/gcl
>
> You are now ready to configure GCL:
>
> If you want to build the CLTL1 variant, type:
>
>   ./configure --prefix="c:/gcl" > configure.log 2>&1
>
> If you want to build the ANSI variant, type:
>
>   ./configure --prefix="c:/gcl" > --enable-ansi configure.log 2>&1
>
>   Change the prefix directory as required for your desired
> final installation
>   path.
>
> When configure is completed, enter the following command at
> the MinGW command line (the MSYS shell):
>
>    make >& make.log
>
> On my dual core 2.2GHz machine, the process takes about 10-12
> minutes.
> The
> "saved_gcl.exe" (or "saved_ansi_gcl.exe") should turn up eventually in
>
> the unixport directory (inside the \lib\gcl-x.x.x directory
> of the final installation directory).
>
> You can try it out directly inside the MSYS shell by typing
> the following at the MSYS command prompt.
>
>
> For the CLtL1 version, type the following:
>
>   ./unixport/saved_gcl.exe
>
> For the ANSI version, type the following:
>
>   ./unixport/saved_ansi_gcl.exe
>
> To install, type the following at the MSYS command prompt:
>
>   make install >& install.log
>
> - The batch file "gclm.bat" can be used to make a Windows desktop
>   shortcut.  (NOTE: I have not been able to make this batch file work
> [djw])
>
> - BFD fasloading, Stratified Garbage Collection (SGC)
> readline and GCL-TK
>   don't work under Windows.  The configuration options above provide a
>   "traditional" GCL executable which will build the current
> CVS version of
>   Maxima.  The BFD option will depend on someone with
> knowledge of BFD and
>   PE-COFF linking fixing some problems with the BFD library -
> I am slowly
>   absorbing the info needed, but we really need input from an expert.
> My
>   inclination is to stick with custom relocation as BFD is
> less efficient.
>
> ===============================================
> INSTALLING GCL INFORMATION ACCESSIBLE FROM GCL INTERPRETER
> ===============================================
>
> Download "gcl.info.tgz" from ftp://ftp.gnu.org/pub/gnu/gcl/
>
> Make the following directory path and unpack the downloaded file into
>
> C:\usr\local\gnu\info
>
> ===============================================
> RUNNING GCL
> ===============================================
>
> You can move the final installation folder (for example,
> "GCL-2.6.7-ANSI")
> anywhere on your hard drive (typically, c:\program files).
>
> Create a shortcut to the executable (either "saved_gcl.exe" or
> "saved_ansi_gcl.exe") and assign to it the icon located in
> the \bin directory.
>
> You can then move the shortcut to anywhere (the 'Start' menu
> or your 'Quick Launch' menu).  Double click the icon to launch GCL.
>
> ===============================================
> CONFIGURE GCL TO RUN IN INFERIOR MODE UNDER EMACS
> ===============================================
>
> Follow directions provided by Gordon Novak Jr. at:
>
> http://www.cs.utexas.edu/users/novak/gclwin.html
>
>
> ===============================================
> Original setup and configuration directions by Mike Thomas,
> 15 Jun 2004.
>
> Updates and modifications by Don Winiecki, 1:06 PM 01 Jan
> 2008, using details provided by Mike Thomas, Camm Maguire,
> Gaby Dos Reis, and Gordon Novak Jr.
> (http://lists.gnu.org/archive/html/axiom-developer/2003-10/msg
00227.html
)
>
> Updates for setup on MS-Vista by Don Winiecki, 12:40PM 06 Jul
> 2008, using information provided by Dan Raymond.
>
> ------
> ------
>
> >>> "Billinghurst, David (RTATECH)" <David.Billinghurst@...>
> 2/23/2009 2:30:00 PM >>>
> > Subject: [Gcl-devel] New members
> >
> > Greetings, and welcome to the gcl development team!
> >
> > Donald, your area would clearly seem to be the maintenance of the
> > mingw port, unless you have other interests.  This is a fairly
> > contained area.  I feel comfortable giving you wide
> latitude in this
> > regard, primarily because I have no familiarity with these
> systems :-)
> > Please let me know if you're interested in anything else as well.
>
> Donald,
>
> I also have an interest in gcl on mingw, as we use it to
> build maxima.  I don't have a lot of time at present but I am
> happy to test stuff if you want a second opinion.
>
>       David Billinghurst
>
> This email is confidential and may also be privileged.  If
> you are not the intended recipient, please notify us
> immediately and delete this message from your system without
> first printing or copying it. Any personal data in this email
> (including any attachments) must be handled in accordance
> with the Rio Tinto Group Data Protection Policy and all
> applicable data protection laws.
>
> >>> "Billinghurst, David (RTATECH)" <David.Billinghurst@...>
> 2/23/2009 2:30:00 PM >>>
> > Subject: [Gcl-devel] New members
> >
> > Greetings, and welcome to the gcl development team!
> >
> > Donald, your area would clearly seem to be the maintenance of the
> > mingw port, unless you have other interests.  This is a fairly
> > contained area.  I feel comfortable giving you wide
> latitude in this
> > regard, primarily because I have no familiarity with these
> systems :-)
> > Please let me know if you're interested in anything else as well.
>
> Donald,
>
> I also have an interest in gcl on mingw, as we use it to
> build maxima.  I don't have a lot of time at present but I am
> happy to test stuff if you want a second opinion.
>
>       David Billinghurst
>
> This email is confidential and may also be privileged.  If
> you are not the intended recipient, please notify us
> immediately and delete this message from your system without
> first printing or copying it. Any personal data in this email
> (including any attachments) must be handled in accordance
> with the Rio Tinto Group Data Protection Policy and all
> applicable data protection laws.
>
>


_______________________________________________
Gcl-devel mailing list
Gcl-devel@...
http://lists.gnu.org/mailman/listinfo/gcl-devel