Subject: Compiling apout pdp-11 simulator
To: None <current-users@netbsd.org>
From: Thomas Miller <tmiller@flex.com>
List: current-users
Date: 06/29/2003 23:28:37
Hi,

I am trying to compile apout2.3alpha2 on NetBSD-current 1.6T 
as of about June 8, 2003.   

apout2.3alpha2, if I understand correctly, translates the system 
calls from pdp11 executables from certain older Research and BSD 
unix flavors into NetBSD system calls.  See

http://ftp.lug.udel.edu/pub/oldunix/PDP-11/Emulators/Apout/README/

apout2.3alpha2 has a file called bsd_signal.c which contains 
the following lines to which I have prepended the line numbers:

52 /*
53  * Signal vector "template" used in sigaction call.
54  */
55
56 struct bsd_sigaction {
57	int16_t	sa_handler;		/* signal handler */
58	u_int32_t sa_mask;		/* signal mask to apply */
59	int16_t	sa_flags;		/* see signal options below */
60 };

Here is the gcc command that "make" issues and also some 
messages from gcc:

aluminum: {2} make
gcc -DNATIVES -DINLINE=inline -O3 -Winline -Wall  -finline-functions 
-fomit-frame-pointer  -c bsd_signal.c
bsd_signal.c:57: warning: no semicolon at end of struct or union
bsd_signal.c:57: parse error before `.'
bsd_signal.c:60: parse error before `}'
bsd_signal.c: In function `set_bsdsig_dfl':
bsd_signal.c:91: invalid use of undefined type `struct bsd_sigaction'
bsd_signal.c:92: invalid use of undefined type `struct bsd_sigaction'
bsd_signal.c:92: invalid use of undefined type `struct bsd_sigaction'
bsd_signal.c: In function `do_sigaction':
bsd_signal.c:106: invalid use of undefined type `struct bsd_sigaction'
bsd_signal.c:106: sizeof applied to an incomplete type
bsd_signal.c:116: dereferencing pointer to incomplete type
bsd_signal.c:120: dereferencing pointer to incomplete type
bsd_signal.c:129: invalid use of undefined type `struct bsd_sigaction'
bsd_signal.c:129: sizeof applied to an incomplete type
bsd_signal.c: At top level:
bsd_signal.c:81: storage size of `Sigact' isn't known
*** Error code 1

Stop.

Would someone please be kind enough to answer the following
questions:

1) There _is_ a ";" in line 57, and "end of struct" would seem to refer 
   to line 60, which also has a ";".  Is there _really_ supposed to be 
   another ";", and, if so, where should the additional ";" be placed?

2) There is no "." in line 57, so how can there be a parse error before 
   something that isn't there?

3) What should I do so that the compilation will proceed past line 57 
   and avoid the problems in later lines that refer back to struct 
   bsd_sigaction?

Thanks!

Tom