Revert r336011,r336012 until I can competently test
This commit is contained in:
parent
f1e0a986a8
commit
417d105fae
@ -2063,15 +2063,6 @@ _kerberos5_bootstrap_tools= \
|
||||
.ORDER: ${_kerberos5_bootstrap_tools:C/^/${_bt}-/g}
|
||||
.endif
|
||||
|
||||
# Later config(8) requires newer libnv cnvlist* API
|
||||
.if ${BOOTSTRAPPING} < 1200070
|
||||
_config= \
|
||||
lib/libnv \
|
||||
usr.sbin/config
|
||||
.else
|
||||
_config= usr.sbin/config
|
||||
.endif
|
||||
|
||||
${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd
|
||||
|
||||
bootstrap-tools: .PHONY
|
||||
@ -2096,7 +2087,7 @@ bootstrap-tools: .PHONY
|
||||
${_lex} \
|
||||
usr.bin/xinstall \
|
||||
${_gensnmptree} \
|
||||
${_config} \
|
||||
usr.sbin/config \
|
||||
${_crunchide} \
|
||||
${_crunchgen} \
|
||||
${_nmtree} \
|
||||
|
@ -14,11 +14,11 @@ kernconf.c: kernconf.tmpl
|
||||
${FILE2C} 'char kernconfstr[] = {' ',0};' < \
|
||||
${SRCDIR}/kernconf.tmpl > kernconf.c
|
||||
|
||||
CFLAGS+= -I. -I${SRCDIR} -I${SRCTOP}/sys
|
||||
CFLAGS+= -I. -I${SRCDIR}
|
||||
|
||||
NO_WMISSING_VARIABLE_DECLARATIONS=
|
||||
|
||||
LIBADD= l nv sbuf
|
||||
LIBADD= l sbuf
|
||||
|
||||
CLEANFILES+= kernconf.c
|
||||
|
||||
|
@ -49,8 +49,6 @@ static const char rcsid[] =
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/cnv.h>
|
||||
#include <sys/nv.h>
|
||||
#include <sys/param.h>
|
||||
#include "y.tab.h"
|
||||
#include "config.h"
|
||||
@ -64,10 +62,6 @@ static void do_objs(FILE *);
|
||||
static void do_before_depend(FILE *);
|
||||
static int opteq(const char *, const char *);
|
||||
static void read_files(void);
|
||||
static void sanitize_envline(char *result, const char *src);
|
||||
static void process_into_file(char *line, FILE *ofp);
|
||||
static void process_into_nvlist(char *line, nvlist_t *nvl);
|
||||
static void dump_nvlist(nvlist_t *nvl, FILE *ofp);
|
||||
|
||||
static void errout(const char *fmt, ...)
|
||||
{
|
||||
@ -186,6 +180,64 @@ makefile(void)
|
||||
moveifchanged(path("Makefile.new"), path("Makefile"));
|
||||
}
|
||||
|
||||
/*
|
||||
* Build hints.c from the skeleton
|
||||
*/
|
||||
void
|
||||
makehints(void)
|
||||
{
|
||||
FILE *ifp, *ofp;
|
||||
char line[BUFSIZ];
|
||||
char *s;
|
||||
struct hint *hint;
|
||||
|
||||
ofp = fopen(path("hints.c.new"), "w");
|
||||
if (ofp == NULL)
|
||||
err(1, "%s", path("hints.c.new"));
|
||||
fprintf(ofp, "#include <sys/types.h>\n");
|
||||
fprintf(ofp, "#include <sys/systm.h>\n");
|
||||
fprintf(ofp, "\n");
|
||||
fprintf(ofp, "char static_hints[] = {\n");
|
||||
STAILQ_FOREACH(hint, &hints, hint_next) {
|
||||
ifp = fopen(hint->hint_name, "r");
|
||||
if (ifp == NULL)
|
||||
err(1, "%s", hint->hint_name);
|
||||
while (fgets(line, BUFSIZ, ifp) != NULL) {
|
||||
/* zap trailing CR and/or LF */
|
||||
while ((s = strrchr(line, '\n')) != NULL)
|
||||
*s = '\0';
|
||||
while ((s = strrchr(line, '\r')) != NULL)
|
||||
*s = '\0';
|
||||
/* remove # comments */
|
||||
s = strchr(line, '#');
|
||||
if (s)
|
||||
*s = '\0';
|
||||
/* remove any whitespace and " characters */
|
||||
s = line;
|
||||
while (*s) {
|
||||
if (*s == ' ' || *s == '\t' || *s == '"') {
|
||||
while (*s) {
|
||||
s[0] = s[1];
|
||||
s++;
|
||||
}
|
||||
/* start over */
|
||||
s = line;
|
||||
continue;
|
||||
}
|
||||
s++;
|
||||
}
|
||||
/* anything left? */
|
||||
if (*line == '\0')
|
||||
continue;
|
||||
fprintf(ofp, "\"%s\\0\"\n", line);
|
||||
}
|
||||
fclose(ifp);
|
||||
}
|
||||
fprintf(ofp, "\"\\0\"\n};\n");
|
||||
fclose(ofp);
|
||||
moveifchanged(path("hints.c.new"), path("hints.c"));
|
||||
}
|
||||
|
||||
static void
|
||||
sanitize_envline(char *result, const char *src)
|
||||
{
|
||||
@ -243,87 +295,6 @@ sanitize_envline(char *result, const char *src)
|
||||
*dst = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
process_into_file(char *line, FILE *ofp)
|
||||
{
|
||||
char result[BUFSIZ];
|
||||
|
||||
sanitize_envline(result, line);
|
||||
/* anything left? */
|
||||
if (*result == '\0')
|
||||
return;
|
||||
fprintf(ofp, "\"%s\\0\"\n", result);
|
||||
}
|
||||
|
||||
static void
|
||||
process_into_nvlist(char *line, nvlist_t *nvl)
|
||||
{
|
||||
char result[BUFSIZ], *s;
|
||||
|
||||
sanitize_envline(result, line);
|
||||
/* anything left? */
|
||||
if (*result == '\0')
|
||||
return;
|
||||
s = strchr(result, '=');
|
||||
*s = 0;
|
||||
if (nvlist_exists(nvl, result))
|
||||
nvlist_free(nvl, result);
|
||||
nvlist_add_string(nvl, result, s + 1);
|
||||
}
|
||||
|
||||
static void
|
||||
dump_nvlist(nvlist_t *nvl, FILE *ofp)
|
||||
{
|
||||
const char *name;
|
||||
void *cookie;
|
||||
|
||||
if (nvl == NULL)
|
||||
return;
|
||||
|
||||
while (!nvlist_empty(nvl)) {
|
||||
cookie = NULL;
|
||||
name = nvlist_next(nvl, NULL, &cookie);
|
||||
fprintf(ofp, "\"%s=%s\\0\"\n", name,
|
||||
cnvlist_get_string(cookie));
|
||||
|
||||
cnvlist_free_string(cookie);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Build hints.c from the skeleton
|
||||
*/
|
||||
void
|
||||
makehints(void)
|
||||
{
|
||||
FILE *ifp, *ofp;
|
||||
nvlist_t *nvl;
|
||||
char line[BUFSIZ];
|
||||
struct hint *hint;
|
||||
|
||||
ofp = fopen(path("hints.c.new"), "w");
|
||||
if (ofp == NULL)
|
||||
err(1, "%s", path("hints.c.new"));
|
||||
fprintf(ofp, "#include <sys/types.h>\n");
|
||||
fprintf(ofp, "#include <sys/systm.h>\n");
|
||||
fprintf(ofp, "\n");
|
||||
fprintf(ofp, "char static_hints[] = {\n");
|
||||
nvl = nvlist_create(0);
|
||||
STAILQ_FOREACH(hint, &hints, hint_next) {
|
||||
ifp = fopen(hint->hint_name, "r");
|
||||
if (ifp == NULL)
|
||||
err(1, "%s", hint->hint_name);
|
||||
while (fgets(line, BUFSIZ, ifp) != NULL)
|
||||
process_into_nvlist(line, nvl);
|
||||
dump_nvlist(nvl, ofp);
|
||||
fclose(ifp);
|
||||
}
|
||||
nvlist_destroy(nvl);
|
||||
fprintf(ofp, "\"\\0\"\n};\n");
|
||||
fclose(ofp);
|
||||
moveifchanged(path("hints.c.new"), path("hints.c"));
|
||||
}
|
||||
|
||||
/*
|
||||
* Build env.c from the skeleton
|
||||
*/
|
||||
@ -331,8 +302,7 @@ void
|
||||
makeenv(void)
|
||||
{
|
||||
FILE *ifp, *ofp;
|
||||
nvlist_t *nvl;
|
||||
char line[BUFSIZ];
|
||||
char line[BUFSIZ], result[BUFSIZ], *linep;
|
||||
struct envvar *envvar;
|
||||
|
||||
ofp = fopen(path("env.c.new"), "w");
|
||||
@ -342,20 +312,27 @@ makeenv(void)
|
||||
fprintf(ofp, "#include <sys/systm.h>\n");
|
||||
fprintf(ofp, "\n");
|
||||
fprintf(ofp, "char static_env[] = {\n");
|
||||
nvl = nvlist_create(0);
|
||||
STAILQ_FOREACH(envvar, &envvars, envvar_next) {
|
||||
if (envvar->env_is_file) {
|
||||
ifp = fopen(envvar->env_str, "r");
|
||||
if (ifp == NULL)
|
||||
err(1, "%s", envvar->env_str);
|
||||
while (fgets(line, BUFSIZ, ifp) != NULL)
|
||||
process_into_nvlist(line, nvl);
|
||||
dump_nvlist(nvl, ofp);
|
||||
while (fgets(line, BUFSIZ, ifp) != NULL) {
|
||||
sanitize_envline(result, line);
|
||||
/* anything left? */
|
||||
if (*result == '\0')
|
||||
continue;
|
||||
fprintf(ofp, "\"%s\\0\"\n", result);
|
||||
}
|
||||
fclose(ifp);
|
||||
} else
|
||||
process_into_file(envvar->env_str, ofp);
|
||||
} else {
|
||||
linep = envvar->env_str;
|
||||
sanitize_envline(result, linep);
|
||||
if (*result == '\0')
|
||||
continue;
|
||||
fprintf(ofp, "\"%s\\0\"\n", result);
|
||||
}
|
||||
}
|
||||
nvlist_destroy(nvl);
|
||||
fprintf(ofp, "\"\\0\"\n};\n");
|
||||
fclose(ofp);
|
||||
moveifchanged(path("env.c.new"), path("env.c"));
|
||||
|
Loading…
Reference in New Issue
Block a user