On Tue, 28 Dec 1999, Jonathan McDowell wrote:
> Builds lsh, lshd and others successfully, but fails at the following
> point:
>
> make[3]: Entering directory `/usr/src/lsh-0.1.20/src/testsuite'
> gcc -g -O2 -ggdb3 -Wall -W -Wmissing-prototypes -Wmissing-declarations
>-Wstrict-prototypes -Waggregate-return -Wpointer-arith -Wbad-function-cast
>-Wnested-externs -o spki-tag-test spki-tag-test.o ../liblsh.a
>../symmetric/libsymmetric.a -lutil -lnsl -lcrypt -lz -lgmp
> ../liblsh.a(sexp.o): In function `sexp_argp_parser':
> /usr/src/lsh-0.1.20/src/sexp.c:915: undefined reference to `argp_error'
> make[3]: *** [spki-tag-test] Error 1
> make[3]: Leaving directory `/usr/src/lsh-0.1.20/src/testsuite'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/usr/src/lsh-0.1.20/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/usr/src/lsh-0.1.20'
> make: *** [all-recursive-am] Error 2
>
> This seems to be due to the Makefile.am in src/testsuite not having
> @LIBOBJS@ specified in LDADD.
I saw this too, and assumed it was a BSD make vs GNU make, switched to
GNU, and that solved the problem.
I've never been able to get any of the lsh snapshots to work under
FreeBSD, but 0.1.20 is the first time that I had this many problems
building lsh (the last time I tried was 0.1.12-0.1.15, or so).
socklen_t isn't defined on any of the 4 Unix I use at work, but the source
makes no attempt to work around this.
The 0.1.20 snapshot requires a scheme compiler, though configure doesn't
die if it doesn't find one. I haven't seen this before, so I believe
that earlier snapshots had spki.c.xT in the distribution. I did laugh the
first time I saw this, though:
false -l /home/ejs/lsh-0.1.20/src/scm/false-compat.scm -e main -l \
/home/ejs/lsh-0.1.20/src/scm/compiler.scm \
-s /home/ejs/lsh-0.1.20/src/scm/gaba.scm <spki.c >spki.c.xT
On FreeBSD 3.3, sys/time.h needs to be included before sys/resource.h to
eliminate some warnings, and daemon.c also needs to include it, but I
forget why.