Subject: [clisp-list] building CLISP on OpenBSD

From: William Harold Newman <[email-masked]>
Date: Wed Nov 28 14:11:03 2001

A long time ago I reported that I couldn't get CLISP to build on
OpenBSD. I've now figured out the problem.

The basic problem is that the "sh" builtin command "cd" sometimes
emits output, e.g.
  $ cd /tmp
  $ cd .
  $ cd ''
  /tmp
  $ 
which plays havoc with the idiom
  canonical_filename=`cd $foo; pwd`
used by the CLISP build scripts to find canonical filenames. (The
basic problem was obscured by the way that the first failure caused by
the basic problem ends up interacting with some rather bizarre "sh"
syntax behavior.)

I've attached a diff against the clisp-2.27 sources to redirect output
from "cd" to "/dev/null". It let CLISP build and pass its tests on my
OpenBSD 2.9 system. I don't guarantee that I didn't make some obscure
mistake in one of the many places where the backquote/cd/pwd idiom is
used, and it'd might be better to find some way to wrap up that idiom
in a subroutine anyway. But at least it shows the way to go for CLISP
maintainers who don't happen to have OpenBSD machines handy for
testing.:-|

-- 
William Harold Newman <[email-masked]>
"Furious activity is no substitute for understanding." -- H. H. Williams
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C  B9 25 FB EE E0 C3 E5 7C
diff -cr ./configure /usr/stuff/clisp-2.27/configure
*** ./configure	Wed Nov 28 15:16:10 2001
--- /usr/stuff/clisp-2.27/configure	Tue May  8 09:09:59 2001
***************
*** 213,219 ****
    srcfile_dirname=`echo "$1" | sed -e 's,/[^/]*$,,'`
    test -n "$srcfile_dirname" || srcfile_dirname='/'
    srcfile_basename=`echo "$1" | sed -e 's,^.*/,,'`
!   srcfile_absdirname=`cd "$srcfile_dirname" > /dev/null; pwd`
    if ln -s "$srcfile_absdirname/$srcfile_basename" "$2" 2>/dev/null; then
      :
    else
--- 213,219 ----
    srcfile_dirname=`echo "$1" | sed -e 's,/[^/]*$,,'`
    test -n "$srcfile_dirname" || srcfile_dirname='/'
    srcfile_basename=`echo "$1" | sed -e 's,^.*/,,'`
!   srcfile_absdirname=`cd "$srcfile_dirname"; pwd`
    if ln -s "$srcfile_absdirname/$srcfile_basename" "$2" 2>/dev/null; then
      :
    else
***************
*** 238,244 ****
      echo "$0: srcdir: ($srcdir) nonexistent" 1>&2
      exit 1
    fi
!   ABS_SRCDIR=`cd "$srcdir" > /dev/null; pwd`
    if [ "$DIRNAME" = "" ] ; then
      DIRNAME='.'
    fi
--- 238,244 ----
      echo "$0: srcdir: ($srcdir) nonexistent" 1>&2
      exit 1
    fi
!   ABS_SRCDIR=`cd "$srcdir"; pwd`
    if [ "$DIRNAME" = "" ] ; then
      DIRNAME='.'
    fi
***************
*** 249,262 ****
  else
    if test -f ./ANNOUNCE -a -f ./SUMMARY; then
      srcdir='.'
!     ABS_SRCDIR=`cd "$srcdir" > /dev/null; pwd`
      if [ "$DIRNAME" = "" ] ; then
        DIRNAME=src
      fi
    else
      if test -f ../ANNOUNCE -a -f ../SUMMARY; then
        srcdir='..'
!       ABS_SRCDIR=`cd "$srcdir" > /dev/null; pwd`
        if [ "$DIRNAME" = "" ] ; then
          DIRNAME='.'
        fi
--- 249,262 ----
  else
    if test -f ./ANNOUNCE -a -f ./SUMMARY; then
      srcdir='.'
