From owner-svn-src-user@FreeBSD.ORG Tue Nov 11 10:24:37 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 00D4A1065670; Tue, 11 Nov 2008 10:24:37 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D8F4E8FC20; Tue, 11 Nov 2008 10:24:36 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mABAOakq097325; Tue, 11 Nov 2008 10:24:36 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mABAOaQ8097321; Tue, 11 Nov 2008 10:24:36 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200811111024.mABAOaQ8097321@svn.freebsd.org> From: Doug Rabson Date: Tue, 11 Nov 2008 10:24:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184839 - user/dfr/gssapi/6/usr.sbin/config X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Nov 2008 10:24:37 -0000 Author: dfr Date: Tue Nov 11 10:24:36 2008 New Revision: 184839 URL: http://svn.freebsd.org/changeset/base/184839 Log: MFC: 152811,152862 Modified: user/dfr/gssapi/6/usr.sbin/config/ (props changed) user/dfr/gssapi/6/usr.sbin/config/config.h user/dfr/gssapi/6/usr.sbin/config/configvers.h user/dfr/gssapi/6/usr.sbin/config/mkheaders.c user/dfr/gssapi/6/usr.sbin/config/mkmakefile.c Modified: user/dfr/gssapi/6/usr.sbin/config/config.h ============================================================================== --- user/dfr/gssapi/6/usr.sbin/config/config.h Tue Nov 11 10:21:19 2008 (r184838) +++ user/dfr/gssapi/6/usr.sbin/config/config.h Tue Nov 11 10:24:36 2008 (r184839) @@ -46,7 +46,6 @@ struct file_list { char *f_compilewith; /* special make rule if present */ char *f_depends; /* additional dependancies */ char *f_clean; /* File list to add to clean rule */ - char *f_needs; char *f_warn; /* warning message */ }; @@ -59,7 +58,6 @@ struct files_name { * Types. */ #define NORMAL 1 -#define INVISIBLE 2 #define PROFILING 3 #define NODEPEND 4 #define LOCAL 5 @@ -72,7 +70,6 @@ struct files_name { #define NO_IMPLCT_RULE 1 #define NO_OBJ 2 #define BEFORE_DEPEND 4 -#define ISDUP 8 #define NOWERROR 16 struct device { Modified: user/dfr/gssapi/6/usr.sbin/config/configvers.h ============================================================================== --- user/dfr/gssapi/6/usr.sbin/config/configvers.h Tue Nov 11 10:21:19 2008 (r184838) +++ user/dfr/gssapi/6/usr.sbin/config/configvers.h Tue Nov 11 10:24:36 2008 (r184839) @@ -1,6 +1,6 @@ /* * 6 digits of version. The most significant are branch indicators - * (eg: RELENG_2_2 = 22, -current presently = 60 etc). The least + * (eg: RELENG_2_2 = 22, -current presently = 60 etc). The least * significant digits are incremented for each incompatible change. * * The numbering scheme is inspired by the sys/conf/newvers.sh RELDATE @@ -8,4 +8,4 @@ * * $FreeBSD$ */ -#define CONFIGVERS 600003 +#define CONFIGVERS 600004 Modified: user/dfr/gssapi/6/usr.sbin/config/mkheaders.c ============================================================================== --- user/dfr/gssapi/6/usr.sbin/config/mkheaders.c Tue Nov 11 10:21:19 2008 (r184838) +++ user/dfr/gssapi/6/usr.sbin/config/mkheaders.c Tue Nov 11 10:24:36 2008 (r184839) @@ -50,23 +50,10 @@ static const char rcsid[] = void headers(void) { - struct file_list *fl; struct device *dp; - int match; int errors; errors = 0; - STAILQ_FOREACH(fl, &ftab, f_next) { - if (fl->f_needs != 0) { - match = 0; - STAILQ_FOREACH(dp, &dtab, d_next) { - if (eq(dp->d_name, fl->f_needs)) { - match++; - dp->d_done |= DEVDONE; - } - } - } - } STAILQ_FOREACH(dp, &dtab, d_next) { if (!(dp->d_done & DEVDONE)) { warnx("Error: device \"%s\" is unknown", Modified: user/dfr/gssapi/6/usr.sbin/config/mkmakefile.c ============================================================================== --- user/dfr/gssapi/6/usr.sbin/config/mkmakefile.c Tue Nov 11 10:21:19 2008 (r184838) +++ user/dfr/gssapi/6/usr.sbin/config/mkmakefile.c Tue Nov 11 10:24:36 2008 (r184839) @@ -293,11 +293,11 @@ static void read_file(char *fname) { FILE *fp; - struct file_list *tp, *pf; + struct file_list *tp; struct device *dp; struct opt *op; - char *wd, *this, *needs, *compilewith, *depends, *clean, *warning; - int nreqs, isdup, std, filetype, + char *wd, *this, *compilewith, *depends, *clean, *warning; + int compile, match, nreqs, devfound, std, filetype, imp_rule, no_obj, before_depend, mandatory, nowerror; fp = fopen(fname, "r"); @@ -306,7 +306,7 @@ read_file(char *fname) next: /* * filename [ standard | mandatory | optional ] - * [ dev* | profiling-routine ] [ no-obj ] + * [ dev* [ | dev* ... ] | profiling-routine ] [ no-obj ] * [ compile-with "compile rule" [no-implicit-rule] ] * [ dependency "dependency-list"] [ before-depend ] * [ clean "file-list"] [ warning "text warning" ] @@ -331,17 +331,14 @@ next: fname, this); exit(1); } - if ((pf = fl_lookup(this)) && (pf->f_type != INVISIBLE || pf->f_flags)) - isdup = ISDUP; - else - isdup = 0; - tp = 0; + tp = fl_lookup(this); + compile = 0; + match = 1; nreqs = 0; compilewith = 0; depends = 0; clean = 0; warning = 0; - needs = 0; std = mandatory = 0; imp_rule = 0; no_obj = 0; @@ -365,9 +362,21 @@ next: nextparam: next_word(fp, wd); if (wd == 0) { - if (isdup) - goto next; - goto doneparam; + compile += match; + if (compile && tp == NULL) + goto doneparam; + goto next; + } + if (eq(wd, "|")) { + if (nreqs == 0) { + printf("%s: syntax error describing %s\n", + fname, this); + exit(1); + } + compile += match; + match = 1; + nreqs = 0; + goto nextparam; } if (eq(wd, "no-obj")) { no_obj++; @@ -443,13 +452,14 @@ nextparam: nowerror = 1; goto nextparam; } - if (needs == 0 && nreqs == 1) - needs = ns(wd); - if (isdup) - goto invis; + devfound = 0; /* XXX duplicate device entries */ STAILQ_FOREACH(dp, &dtab, d_next) - if (eq(dp->d_name, wd)) - goto nextparam; + if (eq(dp->d_name, wd)) { + dp->d_done |= DEVDONE; + devfound = 1; + } + if (devfound) + goto nextparam; if (mandatory) { printf("%s: mandatory device \"%s\" not found\n", fname, wd); @@ -461,27 +471,10 @@ nextparam: exit(1); } SLIST_FOREACH(op, &opt, op_next) - if (op->op_value == 0 && opteq(op->op_name, wd)) { - if (nreqs == 1) { - free(needs); - needs = 0; - } + if (op->op_value == 0 && opteq(op->op_name, wd)) goto nextparam; - } -invis: - while ((wd = get_word(fp)) != 0) - ; - if (tp == 0) - tp = new_fent(); - tp->f_fn = this; - tp->f_type = INVISIBLE; - tp->f_needs = needs; - tp->f_flags |= isdup; - tp->f_compilewith = compilewith; - tp->f_depends = depends; - tp->f_clean = clean; - tp->f_warn = warning; - goto next; + match = 0; + goto nextparam; doneparam: if (std == 0 && nreqs == 0) { @@ -497,11 +490,9 @@ doneparam: } if (filetype == PROFILING && profiling == 0) goto next; - if (tp == 0) - tp = new_fent(); + tp = new_fent(); tp->f_fn = this; tp->f_type = filetype; - tp->f_flags &= ~ISDUP; if (imp_rule) tp->f_flags |= NO_IMPLCT_RULE; if (no_obj) @@ -510,13 +501,10 @@ doneparam: tp->f_flags |= BEFORE_DEPEND; if (nowerror) tp->f_flags |= NOWERROR; - tp->f_needs = needs; tp->f_compilewith = compilewith; tp->f_depends = depends; tp->f_clean = clean; tp->f_warn = warning; - if (pf && pf->f_type == INVISIBLE) - pf->f_flags |= ISDUP; /* mark as duplicate */ goto next; } @@ -599,7 +587,7 @@ do_objs(FILE *fp) fprintf(fp, "OBJS="); lpos = 6; STAILQ_FOREACH(tp, &ftab, f_next) { - if (tp->f_type == INVISIBLE || tp->f_flags & NO_OBJ) + if (tp->f_flags & NO_OBJ) continue; sp = tail(tp->f_fn); cp = sp + (len = strlen(sp)) - 1; @@ -635,7 +623,7 @@ do_xxfiles(char *tag, FILE *fp) fprintf(fp, "%sFILES=", SUFF); lpos = 8; STAILQ_FOREACH(tp, &ftab, f_next) - if (tp->f_type != INVISIBLE && tp->f_type != NODEPEND) { + if (tp->f_type != NODEPEND) { len = strlen(tp->f_fn); if (tp->f_fn[len - slen - 1] != '.') continue; @@ -678,8 +666,6 @@ do_rules(FILE *f) char *compilewith; STAILQ_FOREACH(ftp, &ftab, f_next) { - if (ftp->f_type == INVISIBLE) - continue; if (ftp->f_warn) printf("WARNING: %s\n", ftp->f_warn); cp = (np = ftp->f_fn) + strlen(ftp->f_fn) - 1;