Hi Amit,

> > 1. Stand-alone bootstrap, using a temporary 32-bit version:
> >
> >   # apt-get install libc6-dev-i386 libssl-dev libx11-dev libxext-dev
> >
> >   $ (cd src; make all)
> >   $ (cd src64; make)
> >
> 
> On OpenBSD, which doesn't mix 32bit and 64bit this approach is
> impossible. Yet, it is the simplest possible. Is it possible to have
> 64 bit C bootstrap a 64 bit assembly?

What do you mean with "64 bit C"? As you know, the C version of PicoLisp
doesn't run on 64-bits. However, once a 64-bit version is generated
using one of the three methods, it can re-generate itself (e.g. after
modifying the source).

BTW, the fourth method would be to generate a local version from a
global version, installed from an OS package. This is handled directly
by (cd src64; make) in "src64/mkAsm": It first checks for a global
"/usr/bin/picolisp", then for a local "bin/picolisp" and finally for
"ersatz/pil" using Java.

Anyway, I understand that (1) is not an option on OpenBSD.


> > 2. Using a Java runtime system (version 1.6 or higher):
> >
> >   # apt-get install openjdk-6-jre
> >   # apt-get install libssl-dev libx11-dev libxext-dev
> >
> >   $ (cd src; make tools gate x11)
> >   $ (cd src64; make)
> 
> Java is not available on all hardware architectures!

Yeah, probably. But on significantly more than PicoLisp ;-)


> > 3. Using the pre-generated "*.s" file package:
> >
> >   # apt-get install libssl-dev libx11-dev libxext-dev
> >
> >   $ (cd src; make tools gate x11)
> >   $ wget http://software-lab.de/x86-64.linux.tgz && tar xvfz 
> > x86-64.linux.tgz
> >   $ (cd src64; make)
> 
> Is this approach probably too linux specific?

Not at all. Theoretically we could prepare pre-generated asm sources for
any system. There is one available for each supported platform, i.e.
currently:

     x86-64.linux.tgz
     x86-64.sunOs.tgz
     ppc64.linux.tgz

Moreover, they can be easily cross-generated. If we have proper a
"src64/sys/x86-64.openBsd.code.l" and "src64/sys/x86-64.openBsd.defs.l"
and an entry for OpenBSD in "src64/Makefile", we just need to do:

   $ (cd src64 && make x86-64.linux.base.s x86-64.linux.ext.s x86-64.linux.ht.s)

This is how I always cross-generated the "*.s" files during the
development for a new platform.

Cheers,
- Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to