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