On Sat, Nov 01, 2003 at 04:35:56PM +0100, Tarjei Vagstol wrote:
> I decided to try the -devel list; please let me know if this is a
> "-help"-question instead.
Since I'm going to suggest below that you try to create a patch
yourself, -devel may be more appropriate than you expected.:-)
Seriously, "can you help me with this apparent bug" fits so well on
either list that it's probably not worth trying to classify it.
> I'm trying so compile SBCL from the 0.8.5-sources on my OpenBSD
> 3.4/i386 box. GCC is 2.95.3, GNU make 3.80. I'd thought I'd bootstrap
> it with clisp.
(It's almost certainly not relevant to the current problem, but if you
encounter other problems later, note that the clisp version may be
important. I haven't thought about it for a while, and I certainly
don't remember which versions were involved, but I dimly remember that
building SBCL pushes various limitations (pretty-printer, garbage
collector...) of various versions of clisp past the breaking point.)
> However, it fails when building the runtime system, with these errors:
> cc -g -Wall -O3 -I. -c -o alloc.o alloc.c
> In file included from os.h:40,
> from alloc.c:22:
> target-os.h:21: syntax error before `os_vm_size_t'
> target-os.h:21: warning: type defaults to `int' in declaration of `os_vm_size_t'
> target-os.h:21: warning: data definition has no type or storage class
> I try to change target-os.h:21 from
> typedef vm_size_t os_vm_size_t;
> typedef size_t os_vm_size_t;
> as suggested by Hannah Schroeter. Now, the build fails on bsd-os.c:
Note that target-os.h is supposed to be a symbolic link to the
underlying file (bsd-os.h for OpenBSD, I think). Thus, when you edit
target-os.h and write out a new version, it's not intuitively obvious
what the editor's correct action should be; but that may not stop the
editor from silently trying to DWIM by e.g. overwriting the symlink
with a modified copy of the file (but leaving the original bsd-os.h
If that scenario is as confusing to you as it is to me, you might want
to start anew with a clean copy of the sources, edit bsd-os.h
directly, and then restart the build from scratch (which should
regenerate the target-os.h symlink from scratch).
> cc -g -Wall -O3 -I. -c -o bsd-os.o bsd-os.c
> bsd-os.c:40: syntax error before `os_vm_page_size'
> bsd-os.c:40: warning: type defaults to `int' in declaration of `os_vm_page_size'
> bsd-os.c:40: conflicting types for `os_vm_page_size'
> I suppose this doesn't help very much. What information should I
> provide to help diagnose the problem?
No, this actually looks like a pretty good bug report. If I still had
an OpenBSD machine I would probably bestir myself to try to fix the
problem. But then, if I still had an OpenBSD machine the port might
not have rotted this much in the first place.
It looks like the system just wants to know what vm_size_t should be
for OpenBSD, and trying to replace it with size_t sounds plausible.
And even if that's not the fix, the fix is likely to be very simple, a
line or two of code along the lines of the
#if defined __OpenBSD__
typedef struct sigaltstack stack_t;
hackery that you can see at the head of bsd-os.h. But even if I were
highly motivated to try to debug and fix the problem myself, it could
be hard to do so without an OpenBSD machine to do it on.
If you do find a solution, we'd probably be happy to merge a patch.
William Harold Newman <william.newman@...>
We were bedevilled by the daemons of diagrammatic overdesign. My God,
three little boxes drawn on the back of a napkin, Game, Frame, and
Throw, and it was still too complicated and just plain wrong.
-- Robert C. Martin, _Agile Software Development_, p. 72
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C