!     ABS_SRCDIR=`cd "$srcdir"; pwd`
      if [ "$DIRNAME" = "" ] ; then
        DIRNAME=src
      fi
    else
      if test -f ../ANNOUNCE -a -f ../SUMMARY; then
        srcdir='..'
!       ABS_SRCDIR=`cd "$srcdir"; pwd`
        if [ "$DIRNAME" = "" ] ; then
          DIRNAME='.'
        fi
***************
*** 268,287 ****
    if [ ! -d $DIRNAME ] ; then
      mkdir $DIRNAME
    fi
!   if
!     test `cd "$DIRNAME"/.. > /dev/null; $ABSPATHPWD` = \
!          `cd "$srcdir" > /dev/null; $ABSPATHPWD` ;
!   then
      REL_SRCDIR='..'
    else
      REL_SRCDIR="$ABS_SRCDIR"
    fi
  fi
! ABS_DIRNAME=`cd "$DIRNAME" > /dev/null; pwd`
! if
!   test `cd "$DIRNAME" > /dev/null; $ABSPATHPWD` = \
!        `cd "$srcdir"/src > /dev/null; $ABSPATHPWD` ;
!   then
    INPLACE=yes
  fi
  case "$REL_SRCDIR" in
--- 268,281 ----
    if [ ! -d $DIRNAME ] ; then
      mkdir $DIRNAME
    fi
!   if test `cd "$DIRNAME"/..; $ABSPATHPWD` = `cd "$srcdir"; $ABSPATHPWD` ; then
      REL_SRCDIR='..'
    else
      REL_SRCDIR="$ABS_SRCDIR"
    fi
  fi
! ABS_DIRNAME=`cd "$DIRNAME"; pwd`
! if test `cd "$DIRNAME"; $ABSPATHPWD` = `cd "$srcdir"/src; $ABSPATHPWD` ; then
    INPLACE=yes
  fi
  case "$REL_SRCDIR" in
***************
*** 350,362 ****
    # Create subdirectories for the modules parts, and fill them.
    # The modules outright assumes that $(srcdir)='.', hence all files need to
    # be linked over.
!   #for subdir in `cd modules > /dev/null ; find . -type d -print`
    #do
    #  if [ ! -d $ABS_DIRNAME/$f ] ; then
    #    mkdir $ABS_DIRNAME/$f
    #  fi
    #done
!   #for f in `cd modules > /dev/null; find . '!' -type d -print`
    #do
    #  rm -f $ABS_DIRNAME/$f
    #  link $f $ABS_DIRNAME/$f
--- 344,356 ----
    # Create subdirectories for the modules parts, and fill them.
    # The modules outright assumes that $(srcdir)='.', hence all files need to
    # be linked over.
!   #for subdir in `cd modules ; find . -type d -print`
    #do
    #  if [ ! -d $ABS_DIRNAME/$f ] ; then
    #    mkdir $ABS_DIRNAME/$f
    #  fi
    #done
!   #for f in `cd modules ; find . '!' -type d -print`
    #do
    #  rm -f $ABS_DIRNAME/$f
    #  link $f $ABS_DIRNAME/$f
***************
*** 557,559 ****
--- 551,554 ----
    cd ..
  
  fi
