Apostolos\’ Daily Plate

OpenSolaris: Compiling clisp-2.48 for 64bit

Posted in OpenSolaris by asyropoulos on 19 Απριλίου, 2010

Compiling clisp-2.48 for 64bit OpenSolaris is a little bit tricky.

$ mkdir clisp; cd clisp
$ clisp_basedir=`pwd`
$ clisp_toolsdir=$clisp_basedir/clisp-tools
$ clisp_builddir=$clisp_basedir/clisp-build
$ mkdir $clisp_toolsdir

Now download libsigsegv and ffcal and unpack the archives and proceed:

$ cd libsigsegv-2.8   
$ CC="gcc-4.3.2 -m64" ./configure \
   --prefix=$clisp_toolsdir && make && \
   make check &&  make install
$ cd $clisp_basedir
$ cd ffcall-1.10
$ CC="gcc-4.3.2 -m64" ./configure \
  --build=x86_64-pc-solaris2.11 \
  --prefix=$clisp_toolsdir && \
  make && make check && \
  make install
$ cd $clisp_basedir
$ cd clisp-2.48
$ CC="gcc-4.3.2 -m64" \
  CFLAGS="-I/tmp/clisp/clisp-tools/include" \
-R/tmp/clisp/clisp-tools/lib"  ./configure \ 
  --with-ffcall --with-libffcall-prefix=$clisp_toolsdir \
  --with-libsigsegv-prefix=$clisp_toolsdir --disable-mmap \
  --without-readline $clisp_builddir && \
cd $clisp_builddir && make

At some point it the compilation process stops because two symbols are undefined. However, these symbols are defined in libgnu.a. For some strange reason even if one adds the name of the library in the Makefile, the compiler fails to find the library. For this reason, I had to do the following dirty trick:

$ cd boot
$ mkdir foo
$ cp lisp.a lisp.a.orig
$ mv lisp.a foo/.
$ cp ../gllib/.libs/libgnu.a foo/.
$ cd foo
$ for lib in *.a; do ar x $lib; done
$ ar cr ../lisp.a *.o
$ ranlib ../lisp.a
$ cd ..
$ rm -rf foo
$ cd ..
$ make

Now the compilation of clisp completes succesfully! Note that the same trick should be applied even when compiling for 32bit OpenSolaris.


Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: