Subject: [clisp-list] Suse Linux 8.2 compilation issues: libtermcap and cp1255/cp1258 m issing

From: "Hoehle, Joerg-Cyril" <[email-masked]>
Date: Tue Feb 25 01:02:05 2003

Hi,

I encountered 2 problem areas trying to get CLISP 2.30 to compile:
1. location of termcap lib
2. unknown CHARSET:WINDOWS-CP1255 and -1258

Ad 1. -- termcap
Configuration and compilation went fine. It's not until link time that the linker complained about tgoto, tgetstr, tgetent etc.

a relevant message from configure was:
checking for library containing tgetent... no

Maybe termcap is on a strange location on this Suse Linux 8.2? Could a Linux person comment on this?
The Suse Linux 8.2 machine which I had acccess to had a strictly minimal server configuration: nothing but mysql, perl, gzip, gcc and ssh. I added a few packages since then.
uname -a: Linux 2.4.19-xGB #1 Fri Sep 13 13:14:56 UTC 2002 i686 unknown

ls -al /usr/lib/*term*
lrwxrwxrwx    1 root     root           19 Dec  3 13:27 /usr/lib/libtermcap.so.2 -> libtermcap.so.2.0.8
-rwxr-xr-x    1 root     root        14411 Sep  9 21:13 /usr/lib/libtermcap.so.2.0.8

/usr/lib/termcap:
total 19
drwxr-xr-x    2 root     root          112 Dec  3 13:27 .
drwxr-xr-x   22 root     root         7248 Feb  6 17:25 ..
-rw-r--r--    1 root     root        11072 Sep  9 21:13 libtermcap.a
lrwxrwxrwx    1 root     root           22 Dec  3 13:27 libtermcap.so -> ../libtermcap.so.2.0.8

The linker was invoked as
gcc -I/home/hoehle/include -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -fomit-frame-pointer -Wno-sign-compare
-O2 -fexpensive-optimizations -DUNICODE -DDYNAMIC_FFI -DDYNAMIC_MODULES
-x none -Wl,-export-dynamic spvw.o ...
modules.o libcharset.a libavcall.a libcallback.a  -ldl  /home/hoehle/lib/libsigsegv.a -o lisp.run                            

I worked around this by adding both
	-L/usr/lib/termcap -ltermcap
to the LIBS variable in the Makefile.

Ad 2. -- CHARSET:WINDOWS-1255 and -1258
;; Loading file type.lisp ...
*** - SYMBOL-VALUE: CHARSET:WINDOWS-1258 has no dynamic value
*** - EVAL: the function %SAVEINITMEM is undefined
It appears that CHARSET:WINDOWS-1258 is among the exported symbols of package CHARSET, yet it has no value (an encoding). Therefore type.lisp errors out.
3. Break> (find-symbol "CP1258" "CHARSET")
NIL ; NIL

There was a change in CVS between 2.28 and 2.30 relevant to this, back in May 2002, saying
"removed nls_cp1255 and nls_cp1258". To me, it appears as if this change was incomplete.
As of today, encoding.d still has lines saying:
>  # Now some aliases.
>  define_constant(S(windows_1255),Symbol_value(S(cp1255)));
>  define_constant(S(windows_1258),Symbol_value(S(cp1258)));

If nls_cp1255 and nls_cp1258 are gone, what shall these lines do?

Trying to remove these lines did not work, nor copying the nls_.c files back from 2.28.
I hacked around this by adding an UNEXPORT to type.lisp

Somes line from configure maybe relevant to this:
checking whether NLS is requested... yes
checking for GNU gettext in libc... yes

Regards,
	Jörg Höhle.

---

From: Edi Weitz <[email-masked]>
Date: Tue Feb 25 10:44:05 2003

Did you work with an internal beta version? The "official" SuSE is at
8.1 AFAIK.