+ 
Only in .: configure~
Only in ./src: ANNOUNCE
Only in ./src: CLOS-guide.txt
Only in ./src: COPYRIGHT
Only in ./src: GNU-GPL
Only in ./src: LISP-tutorial.txt
Only in ./src: MAGIC.add
Only in ./src: Makefile
Only in ./src: README
Only in ./src: README.de
Only in ./src: README.es
Only in ./src: SUMMARY
Only in ./src: ansidecl
Only in ./src: ari80386.c
Only in ./src: ari80386.o
Only in ./src: ari80386.s
Only in ./src: aridecl.c
Only in ./src: arilev0.c
Only in ./src: arilev1.c
Only in ./src: arilev1c.c
Only in ./src: arilev1e.c
Only in ./src: arilev1i.c
Only in ./src: array.c
Only in ./src: array.o
Only in ./src: avcall
Only in ./src: avcall.h
Only in ./src: avl.c
Only in ./src: backquote.fas
Only in ./src: backquote.lib
Only in ./src: base
Only in ./src: beossock.fas
Only in ./src: beossock.lib
Only in ./src: bindings
Only in ./src: bytecode.c
Only in ./src: callback
Only in ./src: callback.h
Only in ./src: ccmp2c
Only in ./src: charset.alias
Only in ./src: charstrg.c
Only in ./src: charstrg.o
Only in ./src: clhs.fas
Only in ./src: clhs.lib
Only in ./src: clisp-link
Only in ./src: clisp.1
Only in ./src: clisp.c
Only in ./src: clisp.dvi
Only in ./src: clisp.h
Only in ./src: clisp.html
Only in ./src: clos.fas
Only in ./src: clos.lib
Only in ./src: clreadline.3
Only in ./src: clreadline.dvi
Only in ./src: clreadline.html
Only in ./src: clx
Only in ./src: cmacros.fas
Only in ./src: cmacros.lib
Only in ./src: comment5
Only in ./src: compelem.c
Only in ./src: compiler.fas
Only in ./src: compiler.lib
Only in ./src: complete.fas
Only in ./src: complete.lib
Only in ./src: comptran.c
Only in ./src: condition.fas
Only in ./src: condition.lib
Only in ./src: config.cache
Only in ./src: config.fas
Only in ./src: config.lib
diff -cr ./src/config.lisp /usr/stuff/clisp-2.27/src/config.lisp
*** ./src/config.lisp	Wed Nov 28 15:21:31 2001
--- /usr/stuff/clisp-2.27/src/config.lisp	Tue Mar 27 18:13:19 2001
***************
*** 4,44 ****
  ;;; DEUTSCH: Funktionen, die beim Transportieren zu ändern sind
  ;;; FRANCAIS: Fonctions dépendantes de l'installation
  
! (in-package "EXT")
  (mapcar #'fmakunbound '(short-site-name long-site-name))
  
! (defun short-site-name () (or (sys::getenv "ORGANIZATION") "edit config.lisp"))
! (defun long-site-name () (or (sys::getenv "ORGANIZATION") "edit config.lisp"))
  
  ;; ENGLISH: The name of the editor:
  ;; DEUTSCH: Der Name des Editors:
  ;; FRANCAIS: Nom de l'éditeur :
! (defparameter *editor* "vi")
  (defun editor-name () (or (sys::getenv "EDITOR") *editor*))
  
  ;; ENGLISH: (edit-file file) edits a file.
  ;; DEUTSCH: (edit-file file) editiert eine Datei.
  ;; FRANCAIS: (edit-file file) permet l'édition d'un fichier.
  (defun edit-file (file)
!   (open file :direction :probe :if-does-not-exist :create)
!   (shell (format nil "~A ~A" (editor-name) (truename file)))
  )
  
! ;; ENGLISH: The temporary file LISP creates for editing:
! ;; DEUTSCH: Das temporäre File, das LISP beim Editieren anlegt:
! ;; FRANCAIS: Fichier temporaire créé par LISP pour l'édition :
! (defun editor-tempfile ()
!   (merge-pathnames "lisptemp.lisp" (user-homedir-pathname))
  )
  
! ;; ENGLISH: The list of directories where programs are searched on LOAD etc.:
  ;; DEUTSCH: Die Liste von Directories, in denen Programme bei LOAD etc. gesucht
! ;;          werden:
! ;; FRANCAIS: Liste de répertoires où chercher un fichier programme:
  (defparameter *load-paths*
!   '(#"./"           ; in the current directory
!     "~/lisp/**/"    ; in all directories below $HOME/lisp
! )  )
  
  ;; ENGLISH: This makes screen output prettier:
  ;; DEUTSCH: Dadurch sehen Bildschirmausgaben besser aus:
