Index: include/protocols/dumprestore.h =================================================================== --- include/protocols/dumprestore.h +++ include/protocols/dumprestore.h @@ -76,7 +76,11 @@ */ typedef uint32_t dump_ino_t; -union u_spcl { +/* + * The instance of union u_spcl declared here is explicitly not defined in any + * library; your application including this header must define it as needed. + */ +extern union u_spcl { char dummy[TP_BSIZE]; struct s_spcl { int32_t c_type; /* record type (see below) */ Index: sbin/dump/tape.c =================================================================== --- sbin/dump/tape.c +++ sbin/dump/tape.c @@ -72,6 +72,8 @@ char *nexttape; FILE *popenfp = NULL; +union u_spcl u_spcl; + static int atomic(ssize_t (*)(), int, char *, int); static void doslave(int, int); static void enslave(void); Index: sbin/restore/tape.c =================================================================== --- sbin/restore/tape.c +++ sbin/restore/tape.c @@ -94,6 +94,8 @@ static char lnkbuf[MAXPATHLEN + 1]; static int pathlen; +union u_spcl u_spcl; + int Bcvt; /* Swap Bytes */ int oldinofmt; /* FreeBSD 1 inode format needs cvt */