[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] building gcl-2.6.8pre on Solaris x86 with gnu (blastwave) to
From: |
Bill Page |
Subject: |
[Gcl-devel] building gcl-2.6.8pre on Solaris x86 with gnu (blastwave) toolchain |
Date: |
Thu, 22 Mar 2007 01:11:21 -0400 |
Camm,
I am trying to build gcl-2.6.8pre on a Solaris 10.2 x86 machine.
I have the gnu toolchain installed from
http://www.blastwave.org (unstable)
Blastwave provides a pkg-get which is like apt-get for Debian
and works with Solaris on both sparc and x86 hardware. It would
be real nice if gcl was packaged for Solaris pkg-get! :-) Maybe
I will try to get around to that later. But right now I have
problems building gcl on my Solaris x86 system.
./configure completes without error but I get the following
error when trying to build:
...
gcc -I/export/home0/wspage/gcl/o -DVOL=volatile -fsigned-char -I../h
-I../gcl-tk -o ../bin/dpp ../bin/dpp.c
/var/tmp//ccgP9elS.o: In function `read_token':
dpp.c:(.text+0x21f): undefined reference to `isalphanum'
collect2: ld returned 1 exit status
make[1]: *** [../bin/dpp] Error 1
make[1]: Leaving directory `/export/home0/wspage/gcl/o'
make: *** [h/new_decl.h] Error 2
-------------
Looking at dpp.c it appears that I need at least the UNIX
symbol defined.
The configure log shows that gcl is trying to use solaris-i386
but the file 'h/solaris-i386.h' is empty in the gcl-2.6.8pre
source distribution although 'h/solaris-i386.defs is present.
So I tried:
$ cp h/solaris.h h/solaris-i386.h
and patched it as follows:
-bash-3.00$ gdiff -au h/solaris.h h/solaris-i386.h
--- h/solaris.h 2007-03-22 00:11:40.755214000 -0400
+++ h/solaris-i386.h 2007-03-22 00:13:22.792338000 -0400
@@ -16,11 +16,10 @@
#endif
#define ADDITIONAL_FEATURES \
- ADD_FEATURE("SUN"); \
- ADD_FEATURE("SPARC")
+ ADD_FEATURE("SUN")
-#define SPARC
#define SGC
+#define UNIX
#define PTR_ALIGN 8
----------
Now the build proceeds much further but stops here:
gcc -I/export/home0/wspage/gcl/o -DVOL=volatile -fsigned-char -c -c -I../h
-I../gcl-tk -I../h -I../h -I../gcl-tk unixfsys.c
In file included from ../h/include.h:37,
from unixfsys.c:28:
../h/config.h:1:1: warning: "__ELF__" redefined
<built-in>:78:1: warning: this is the location of the previous definition
unixfsys.c:508: error: conflicting types for 'ctime_r'
/usr/include/time.h:299: error: previous declaration of 'ctime_r' was here
unixfsys.c:508: error: conflicting types for 'ctime_r'
/usr/include/time.h:299: error: previous declaration of 'ctime_r' was here
make[1]: *** [unixfsys.o] Error 1
make[1]: Leaving directory `/export/home0/wspage/gcl/o'
make: *** [unixport/saved_pre_gcl] Error 2
----------
Next because I was suspicious of the existing solaris-i386.defs
I tried
$ cp h/solaris.defs h/solaris-i386.defs
in addition to the above patch to 'h/solaris-i386.h'. This failed
the same way as above. So I commented out the following line in
'o/unixfsys.c'
/* extern char *ctime_r(const time_t *,char *); */
And re-started make. This time I nearly made it but failed with
the error "NULL_OR_ON_C_STACK macro invalid" when starting
raw_pre_gcl for the first time:
...
touch raw_pre_gcl_map
gcc -o raw_pre_gcl \
-L. -Wl,-Map raw_pre_gcl_map -lpre_gcl -lSM -lICE
-L/usr/openwin/lib -R/usr/openwin/lib -lXmu -lXt -lXext -lXaw -lX11 -lsocket
-lnsl -lm -lsocket -lnsl -lc -lgclp
cat init_pre_gcl.lsp.tmp | sed \
-e "address@hidden@#(`cat ../majvers`.`cat ../minvers`)
`date`#1" \
-e "address@hidden@#`cat ../minvers | cut -f2 -d.`#1" \
-e "address@hidden@#`cat ../minvers | cut -f1 -d.`#1" \
-e "address@hidden@#`cat ../majvers`#1" \
-e "address@hidden@#\"gcc -c -I/usr/openwin/include -Wall
-DVOL=volatile -fsigned-char -pipe \"#1" \
-e "address@hidden@#\"gcc -o \"#1" \
-e "address@hidden@#\" -lpre_gcl -lSM -lICE
-L/usr/openwin/lib -R/usr/openwin/lib -lXmu -lXt -lXext -lXaw -lX11 -lsocket
-lnsl -lm -lsocket -lnsl -lc -lgclp \"#1" \
-e "address@hidden@#\"-O3 -fomit-frame-pointer\"#1" \
-e "address@hidden@#\"-O\"#1" \
-e "address@hidden@#\"init_pre_gcl.lsp\"#1"
>init_pre_gcl.lsp
cp init_pre_gcl.lsp foo
echo " (in-package \"USER\")(system:save-system \"saved_pre_gcl\")" >>foo
/export/home0/wspage/gcl/unixport/raw_pre_gcl
/export/home0/wspage/gcl/unixport/ -libdir /export/home0/wspage/gcl/ < foo
GCL (GNU Common Lisp) April 1994 131072 pages
Unrecoverable error: NULL_OR_ON_C_STACK macro invalid.
/bin/bash: line 1: 27811 Abort (core dumped)
/export/home0/wspage/gcl/unixport/raw_pre_gcl
/export/home0/wspage/gcl/unixport/ -libdir /export/home0/wspage/gcl/ <foo
make[1]: *** [saved_pre_gcl] Error 134
rm raw_pre_gcl
make[1]: Leaving directory `/export/home0/wspage/gcl/unixport'
make: *** [unixport/saved_pre_gcl] Error 2
----------
Any ideas?
Is anyone else trying to build gcl on Solaris/x86?
Regards,
Bill Page.
- [Gcl-devel] building gcl-2.6.8pre on Solaris x86 with gnu (blastwave) toolchain,
Bill Page <=