--- 4,80 ----
  ;;; DEUTSCH: Funktionen, die beim Transportieren zu ändern sind
  ;;; FRANCAIS: Fonctions dépendantes de l'installation
  
! (in-package "COMMON-LISP")
  (mapcar #'fmakunbound '(short-site-name long-site-name))
  
! (in-package "EXT")
! 
! (defun short-site-name ()
!   (let ((s (or
!              (system::registry "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"
!                                "RegisteredOrganization"
!              )
!              (system::registry "SOFTWARE\\Microsoft\\Windows\\CurrentVersion"
!                                "RegisteredOrganization"
!              )
!        ))  )
!     (check-type s string)
!     s
! ) )
! (defun long-site-name ()
!   (let ((s (or
!              (system::registry "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"
!                                "RegisteredOwner"
!              )
!              (system::registry "SOFTWARE\\Microsoft\\Windows\\CurrentVersion"
!                                "RegisteredOwner"
!              )
!        ))  )
!     (check-type s string)
!     s
! ) )
  
  ;; ENGLISH: The name of the editor:
  ;; DEUTSCH: Der Name des Editors:
  ;; FRANCAIS: Nom de l'éditeur :
! (defparameter *editor* "notepad.exe")
  (defun editor-name () (or (sys::getenv "EDITOR") *editor*))
  
+ ;; ENGLISH: The temporary file LISP creates for editing:
+ ;; DEUTSCH: Das temporäre File, das LISP beim Editieren anlegt:
+ ;; FRANCAIS: Fichier temporaire créé par LISP pour l'édition :
+ (defun editor-tempfile ()
+   "lisptemp.lisp"
+ )
+ 
  ;; ENGLISH: (edit-file file) edits a file.
  ;; DEUTSCH: (edit-file file) editiert eine Datei.
  ;; FRANCAIS: (edit-file file) permet l'édition d'un fichier.
  (defun edit-file (file)
!   (execute (editor-name) (namestring file t))
  )
  
! ;; ENGLISH: Treat Ctrl-Z in files as whitespace. Some losing middle-age
! ;;          editors insist on appending this to files.
! ;; DEUTSCH: Behandle Ctrl-Z in Dateien als Leerstelle. Einige dumme
! ;;          Steinzeit-Editoren bestehen darauf, das an Dateien anzuhängen.
! ;; FRANCAIS: Traite Ctrl-Z dans les fichiers comme un espace. Quelques
! ;;           éditeurs du moyen age n'arrêtent pas d'ajouter cela aux fichiers.
! (eval-when (load eval compile)
!   (set-syntax-from-char #\Code26 #\Space)
  )
  
! ;; ENGLISH: The list of directories where programs are searched on LOAD etc.
! ;;          if device and directory are unspecified:
  ;; DEUTSCH: Die Liste von Directories, in denen Programme bei LOAD etc. gesucht
! ;;          werden, wenn dabei Laufwerk und Directory nicht angegeben ist:
! ;; FRANCAIS: Liste de répertoires où chercher un fichier lorsqu'un répertoire
! ;;           particulier n'est pas indiqué :
  (defparameter *load-paths*
!   '(#"C:"               ; erst im Current-Directory von Laufwerk C:
!     #"C:\\CLISP\\...\\" ; dann in allen Directories unterhalb C:\CLISP
!    )
! )
  
  ;; ENGLISH: This makes screen output prettier:
  ;; DEUTSCH: Dadurch sehen Bildschirmausgaben besser aus:
***************
*** 51,57 ****
    "This returns the root URL for the Common Lisp HyperSpec.
  You can set the environment variable `CLHSROOT' or redefine this function
  in ~/.clisprc.  On win32 you can also use the Registry."
!   (or (sys::getenv "CLHSROOT") *clhs-root-default*))
! (setq *clhs-root-default*
!       ;; was "http://www.lisp.org/HyperSpec/"
!       "file:/usr/stuff/HyperSpec/")
--- 87,95 ----
    "This returns the root URL for the Common Lisp HyperSpec.
  You can set the environment variable `CLHSROOT' or redefine this function
  in ~/.clisprc.  On win32 you can also use the Registry."
!   (or (sys::getenv "CLHSROOT")
!       (let ((s (system::registry "SOFTWARE\\GNU\\CLISP" "CLHSROOT")))
!         (check-type s (or null string))
!         s)
!       *clhs-root-default*))
! (setq *clhs-root-default* "http://www.lisp.org/HyperSpec/")
Only in ./src: config.lisp~
Only in ./src: config.log
Only in ./src: config.status
Only in ./src: constobj.c
Only in ./src: constpack.c
Only in ./src: constsym.c
Only in ./src: control.c
Only in ./src: control.o
Only in ./src: data
Only in ./src: debug.c
Only in ./src: debug.o
Only in ./src: defmacro.fas
Only in ./src: defmacro.lib
Only in ./src: defs1.fas
Only in ./src: defs1.lib
Only in ./src: defs2.fas
Only in ./src: defs2.lib
Only in ./src: defseq.fas
Only in ./src: defseq.lib
Only in ./src: defstruct.fas
Only in ./src: defstruct.lib
Only in ./src: describe.fas
Only in ./src: describe.lib
Only in ./src: dfloat.c
Only in ./src: disassem.fas
Only in ./src: disassem.lib
Only in ./src: dribble.fas
Only in ./src: dribble.lib
Only in ./src: dutch.fas
Only in ./src: dutch.lib
Only in ./src: edit.fas
Only in ./src: edit.lib
Only in ./src: editors.txt
Only in ./src: encoding.c
Only in ./src: encoding.o
Only in ./src: error.c
Only in ./src: error.o
Only in ./src: errunix.c
Only in ./src: eval.c
Only in ./src: eval.o
Only in ./src: ffloat.c
Only in ./src: flo_konv.c
Only in ./src: flo_rest.c
Only in ./src: floatprint.fas
Only in ./src: floatprint.lib
Only in ./src: foreign.c
Only in ./src: foreign.o
Only in ./src: foreign1.fas
Only in ./src: foreign1.lib
Only in ./src: format.fas
Only in ./src: format.lib
Only in ./src: french.fas
Only in ./src: french.lib
Only in ./src: fsubr.c
Only in ./src: full
Only in ./src: genclisph.c
Only in ./src: genclisph.o
Only in ./src: german.fas
Only in ./src: german.lib
Only in ./src/gettext: config.h
Only in ./src/gettext: config.log
Only in ./src/gettext: config.status
Only in ./src/gettext/intl: Makefile
Only in ./src/gettext/intl: bindtextdom.o
Only in ./src/gettext/intl: charset.alias
Only in ./src/gettext/intl: dcgettext.o
Only in ./src/gettext/intl: dcigettext.o
Only in ./src/gettext/intl: dcngettext.o
Only in ./src/gettext/intl: dgettext.o
Only in ./src/gettext/intl: dngettext.o
Only in ./src/gettext/intl: explodename.o
Only in ./src/gettext/intl: finddomain.o
Only in ./src/gettext/intl: gettext.o
Only in ./src/gettext/intl: intl-compat.o
Only in ./src/gettext/intl: l10nflist.o
Only in ./src/gettext/intl: libintl.a
Only in ./src/gettext/intl: libintl.h
Only in ./src/gettext/intl: loadmsgcat.o
Only in ./src/gettext/intl: localcharset.o
Only in ./src/gettext/intl: localealias.o
Only in ./src/gettext/intl: ngettext.o
Only in ./src/gettext/intl: plural.o
Only in ./src/gettext/intl: ref-add.sed
Only in ./src/gettext/intl: ref-del.sed
Only in ./src/gettext/intl: textdomain.o
Only in ./src/gettext/po: Makefile
Only in ./src/gettext: stamp-h
Only in ./src: gray.fas
Only in ./src: gray.lib
Only in ./src: gstream.fas
Only in ./src: gstream.lib
Only in ./src: halfcompiled.mem
Only in ./src: hashtabl.c
Only in ./src: hashtabl.o
Only in ./src: iconv.h
Only in ./src: impnotes.html
Only in ./src: init.fas
Only in ./src: init.lib
Only in ./src: inspect.fas
Only in ./src: inspect.lib
Only in ./src: int2adic.c
Only in ./src: intbyte.c
Only in ./src: intcomp.c
Only in ./src: intdiv.c
Only in ./src: intelem.c
Only in ./src: interpreted.mem
Only in ./src: intgcd.c
Only in ./src: intlog.c
Only in ./src: intmal.c
Only in ./src: intparam.h
Only in ./src: intplus.c
Only in ./src: intprint.c
Only in ./src: intread.c
Only in ./src: intsqrt.c
Only in ./src: io.c
Only in ./src: io.o
Only in ./src: keyboard.fas
Only in ./src: keyboard.lib
Only in ./src: lfloat.c
Only in ./src: libavcall.a
Only in ./src: libavcall.la
Only in ./src: libcallback.a
Only in ./src: libcallback.la
Only in ./src: libcharset.a
Only in ./src: libcharset.h
Only in ./src: libcharset.la
Only in ./src: libiconv
Only in ./src: libiconv.a
Only in ./src: libiconv.la
Only in ./src: libintl.a
Only in ./src: libintl.h
Only in ./src: libnoreadline.a
Only in ./src: libreadline.a
Only in ./src: libsigsegv.a
Only in ./src: libsigsegv.la
Only in ./src: linkkit
Only in ./src: lisp.a
Only in ./src: lisp.run
Only in ./src: lisparit.c
Only in ./src: lisparit.o
Only in ./src: lispbibl.c
Only in ./src: lispinit.mem
Only in ./src: list.c
Only in ./src: list.o
diff -cr ./src/lndir /usr/stuff/clisp-2.27/src/lndir
*** ./src/lndir	Wed Nov 28 15:16:40 2001
--- /usr/stuff/clisp-2.27/src/lndir	Mon Apr  3 09:53:54 2000
***************
*** 31,37 ****
    srcfile_dirname=`echo "$1" | sed -e 's,/[^/]*$,,'`
    test -n "$srcfile_dirname" || srcfile_dirname='/'
    srcfile_basename=`echo "$1" | sed -e 's,^.*/,,'`
