[Date Prev][Date Next] [Chronological] [Thread] [Top]

SCO complitation error slap.h



Thanks for the tip.

I found the problem to be a define of f_next in /usr/include/sys/file.h as
below. I can only assume the file and filter definitions should have no
correlation.

typedef struct file
{
        ushort  f_flag;
        cnt_t   f_count;                /* reference count */
        union {
                struct inode *f_uinode; /* pointer to inode structure */
                struct file  *f_unext;  /* pointer to next entry in freelist
*/
        } f_up;
        union {
                off_t   f_off;
                struct  file *f_slnk;   /* XENIX semaphore queue */
        } f_un;
} file_t;

#define f_inode         f_up.f_uinode
#define f_next          f_up.f_unext
<<<<<THIS IS A CONFLICT>>>>>
#define f_offset        f_un.f_off      /* read/write character pointer */

This gave the result below with the -E -dD repl.c > repl.i

typedef struct filter {
 unsigned long f_choice;

 union {

  char  *f_un_type;


  Ava  f_un_ava;


  struct filter *f_un_complex;


  struct sub {
   char *f_un_sub_type;
   char *f_un_sub_initial;
   char **f_un_sub_any;
   char *f_un_sub_final;
  } f_un_sub;
 } f_un;
#define f_type  f_un.f_un_type
#define f_ava  f_un.f_un_ava
#define f_avtype f_un.f_un_ava.ava_type
#define f_avvalue f_un.f_un_ava.ava_value
#define f_and  f_un.f_un_complex
#define f_or  f_un.f_un_complex
#define f_not  f_un.f_un_complex
#define f_list  f_un.f_un_complex
#define f_sub  f_un.f_un_sub
#define f_sub_type f_un.f_un_sub.f_un_sub_type
#define f_sub_initial f_un.f_un_sub.f_un_sub_initial
#define f_sub_any f_un.f_un_sub.f_un_sub_any
#define f_sub_final f_un.f_un_sub.f_un_sub_final

 struct filter * f_up.f_unext ;    <<<THE EXPANSION THAT THE COMPILER DIDN'T
LIKE>>>
} Filter;                                      <<< Yes there is a space
before the f_up.

I can only assume that this was not supposed to happen and the name confict
is a problem. I have recompiled commenting out the references to
<sys/files.h> in slapd/repl.c slapd/lock.c and slurpd/lock.c. It seems to
complile OK. Does anyone else have this conflict?


Stephen Collier
IT Manager
Panavision Australia