1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-04 09:09:56 +00:00

Revert r336011,r336012 until I can competently test

This commit is contained in:
Kyle Evans 2018-07-05 18:55:42 +00:00
parent f1e0a986a8
commit 417d105fae
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=336013
3 changed files with 76 additions and 108 deletions

View File

@ -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} \

View File

@ -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

View File

@ -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"));