gcl-devel
[Top][All Lists]
Advanced

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

Re: [Gcl-devel] Re: gcl-2.6.8


From: Camm Maguire
Subject: Re: [Gcl-devel] Re: gcl-2.6.8
Date: Fri, 13 Aug 2010 22:03:22 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

Greetings!

Gabriel Dos Reis <address@hidden> writes:

> Hi Camm,
>
> Camm Maguire <address@hidden> writes:
>
> | Greetings!
> | 
> | OK, I've committed an immediate fix to your compiler link problem.  I
> | don't know how this ever worked on windows, but gcl needs to figure
> | out the init name for each lisp .o passed to compiler link, and this
> | simply failed with an unsupported error.
>
> Ah!  I've attached to this mail the OpenAxiom build log with a trace of
> SYSTEM.  The build still fails at the same point.  However, I do not see
> anything obviously wrong with call to SYSTEM.
>
> Here are some facts:
>   (1) the executable base-lisp.exe created with SAVE properly works.
>
>   (2) we use base-lisp.exe to create a new image lisp.exe that contains 
>       all our C functions, theough COMPILER::LINK.  An 'executable'
>       lisp.exe is created.  But it does not seem to be doing anything at
>       all.  Also, I find it bizarre that its size is far less than that
>       of base-lisp.exe:
>
> $ ls -l src/lisp/*.exe
> -rwxr-xr-x 1 gdr Administrators 10428312 Aug  7 10:02 src/lisp/base-lisp.exe
> -rwxr-xr-x 1 gdr Administrators  4728040 Aug  7 10:02 src/lisp/lisp.exe
> -rwxr-xr-x 1 gdr Administrators   525884 Aug  7 10:02 
> src/lisp/raw_lisp_map.exe
> -rwxr-xr-x 1 gdr Administrators    19232 Aug  7 10:02 src/lisp/rsym.exe

This specifically I think should be fixed now, but maybe not.
Feedback most appreciated.

Take care,

>  
> | Separately, we have a number of wine path issues to work out.
> | 
> | It is useful to build under wine, and I'd like the tree to do this
> | transparently.  In order to do this, all executables but one are built
> | with mingw compilers, the exception being unixport/msys.  
> | 
> | I had this originally to get around a global CC setting:
> | 
> |     PATH=/usr/bin:$$PATH cc $< -o $@ # Unix binary if running wine
> | 
> | but Don' system had no cc, so I replaced with
> | 
> |     PATH=/usr/bin:$$PATH $(CC) $< -o $@ # Unix binary if running wine
> | 
> | now, which defeats the wine purpose, as $(CC) picks up the mingw
> | compiler.
>
> Do you have a list of the executables that need to be built with the
> host compiler, and the one that needs to be built with the target compiler?
> It is true that under msys/mingw there is no 'cc';  Only 'gcc' (or some
> other variants for cross-compilation.)
>
> | Secondly, to build under wine, all pathnames passed through system
> | need to be absolute.  The standard gcl 'compile and 'compile-file do
> | this automatically.  Likewise, link can easily handle the files list
> | argument, and the destination executable, etc.  But the files in
> | extra-libs have to be parsed as a string, and distinctions made
> | between genuine files and options like -lm.  
>
> Hardcoding absolute path for OpenAxiom itself has proved to create lot
> of troubles (the same is true for FriCAS, and probaly Tim's Axiom I think.)
> So, we use path relative to the final installation directory (which is
> absolute of course.)  The relative paths make it possible to:
>   (1) build and test in the build directory
>   (2) install and run from final directory
>   (3) possibly moving the entire system around -- this is useful for some
>       people who want to move the system to USB keys, etc.
>
>
> | You also redirect compiler::*cc* to libtool.  This might work, but
> | again the path needs to be absolute for wine testing.
>
> Ideally we would like to use libtool for linking purposes (that is what
> we do with Lisps that support dynamic linking) as it takes care of lots
> of platform dependency stuff for us.  However, on msys/mingw it is not
> used at all (as you can see from the Makefile and the build.log attached
> to this message.)  I will install wine and see what is going wrong there.
>
> | Finally, your axiom configure does not propagate the CC setting, so
> | bsdsignal etc are compiled as elf by the normal system gcc.
>
> That is odd.  I'll look into that and update you.  I believe it is just
> a cross-compilation issue.  Apparently the current build assumes a
> native build, whereas when you use wine you are doing a cross-compilation.
> It should not be hard to fix that -- I know OpenAxiom's build system was
> originally designed to support cross-compilation; so I think this should
> be easy to fix.
>
> In the build.log below, do you spot anything obviously wrong with the
> invokation of COMPILER::LINK?
>
> Thanks!
>
> -- Gaby
>
> gcl -batch \
>               -eval '(progn (compile-file "core.lisp") (quit))'
>
> Compiling core.lisp.
> End of Pass 1.  
>
> ;; Note: Tail-recursive call of |processCommandLine| was replaced by 
> iteration.
> ;; Note: Tail-recursive call of |processCommandLine| was replaced by 
> iteration.
> ;; Note: Tail-recursive call of DO-IMPORT-MODULE was replaced by iteration.
> End of Pass 2.  
> OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3
> Finished compiling core.lisp.
> gcl \
>               -eval '(load "core")' \
>               -eval '(|AxiomCore|::|link| "base-lisp.exe" (quote nil) 
> "|AxiomCore|::|topLevel|")'
> GCL (GNU Common Lisp)  2.6.8 CLtL1    Aug  6 2010 11:40:11
> Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
> Binary License:  GPL due to GPL'ed components: (UNEXEC)
> Modifications of this banner must retain notice of a compatible license
> Dedicated to the memory of W. Schelter
>
> Use (help) to get some basic information on how to use GCL.
> Temporary directory for compiler files set to ../../build/i686-pc-mingw32/
> Warning: SYSTEM is being redefined.d=`echo "(format nil \"~a\" 
> si::*system-directory*)" | gcl | grep "/gcl.*/" | sed -e "s,\",,g"`; cp 
> $d/rsym.exe .
> echo '(let* ((sys-cc compiler::*cc*) ' \
>            '      (sys-ld compiler::*ld*) ' \
>            '      (compiler::*cc* (concatenate (quote string) ' \
>            '                                   ""    ' \
>            '                                   sys-cc))       ' \
>            '      (compiler::*ld* (concatenate (quote string) ' \
>            '                                   ""    ' \
>            '                                   sys-ld)))       ' \
>              '(compiler::link (quote ("core.lisp")) "lisp.exe" ' \
>              ' (format nil "(progn (let ((*load-path* (cons ~S *load-path*))'\
>                                         ' (si::*load-types* ~S)))' \
>                                   ' (when (fboundp (quote si::sgc-on))' \
>                                         ' (si::sgc-on nil))' \
>                                 ' (setq si::*top-level-hook* 
> (read-from-string \"|AxiomCore|::|topLevel|\")))"' \
>                       ' si::*system-directory* (quote (list ".lsp")))' \
>                '  "./../../src/lib/bsdsignal.o ./../../src/lib/cfuns-c.o 
> ./../../src/lib/sockio-c.o -lwsock32 -lm"))' \
>             | ./base-lisp.exe
> GCL (GNU Common Lisp)  2.6.8 CLtL1    Aug  6 2010 11:40:11
> Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
> Binary License:  GPL due to GPL'ed components: (UNEXEC)
> Modifications of this banner must retain notice of a compatible license
> Dedicated to the memory of W. Schelter
>
> Use (help) to get some basic information on how to use GCL.
> Temporary directory for compiler files set to ../../build/i686-pc-mingw32/
>
> AxiomCore>
>   1> (SYSTEM "gcc -c -Wall -DVOL=volatile -fsigned-char -pipe 
> -fno-zero-initialized-in-bss -mms-bitfields -march=i386  
> -IC:/msys/1.0/local/lib/gcl-2.6.8/unixport/../h  -O3  -c -w \"./user-init.c\" 
> -o \"./user-init.o\"")
>   <1 (SYSTEM 0 0)
>   1> (SYSTEM "gcc  -o  raw_lisp.exe ./user-init.o  
> -LC:/msys/1.0/local/lib/gcl-2.6.8/unixport/ -Wl,-Map raw_lisp_map.exe  
> C:/msys/1.0/local/lib/gcl-2.6.8/unixport/../o/firstfile.o  -lgcl -lm 
> -lmingwex  -lwsock32  -lgclp 
> C:/msys/1.0/local/lib/gcl-2.6.8/unixport/../o/lastfile.o 
> ./../../src/lib/bsdsignal.o ./../../src/lib/cfuns-c.o 
> ./../../src/lib/sockio-c.o -lwsock32 -lm")
>   <1 (SYSTEM 0 0)
>   1> (SYSTEM "raw_lisp.exe C:/msys/1.0/local/lib/gcl-2.6.8/unixport/ < 
> init_lisp.lsp")
> GCL (GNU Common Lisp)  April 1994  131072 pages
> Building symbol table for 
> c:/Docume~1/gdr/Desktop/sandbox/oa-build/src/lisp/raw_lisp.exe ..
> loading C:/msys/1.0/local/lib/gcl-2.6.8/unixport/../lsp/gcl_export.lsp
> Initializing gcl_defmacro.o
> Initializing gcl_evalmacros.o
> Initializing gcl_top.o
> Initializing gcl_module.o
> loading C:/msys/1.0/local/lib/gcl-2.6.8/unixport/../lsp/gcl_autoload.lsp
>
>>
> ("core")
>
>>
> #<"COMPILER" package>
>
>>
> #<"SLOOP" package>
>
>>
> #<"SERROR" package>
>
>>
> #<"ANSI-LOOP" package>
>
>>
> #<"DEFPACKAGE" package>
>
>>
> #<"TK" package>
>
>>
> #<"SYSTEM" package>
>
> SYSTEM>
> *COMMAND-ARGS*
>
> SYSTEM>Initializing gcl_predlib.o
> Initializing gcl_setf.o
> Initializing gcl_arraylib.o
> Initializing gcl_assert.o
> Initializing gcl_defstruct.o
> Initializing gcl_describe.o
> Initializing gcl_iolib.o
> Initializing gcl_listlib.o
> Initializing gcl_mislib.o
> Initializing gcl_numlib.o
> Initializing gcl_packlib.o
> Initializing gcl_seq.o
> Initializing gcl_seqlib.o
> Initializing gcl_trace.o
> Initializing gcl_sloop.o
> Initializing gcl_serror.o
> Initializing gcl_destructuring_bind.o
> Initializing gcl_loop.o
> Initializing gcl_defpackage.o
> Initializing gcl_make_defpackage.o
> Initializing gcl_cmpinline.o
> Initializing gcl_cmputil.o
> Initializing gcl_debug.o
> Initializing gcl_info.o
> Initializing gcl_cmptype.o
> Initializing gcl_cmpbind.o
> Initializing gcl_cmpblock.o
> Initializing gcl_cmpcall.o
> Initializing gcl_cmpcatch.o
> Initializing gcl_cmpenv.o
> Initializing gcl_cmpeval.o
> Initializing gcl_cmpflet.o
> Initializing gcl_cmpfun.o
> Initializing gcl_cmpif.o
> Initializing gcl_cmplabel.o
> Initializing gcl_cmplam.o
> Initializing gcl_cmplet.o
> Initializing gcl_cmploc.o
> Initializing gcl_cmpmap.o
> Initializing gcl_cmpmulti.o
> Initializing gcl_cmpspecial.o
> Initializing gcl_cmptag.o
> Initializing gcl_cmptop.o
> Initializing gcl_cmpvar.o
> Initializing gcl_cmpvs.o
> Initializing gcl_cmpwt.o
>
> Loading /msys/1.0/local/lib/gcl-2.6.8/unixport/../lsp/sys-proclaim.lisp
> Finished loading 
> /msys/1.0/local/lib/gcl-2.6.8/unixport/../lsp/sys-proclaim.lisp
> Loading /msys/1.0/local/lib/gcl-2.6.8/unixport/../cmpnew/sys-proclaim.lisp
> Finished loading 
> /msys/1.0/local/lib/gcl-2.6.8/unixport/../cmpnew/sys-proclaim.lisp
> Loading /msys/1.0/local/lib/gcl-2.6.8/unixport/../gcl-tk/tk-package.lsp
> Finished loading 
> /msys/1.0/local/lib/gcl-2.6.8/unixport/../gcl-tk/tk-package.lsp
> Loading /msys/1.0/local/lib/gcl-2.6.8/unixport/../cmpnew/gcl_cmpmain.lsp
> Warning: COMPILE-FILE is being redefined.
> Warning: COMPILE is being redefined.
> Warning: DISASSEMBLE is being redefined.
> Finished loading 
> /msys/1.0/local/lib/gcl-2.6.8/unixport/../cmpnew/gcl_cmpmain.lsp
> Loading /msys/1.0/local/lib/gcl-2.6.8/unixport/../cmpnew/gcl_lfun_list.lsp
> Finished loading 
> /msys/1.0/local/lib/gcl-2.6.8/unixport/../cmpnew/gcl_lfun_list.lsp
> Loading /msys/1.0/local/lib/gcl-2.6.8/unixport/../cmpnew/gcl_cmpopt.lsp
> Finished loading 
> /msys/1.0/local/lib/gcl-2.6.8/unixport/../cmpnew/gcl_cmpopt.lsp
> Loading /msys/1.0/local/lib/gcl-2.6.8/unixport/../lsp/gcl_auto_new.lsp
> Finished loading 
> /msys/1.0/local/lib/gcl-2.6.8/unixport/../lsp/gcl_auto_new.lsp
>
> Loading core.lisp...
> Warning: SYSTEM is being redefined.Finished core.lisp...
>
> T
>
>>
> |AxiomCore|::|topLevel|
>
>>  <1 (SYSTEM 0 0)
> "lisp.exe"
>
> AxiomCore>mkdir -p ../../build/i686-pc-mingw32/bin
> cp -p lisp.exe ../../build/i686-pc-mingw32/bin
> echo timestamp > stamp
> make[2]: Leaving directory `/home/gdr/Desktop/sandbox/oa-build/src/lisp'
> make[2]: Entering directory `/home/gdr/Desktop/sandbox/oa-build/src/boot'
> mkdir -p stage2
> echo timestamp > stage2/.started
> ../lisp/lisp.exe -- --compile --output=stage2/initial-env.o 
> ../../../open-axiom.svn/trunk/src/boot/initial-env.lisp
> make[2]: *** [stage2/initial-env.o] Error 5
> make[2]: Leaving directory `/home/gdr/Desktop/sandbox/oa-build/src/boot'
> make[1]: *** [all-boot] Error 2
> make[1]: Leaving directory `/home/gdr/Desktop/sandbox/oa-build/src'
> make: *** [all-src] Error 2
>
>
>
>

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