Module Name: src
Committed By: christos
Date: Sun Aug 9 02:53:21 UTC 2020
Modified Files:
src/usr.bin/make: enum.h var.c
Log Message:
Fix build; gcc does not like VLA's, so hard code the boundary
Use c99 initializers
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/enum.h
cvs rdiff -u -r1.434 -r1.435 src/usr.bin/make/var.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/enum.h
diff -u src/usr.bin/make/enum.h:1.2 src/usr.bin/make/enum.h:1.3
--- src/usr.bin/make/enum.h:1.2 Sat Aug 8 10:43:28 2020
+++ src/usr.bin/make/enum.h Sat Aug 8 22:53:21 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: enum.h,v 1.2 2020/08/08 14:43:28 rillig Exp $ */
+/* $NetBSD: enum.h,v 1.3 2020/08/09 02:53:21 christos Exp $ */
/*
Copyright (c) 2020 Roland Illig <[email protected]>
@@ -59,8 +59,10 @@ const char *Enum_ToString(char *, size_t
#v1 ENUM__SEP ENUM__JOIN_6(v2, v3, v4, v5, v6, v7)
#define ENUM__RTTI(typnam, specs, joined) \
- static const EnumToStringSpec typnam ## _ ## ToStringSpecs[] = specs; \
+ static const EnumToStringSpec typnam ## _ ## ToStringSpecs[] = specs;
+#if 0
static const size_t typnam ## _ ## ToStringSize = sizeof joined
+#endif
#define ENUM__SPEC(v) { v, #v }
Index: src/usr.bin/make/var.c
diff -u src/usr.bin/make/var.c:1.434 src/usr.bin/make/var.c:1.435
--- src/usr.bin/make/var.c:1.434 Sat Aug 8 15:13:39 2020
+++ src/usr.bin/make/var.c Sat Aug 8 22:53:21 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $ */
+/* $NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $";
+static char rcsid[] = "$NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $");
+__RCSID("$NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $");
#endif
#endif /* not lint */
#endif
@@ -2979,6 +2979,7 @@ ApplyModifier_SysV(const char **pp, Appl
#endif
/* Apply any modifiers (such as :Mpattern or :@var@loop@ or :Q or ::=value). */
+
static char *
ApplyModifiers(
const char **pp, /* the parsing position, updated upon return */
@@ -2991,9 +2992,18 @@ ApplyModifiers(
void ** const freePtr /* free this after using the return value */
) {
ApplyModifiersState st = {
- startc, endc, v, ctxt, eflags,
- val, NULL, '\0', ' ', FALSE
- };
+ .startc = startc,
+ .endc = endc,
+ .v = v,
+ .ctxt = ctxt,
+ .eflags = eflags,
+ .val = val,
+ .newVal = NULL,
+ .missing_delim = '\0',
+ .sep = ' ',
+ .oneBigWord = FALSE
+ }
+ ;
const char *p;
const char *mod;
ApplyModifierResult res;
@@ -3054,8 +3064,8 @@ ApplyModifiers(
mod = p;
if (DEBUG(VAR)) {
- char vflags_str[VarFlags_ToStringSize];
- char eflags_str[VarEvalFlags_ToStringSize];
+ char vflags_str[2048];
+ char eflags_str[2048];
Boolean is_single_char = mod[0] != '\0' &&
(mod[1] == endc || mod[1] == ':');
@@ -3201,8 +3211,8 @@ ApplyModifiers(
goto bad_modifier;
if (DEBUG(VAR)) {
- char eflags_str[VarEvalFlags_ToStringSize];
- char vflags_str[VarFlags_ToStringSize];
+ char eflags_str[2048];
+ char vflags_str[2048];
const char *q = st.newVal == var_Error ? "" : "\"";
const char *newVal = st.newVal == var_Error ? "error" : st.newVal;
@@ -3338,7 +3348,7 @@ Var_Parse(const char * const str, GNode
const char *extramodifiers;
Var *v;
char *nstr;
- char eflags_str[VarEvalFlags_ToStringSize];
+ char eflags_str[2048];
VAR_DEBUG("%s: %s with %s\n", __func__, str,
Enum_ToString(eflags_str, sizeof eflags_str, eflags,