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: Vadim V. Zhytnikov
Subject: Re: [Gcl-devel] Re: [Maxima] Compilation problems with latest maxima
Date: Sun, 29 Sep 2002 23:08:38 +0300
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.0.0) Gecko/20020526

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?

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>







reply via email to

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