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" \
  LDFLAGS="-L/tmp/clisp/clisp-tools/lib 
-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.

Advertisements

Σχολιάστε

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

Λογότυπο WordPress.com

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

Φωτογραφία Twitter

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

Φωτογραφία Facebook

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

Φωτογραφία Google+

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

Σύνδεση με %s

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