!   srcfile_absdirname=`cd "$srcfile_dirname" > /dev/null; pwd`
    ln -s "$srcfile_absdirname/$srcfile_basename" "$2" 2>/dev/null ||
      ln "$srcfile_absdirname/$srcfile_basename" "$2" 2>/dev/null ||
      cp -p "$srcfile_absdirname/$srcfile_basename" "$2"
--- 31,37 ----
    srcfile_dirname=`echo "$1" | sed -e 's,/[^/]*$,,'`
    test -n "$srcfile_dirname" || srcfile_dirname='/'
    srcfile_basename=`echo "$1" | sed -e 's,^.*/,,'`
!   srcfile_absdirname=`cd "$srcfile_dirname"; pwd`
    ln -s "$srcfile_absdirname/$srcfile_basename" "$2" 2>/dev/null ||
      ln "$srcfile_absdirname/$srcfile_basename" "$2" 2>/dev/null ||
      cp -p "$srcfile_absdirname/$srcfile_basename" "$2"
***************
*** 72,83 ****
  
  mkdirparent "$DST"
  
! for f in `cd "$SRC" > /dev/null; find . -type d -print`; do
    dir="$DST"`echo "$f" | sed -e 's,^\.,,'`;
    test -d "${dir}" || mkdir "${dir}"
  done
  
