[Openmcl-devel] Help with build commands (Re: Debian packaging for CCL)

Gary Byers gb at clozure.com
Fri Jul 13 10:45:28 UTC 2012


Something like:

echo '(save-application "lx86cl.image")' |  /path/to/lx86cl -I x86-boot32

should do what you apparently want, assuming that the shell quoting above is correct.


On Fri, 13 Jul 2012, Faheem Mitha wrote:

>
>
> On Wed, 11 Jul 2012, Faheem Mitha wrote:
>
>> Thanks, that is clear and explicit. I think I have enough information
>> for a first stab at building.
>
> Ok, I did some work on this. So far, the build steps I have are given at the 
> end of this message. I almost succeeded in the basic compilation, but the 
> last step is a showstopper.
>
> This work is complicated by the fact that CCL overwrites the shipped
> kernel and heap image while building. (These are lx86cl and
> lx86cl-image in my 32 bit case.) This makes it difficult for a clean
> target. Debian policy says about the clean target:
>
> "This must undo any effects that the build and binary targets may have
> had, except that it should leave alone any output files created in the
> parent directory by a run of a binary target."
>
> So clean should remove all effects of the build. But that is difficult
> if the original shipped binaries are overwritten in
> place. Unfortunately, the build commands for the most part don't have
> the option to write files elsewhere, which necessitates a certain
> amount of hacking around,
>
> I'd like to know if the developers would be open to the idea of
> extending these commands. If not, I can manage. The commands below
> don't overwrite the shipped binaries, though they are a little bit
> ugly. I did have to patch the Makefile in lisp-kernel/linuxx8632,
> though.
>
> Now for the showstopper. The CCL manual says
>
> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
>
> To build a full image from a bootstrapping image, just invoke the
> kernel with the bootstrapping image as an argument
>
> $ cd ccl                        # wherever your ccl directory is
> $ ./KERNEL --image-name BOOT_IMAGE --no-init
>
> Where KERNEL and BOOT_IMAGE are the names of the kernel and boot image
> appropriate to the platform you are running on. See Table 3.1,
> ?Platform-specific filename conventions?
>
> That should load a few dozen fasl files (printing a message as each
> file is loaded.) If all of these files successfully load, the lisp
> will print a prompt. You should be able to do essentially everything
> in that environment that you can in the environment provided by a
> "real" heap image. If you're confident that things loaded OK, you can
> save that image:
>
> ? (ccl:save-application "image_name") ; Overwriting the existing heap
> image
>
> Where image_name is the name of the full heap image for your
> platform. See Table 3.1, ?Platform-specific filename conventions?.
>
> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
>
> However, how can I perform this step non-interactively, i.e. without
> having to type something at the REPL? It tried
>
> ./lx86cl -I ../../x86-boot32 -e '(progn (ccl:save-application 
> "lx86cl.new.image") (ccl::quit))' --no-init
>
> but it did not work. I was still dropped in the REPL.
>
> Finally, here are the build steps.
>
> install -d debian/build
> make -C lisp-kernel/linuxx8632
> cd debian/build && ./lx86cl  -I ../../lx86cl.image  -e '(progn 
> (ccl:xload-level-0 :force) (ccl::quit))'
> cd debian/build && ./lx86cl  -I ../../lx86cl.image  -e '(progn 
> (ccl:compile-ccl) (ccl::quit))'
> cp level-1.lx32fsl debian/build
> cp -r l1-fasls debian/build
> cp -r bin debian/build
> cd debian/build && ./lx86cl -I ../../x86-boot32 -e '(progn 
> (ccl:save-application "lx86cl.new.image") (ccl::quit))' --no-init
>
> BTW, I looked at the Gentoo build for CCL. It looks like CCL was removed from 
> Gentoo in February 2012, if I understood the commit messages correctly. 
> Regardless. this packaging was not very impressive, and completely ignores 
> the clean issue, as far as I can see.
>
>                                                     Regards, Faheem



More information about the Openmcl-devel mailing list