Has anyone gotten NYU's gbupdate program (for automatically adding the
nightly updates to GenBank) to compile under AT&T Unix? I have the Unix
version (v.2.3) obtained from goober.phri.nyu.edu.
If I run make on the unmodified Makefile, I get
> cc -g -c gbupdate.c
> ./gbupdate.h: 60: extra tokens (ignored) after directive
> gbupdate.c: 580: extra tokens (ignored) after directive
> "/usr/include/sys/file.h", line 27: syntax error
> "/usr/include/sys/file.h", line 27: cannot recover from earlier errors:
> goodbye!
> *** Error code 1
>> Stop.
Part of this is fixable: line 60 in gbupdate.h is
#endif GBUPDATE_H
and line 580 of gbupdate.c is
#endif DONT_CHECK_SPACE
If you substitute an unadorned #endif for both of these, the complaints
about extra tokens go away. However, it still dies on sys/file.h. I have
a hard time believing there's really a syntax error in file.h since this
is one of the header files distributed with Unix. (I'm not saying AT&T is
infallible, but one would think that major bugs in file.h would have been
discovered before now.) What's going on here??
P.S. I'm running Interactive v.2.2 (System V r.3.2) which uses the standard
AT&T cc, function library and header files. Here's the relevant portion of
/usr/include/sys/file.h:
18 /*
19 * One file structure is allocated for each open/creat/pipe call.
20 * Main use is to hold the read/write pointer associated with
21 * each open file.
22 */
23
24 typedef struct file
25 {
26 char f_flag;
27 cnt_t f_count; /* reference count */
28 union {
29 struct inode *f_uinode; /* pointer to inode structure */
30 struct file *f_unext; /* pointer to next entry in freelist */
31 } f_up;
32 union {
33 off_t f_off;
34 struct file *f_slnk; /* XENIX semaphore queue */
35 } f_un;
36 } file_t;
I'd very much appreciate hearing from anyone who has a port of gbupdate
to any AT&T-derived system or who has a bright idea about what the problem
may be.
Thanks very much,
James P. H. Fuller
jim%crom2 at nstar.rn.com