! for f in `cd "$SRC" > /dev/null ; find . -type f -print`; do
    f=`echo "$f" | sed -e 's,^\./,,'`
    link "$SRC"/"$f" "$DST"/"$f"
  done
--- 72,83 ----
  
  mkdirparent "$DST"
  
! for f in `cd "$SRC" ; find . -type d -print`; do
    dir="$DST"`echo "$f" | sed -e 's,^\.,,'`;
    test -d "${dir}" || mkdir "${dir}"
  done
  
! for f in `cd "$SRC" ; find . -type f -print`; do
    f=`echo "$f" | sed -e 's,^\./,,'`
    link "$SRC"/"$f" "$DST"/"$f"
  done
Only in ./src: lndir~
Only in ./src: locale
Only in ./src: loop.fas
Only in ./src: loop.lib
Only in ./src: macros1.fas
Only in ./src: macros1.lib
Only in ./src: macros2.fas
Only in ./src: macros2.lib
Only in ./src: macros3.fas
Only in ./src: macros3.lib
Only in ./src: makemake
Only in ./src: makevars
Only in ./src: misc.c
Only in ./src: misc.o
Only in ./src: modprep
Only in ./src: modules.c
Only in ./src: modules.o
Only in ./src: noreadline.c
Only in ./src: noreadline.o
Only in ./src: package.c
Only in ./src: package.o
Only in ./src: pathname.c
Only in ./src: pathname.o
Only in ./src: places.fas
Only in ./src: places.lib
Only in ./src: postgresql632
Only in ./src: postgresql642
Only in ./src: predtype.c
Only in ./src: predtype.o
Only in ./src: pseudofun.c
Only in ./src: queens
Only in ./src: query.fas
Only in ./src: query.lib
Only in ./src: rational.c
Only in ./src/readline: Makefile
Only in ./src/readline: bind.o
Only in ./src/readline: callback.o
Only in ./src/readline: complete.o
Only in ./src/readline: config.cache
Only in ./src/readline: config.h
Only in ./src/readline: config.log
Only in ./src/readline: config.status
Only in ./src/readline: display.o
Only in ./src/readline/examples: Makefile
Only in ./src/readline: funmap.o
Only in ./src/readline: histexpand.o
Only in ./src/readline: histfile.o
Only in ./src/readline: history.o
Only in ./src/readline: histsearch.o
Only in ./src/readline: input.o
Only in ./src/readline: isearch.o
Only in ./src/readline: keymaps.o
Only in ./src/readline: kill.o
Only in ./src/readline: libhistory.a
Only in ./src/readline: libreadline.a
Only in ./src/readline: macro.o
Only in ./src/readline: nls.o
Only in ./src/readline: parens.o
Only in ./src/readline: readline.o
Only in ./src/readline: rltty.o
Only in ./src/readline: search.o
Only in ./src/readline: shell.o
Only in ./src/readline/shlib: Makefile
Only in ./src/readline: signals.o
Only in ./src/readline: stamp-h
Only in ./src/readline: terminal.o
Only in ./src/readline: testUTF8.o
Only in ./src/readline: tilde.o
Only in ./src/readline: undo.o
Only in ./src/readline: util.o
Only in ./src/readline: vi_mode.o
Only in ./src/readline: xmalloc.o
Only in ./src: readline.dvi
Only in ./src: realelem.c
Only in ./src: realrand.c
Only in ./src: realtran.c
Only in ./src: record.c
Only in ./src: record.o
Only in ./src: regexp
Only in ./src: reploop.fas
Only in ./src: reploop.lib
Only in ./src: room.fas
Only in ./src: room.lib
Only in ./src: runprog.fas
Only in ./src: runprog.lib
Only in ./src: savemem.fas
Only in ./src: savemem.lib
Only in ./src: screen.fas
Only in ./src: screen.lib
Only in ./src: sequence.c
Only in ./src: sequence.o
Only in ./src: sfloat.c
Only in ./src: sigsegv
Only in ./src: sigsegv.h
Only in ./src: socket.c
Only in ./src: socket.o
Only in ./src: sort.c
Only in ./src: spanish.fas
Only in ./src: spanish.lib
Only in ./src: spvw.c
Only in ./src: spvw.o
Only in ./src: spvw_alloca.c
Only in ./src: spvw_allocate.c
Only in ./src: spvw_circ.c
Only in ./src: spvw_ctype.c
Only in ./src: spvw_debug.c
Only in ./src: spvw_fault.c
Only in ./src: spvw_garcol.c
Only in ./src: spvw_gcstat.c
Only in ./src: spvw_genera1.c
Only in ./src: spvw_genera2.c
Only in ./src: spvw_genera3.c
Only in ./src: spvw_global.c
Only in ./src: spvw_heap.c
Only in ./src: spvw_language.c
Only in ./src: spvw_mark.c
Only in ./src: spvw_memfile.c
Only in ./src: spvw_mmap.c
Only in ./src: spvw_module.c
Only in ./src: spvw_multimap.c
Only in ./src: spvw_objsize.c
Only in ./src: spvw_page.c
Only in ./src: spvw_sigcld.c
Only in ./src: spvw_sigint.c
Only in ./src: spvw_sigpipe.c
Only in ./src: spvw_sigsegv.c
Only in ./src: spvw_sigwinch.c
Only in ./src: spvw_singlemap.c
Only in ./src: spvw_space.c
Only in ./src: spvw_typealloc.c
Only in ./src: spvw_update.c
Only in ./src: spvw_walk.c
Only in ./src: spvwtabf.c
Only in ./src: spvwtabf.o
Only in ./src: spvwtabo.c
Only in ./src: spvwtabo.o
Only in ./src: spvwtabs.c
Only in ./src: spvwtabs.o
Only in ./src: stage
Only in ./src: stdbool.h
Only in ./src: stream.c
Only in ./src: stream.o
Only in ./src: subr.c
Only in ./src: subrkw.c
Only in ./src: suite
Only in ./src: symbol.c
Only in ./src: symbol.o
Only in ./src: threads.fas
Only in ./src: threads.lib
Only in ./src: time.c
Only in ./src: time.o
Only in ./src: timezone.fas
Only in ./src: timezone.lib
Only in ./src: trace.fas
Only in ./src: trace.lib
Only in ./src: trampoline_r.h
Only in ./src: txt2c
Only in ./src: type.fas
Only in ./src: type.lib
Only in ./src: unix.c
Only in ./src: unixaux.c
Only in ./src: unixaux.o
Only in ./src: unixconf.h
Only in ./src: vacall_r.h
Only in ./src: varbrace
Only in ./src: wildcard
Only in ./src: xcharin.fas
Only in ./src: xcharin.lib
Only in ./src: xthread.c

---

From: [email-masked] (Johannes Grødem)
Date: Wed Nov 28 14:36:02 2001

>   canonical_filename=`cd $foo; pwd`

Um.  Why not just do

 cd $foo   # With a &>/dev/null here, if it's really important.

and then

 canonical_filename=`pwd`

?

-- 
Johannes Grødem <[email-masked]>

---

From: Sam Steingold <[email-masked]>
Date: Wed Nov 28 15:00:02 2001

> * In message <20011128154319.B30912@rootless>
> * On the subject of "[clisp-list] building CLISP on OpenBSD"
> * Sent on Wed, 28 Nov 2001 15:43:19 -0600
> * Honorable William Harold Newman <[email-masked]> writes:
>

Thanks!

> emits output,

ouch!

I committed a patch based on your suggestions.

please get the latest CVS sources and try building CLISP!

Thanks for your help - I hope you will get CLISP to bootstrap SBCL,
finally!

-- 
Sam Steingold (http://www.podval.org/~sds)
Keep Jerusalem united! <http://www.onejerusalem.org/Petition.asp>
Read, think and remember! <http://www.iris.org.il> <http://www.memri.org/>
char*a="char*a=%c%s%c;main(){printf(a,34,a,34);}";main(){printf(a,34,a,34);}