gcl-devel
[Top][All Lists]
Advanced

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

Re: [Gcl-devel] Re: [Maxima] Compilation problems with latest maxima


From: Camm Maguire
Subject: Re: [Gcl-devel] Re: [Maxima] Compilation problems with latest maxima
Date: 29 Sep 2002 23:37:48 -0400

Hi Vadim!

"Vadim V. Zhytnikov" <address@hidden> writes:

> Thank you for explanation!
> 
> Just one suggestion.  Now make install
> installs cmpinclude.h into <libdir>/gcl-<ver>/h.
> But in present setup this file is useless unless
> user don't make appropriate export C_INCLUDE_PATH
> So maybe install should take care of it
> and insert
>    export C_INCLUDE_PATH=<libdir>/gcl-<ver>/h
> into gcl wrapper script automatically?
> 

Done!  Thanks for the suggestion!

Take care, 


> Camm Maguire ÐÉÛÅÔ:
> > Hi Vadim!
> > 
> > In short, one needs cmpinclude.h on the system if cone compiles with
> > :system-p turned on.   This in turn is necessary if the initialization
> > routine is to be uniquely named, i.e. not init_code in every file.
> > This in turn is required if one is to link the .o files using ld into
> > the text section of the executable as opposed to loading the .o into
> > the lisp core with 'load' and dumping the image with save-system.
> > This in turn i required if one uses dlopen instead of bfd for
> > relocations.  This in turn is currently required on 5 of the 11 Debian
> > architectures until we get a bfd patch.
> > 
> > In principle, we could rework :system-p to put cmpinclude.h in
> > explicitly as well, but this has not been done yet.  Should not be an
> > issue in any case, even if you don't install the gcl build -- just set
> > 'export C_INCLUDE_PATH=<gcl source>/h'
> > 
> > Take care,
> > 
> > "Vadim V. Zhytnikov" <address@hidden> writes:
> > 
> > 
> >>Hi Camm!
> >>
> >>Actually you are not quite right about cmpinclude.h.
> >>In general this file it is not required by GCL.
> >>GCL has built-in variable compiler::*cmpinclude-string*
> >>which holds text of cmpinclude.h.  If this variable is
> >>not NIL then compiler inserts it explicitly
> >>in every foo.c generated by (compile-file "foo.lisp").
> >>And only if compiler::*cmpinclude-string* is NIL then
> >>compiler inserts usual #include and you _must_ have
> >>cmpinclude.h in the include path.
> >>
> >>Older version of GCL 2.5.0 worked fine to me without
> >>any cmpinclude.h installed. But somewhere in August I
> >>also start getting the problem with building
> >>Maxima with GCL CVS.  If I take sloop.lisp
> >>from maxima/src directory, start gcl
> >>and make (compile-file "sloop.lisp")
> >>then everything goes just fine.  I see that
> >>very large sloop.c explicitly containing
> >>cmpinclude.h text in the beginning.
> >>But due to unknown reason if I try to
> >>build Maxima with the same GCL then
> >>sloop.c contains #include <cmpinclude.h>
> >>I don't know why yet.
> >>
> >>
> >>Camm Maguire ÐÉÛÅÔ:
> >> > Greetings!
> >> >
> >> > 1) cmpinclude.h is generated by the gcl build process.  If you then do
> >> >    'make install', it should be installed along with the other files
> >> >    where your compiler can find it.
> >> >
> >> > 2) old versions are not likely to have the same function/variable
> >> >    definitions in all cases, as cvs gcl is under development.
> >> >
> >> > 3) If you don't want to bother installing libbfd et. al., gcl now
> >> >    ships with its own local version.  Check out the options with
> >> >    ../configure --help.  --disable-statsysbfd disables the search for
> >> >    a static bfd lib for relocations.  --enable-locbfd uses the local
> >> >    bfd source.  There is also --enable-custreloc for the old hand
> >> >    tuned version, --enable-dynsysbfd for a shared bfd lib on your
> >> >    system, and --enable-dlopen.  Likewise, an external gmp lib can be
> >> >    used with --enable-dynsysgmp.
> >> >
> >> > 4) The idea is that you *install* your gcl build, then build maxima
> >> >    without reference to the gcl source tree.  If you don't want to do
> >> >    that, you can still direct the maxima build to the right places in
> >> >    the (built) gcl source tree with 'export PATH=<gcl source>bin:$PATH
> >> >    ; export C_INCLUDE_PATH=<gcl source/h'.
> >> >
> >> > Take care,
> >> >
> >> > Valerij Pipin <"address@hidden, pip"@iszf.irk.ru> writes:
> >> >
> >> >
> >> >>Hello,
> >> >>Something is going wrong for me... I did not find "cmpinclude.h" 
> >>nether in the latest gcl-cvs nor in gcl-2.4.3.tgz.
> >> >>Fortunately, I have the copy of the old version of cvs-gcl made in 
> >>August where I found this  cmpinclude.h.
> >> >>I put it in /usr/include and tried to compile maxima. The number of 
> >>errors is much less then before but still
> >> >>I have
> >> >>Compiling sloop.lisp.
> >> >>; (DEFUN FIRST-SLOOP-FOR ...) is being compiled.
> >> >>;; The variable *LOOP-INCREMENT* is undefined.
> >> >>;; The compiler will assume this variable is a global.
> >> >>End of Pass 1.
> >> >>End of Pass 2.
> >> >>sloop.c: In function `L30':
> >> >>sloop.c:2088: called object is not a function
> >> >>sloop.c: In function `L65':
> >> >>sloop.c:4964: called object is not a function
> >> >>sloop.c:4978: called object is not a function
> >> >>
> >> >>Error: (SYSTEM "(cd binary-gcl/ ;kgcc -pipe -fwritable-strings 
> >>-DVOL=volatile -I/usr/src/RPM/BUILD/gcl-2.5.0/o -fsigned-char -Wall 
> >>-O4 -c sloop.c -w)") returned a non-zero value 0.
> >> >>Fast links are on: do (si::use-fast-links nil) for debugging
> >> >>Error signalled by UNLESS.
> >> >>Broken at CERROR.  Type :H for Help.
> >> >>SLOOP>>
> >> >>
> >> >>rgds,
> >> >>Valerij.
> >> >>
> >> >>PS I've succefully build the latest cvs-gcl on my linux-duron  after 
> >>updating the binutils libbfd and liberty to the latest versions.
> >> >>
> >> >>On 20 Sep 2002 20:35:32 -0400
> >> >>Camm Maguire <address@hidden> wrote:
> >> >>
> >> >>
> >> >>>Greetings!  The gcl/maxima build has been reworked so that one does
> >> >>>not need the source tree any longer to build maxima.  this of course
> >> >>>then assumes that one has installed the gcl package.  Doing so
> >> >>>installs the cmpinclude.h file in your system include directory.  If
> >> >>>you want to build maxima from an uninstalled gcl source tree, just set
> >> >>>the C_INCLUDE_PATH environment variable to <gcl tree path>/h.
> >> >>>
> >> >>>Gcl issues to address@hidden, please.  Almost missed this one.
> >> >>>
> >> >>>take care,
> >> >>>
> >> >>>Valerij Pipin <address@hidden> writes:
> >> >>>
> >> >>>
> >> >>>>On 19 Sep 2002 14:34:41 -0500
> >> >>>>Jay Belanger <address@hidden> wrote:
> >> >>>>
> >> >>>>
> >> >>>>>When I try compiling the latest cvs Maxima with the latest cvs gcl, I
> >> >>>>>get an error complaining about a missing file cmpinclude.h.
> >> >>>>>(The error message is at the end of this letter.)
> >> >>>>>I get the same problem with gcl-2.4.3, but not with an earlier cvs
> >> >>>>>maxima I was using, and not with clisp.
> >> >>>>>(Everything was compiled with gcc-3.2.)
> >> >>>>>Is this a local problem, or has anyone else come across it?
> >> >>>>>
> >> >>>>>Jay
> >> >>>>>
> >> >>>>
> >> >>>>Yes, I confirm this. I have the same error messages and there were 
> >>no such errors with clisp and cmucl.
> >> >>>>In addition, I tried gcc-2.96 and kgcc with the same effect.
> >> >>>>
> >> >>>>I have another problem with building the latest cvs-gcl itself. 
> >>Though I compiled it on Linux-P3,
> >> >>>>I was not able to do it on Linux-Duron750. The problem is with bfd 
> >>routines.
> >> >>>>The error remains if I change the configure options to 
> >>--disable-bfd --host=i586-linux-gnu.
> >> >>>>The building gcl-2.4.3 is OK on both systems.
> >> >>>>
> >> >>>>Valerij.
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>>~ $ cd maxima
> >> >>>>>~/maxima $ ./bootstrap
> >> >>>>>+ aclocal
> >> >>>>>+ automake --add-missing --copy
> >> >>>>>configure.in: installing `./install-sh'
> >> >>>>>configure.in: installing `./mkinstalldirs'
> >> >>>>>configure.in: installing `./missing'
> >> >>>>>configure.in:6: installing `./config.guess'
> >> >>>>>configure.in:6: installing `./config.sub'
> >> >>>>>+ autoconf
> >> >>>>>~/maxima $ ./configure --enable-gcl
> >> >>>>>[Much deleted, no complaints from configure]
> >> >>>>>
> >> >>>>>Summary:
> >> >>>>>GCL enabled. Executable name gcl
> >> >>>>>default lisp: gcl
> >> >>>>>~/maxima $ make
> >> >>>>>Making all in src
> >> >>>>>make[1]: Entering directory `/home/belanger/maxima/src'
> >> >>>>>test -d binary-gcl || mkdir binary-gcl
> >> >>>>>test -d binary-gcl/numerical || mkdir binary-gcl/numerical
> >> >>>>>test -d binary-gcl/numerical/slatec || mkdir 
> >>binary-gcl/numerical/slatec
> >> >>>>>LISPTYPE=gcl ; export LISPTYPE ;\
> >> >>>>>GCL=gcl ; export GCL ;\
> >> >>>>>/home/belanger/maxima/lisp-utils/maxima-run-lisp \
> >> >>>>>        -x '(load 
> >>"/home/belanger/maxima/lisp-utils/defsystem.lisp")(funcall (intern 
> >>"OPERATE-ON-SYSTEM" :mk) "maxima" :compile :verbose t)' && \
> >> >>>>>        /home/belanger/maxima/lisp-utils/maxima-run-lisp \
> >> >>>>>        -x '(load 
> >>"/home/belanger/maxima/lisp-utils/defsystem.lisp")(funcall (intern 
> >>"OPERATE-ON-SYSTEM" :mk) "maxima" :load :verbose t)' \
> >> >>>>>         -d binary-gcl/maxima
> >> >>>>>gcl -batch -eval (let ((argv '())) (declare (ignorable argv)) 
> >>(progn (load "/home/belanger/maxima/lisp-utils/defsystem.lisp")(funcall 
> >>(intern "OPERATE-ON-SYSTEM" :mk) "maxima" :compile :verbose t)) (values))
> >> >>>>>
> >> >>>>>Warning: REQUIRE is being redefined.
> >> >>>>>;  - Compiling defsystem "maxima"
> >> >>>>>;    - Loading module "package"
> >> >>>>>;      - Loading source file "maxima-package.lisp"
> >> >>>>>Loading maxima-package.lisp
> >> >>>>>Finished loading maxima-package.lisp
> >> >>>>>
> >> >>>>>;    - Compiling module "info"
> >> >>>>>;    - Compiling module "sloop"
> >> >>>>>;      - Compiling source file "sloop.lisp"
> >> >>>>>Compiling sloop.lisp.
> >> >>>>>; (DEFUN FIRST-SLOOP-FOR ...) is being compiled.
> >> >>>>>;; The variable *LOOP-INCREMENT* is undefined.
> >> >>>>>;; The compiler will assume this variable is a global.
> >> >>>>>End of Pass 1.
> >> >>>>>End of Pass 2.
> >> >>>>>sloop.c:2:24: cmpinclude.h: No such file or directory
> >> >>>>>sloop.c: In function `init_sloop':
> >> >>>>>sloop.c:4: `object' undeclared (first use in this function)
> >> >>>>>sloop.c:4: (Each undeclared identifier is reported only once
> >> >>>>>sloop.c:4: for each function it appears in.)
> >> >>>>>sloop.c:4: parse error before ')' token
> 
> 
> -- 
>       Vadim V. Zhytnikov
> 
>        <address@hidden>
>       <address@hidden>
>       <address@hidden>
>      <address@hidden>
> 
> 
> 
> 
> 

-- 
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]