aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2020-04-28 16:09:22 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2020-04-28 16:09:22 +0000
commit5dda1d0b82415c28e54a3b58f4b328ba38dbb3f5 (patch)
treeb270e82bda2a0d9029f60f2069808c1597a2c11a
parent4e4ec35e32b4d1b8664760ad7b5cc71243d55508 (diff)
downloadsrc-5dda1d0b82415c28e54a3b58f4b328ba38dbb3f5.tar.gz
src-5dda1d0b82415c28e54a3b58f4b328ba38dbb3f5.zip
config: Add no-ctfconvert support.
Bump CONFIGVERS to 600018 for this support. Some files may purposely have debug info disabled or are *source files* that attempt to run ctfconvert on them. Currently ctfconvert ignores these errors but I have a change to make the errors real so we can catch real problems like exceeding type limits. Sponsored by: Dell EMC Reviewed by: imp, cem, kevans Differential Revision: https://reviews.freebsd.org/D24535
Notes
Notes: svn path=/head/; revision=360443
-rw-r--r--usr.sbin/config/config.h1
-rw-r--r--usr.sbin/config/configvers.h2
-rw-r--r--usr.sbin/config/mkmakefile.c13
3 files changed, 12 insertions, 4 deletions
diff --git a/usr.sbin/config/config.h b/usr.sbin/config/config.h
index 66da254b6d70..a1591486b390 100644
--- a/usr.sbin/config/config.h
+++ b/usr.sbin/config/config.h
@@ -82,6 +82,7 @@ struct files_name {
#define NO_OBJ 2
#define BEFORE_DEPEND 4
#define NOWERROR 16
+#define NO_CTFCONVERT 32
struct device {
int d_done; /* processed */
diff --git a/usr.sbin/config/configvers.h b/usr.sbin/config/configvers.h
index 6fc8587a98ea..daa57062b1b2 100644
--- a/usr.sbin/config/configvers.h
+++ b/usr.sbin/config/configvers.h
@@ -49,7 +49,7 @@
*
* $FreeBSD$
*/
-#define CONFIGVERS 600017
+#define CONFIGVERS 600018
#define MAJOR_VERS(x) ((x) / 100000)
/* Last config(8) version to require envmode/hintmode */
diff --git a/usr.sbin/config/mkmakefile.c b/usr.sbin/config/mkmakefile.c
index 19861b30b6cf..0a1f2f129aab 100644
--- a/usr.sbin/config/mkmakefile.c
+++ b/usr.sbin/config/mkmakefile.c
@@ -397,7 +397,7 @@ read_file(char *fname)
char *wd, *this, *compilewith, *depends, *clean, *warning;
const char *objprefix;
int compile, match, nreqs, std, filetype, not,
- imp_rule, no_obj, before_depend, nowerror;
+ imp_rule, no_ctfconvert, no_obj, before_depend, nowerror;
fp = fopen(fname, "r");
if (fp == NULL)
@@ -452,6 +452,7 @@ next:
warning = 0;
std = 0;
imp_rule = 0;
+ no_ctfconvert = 0;
no_obj = 0;
before_depend = 0;
nowerror = 0;
@@ -479,6 +480,10 @@ next:
nreqs = 0;
continue;
}
+ if (eq(wd, "no-ctfconvert")) {
+ no_ctfconvert++;
+ continue;
+ }
if (eq(wd, "no-obj")) {
no_obj++;
continue;
@@ -591,8 +596,10 @@ nextparam:;
tp->f_srcprefix = "$S/";
if (imp_rule)
tp->f_flags |= NO_IMPLCT_RULE;
+ if (no_ctfconvert)
+ tp->f_flags |= NO_CTFCONVERT;
if (no_obj)
- tp->f_flags |= NO_OBJ;
+ tp->f_flags |= NO_OBJ | NO_CTFCONVERT;
if (before_depend)
tp->f_flags |= BEFORE_DEPEND;
if (nowerror)
@@ -805,7 +812,7 @@ do_rules(FILE *f)
else
fprintf(f, "\t%s\n", compilewith);
- if (!(ftp->f_flags & NO_OBJ))
+ if (!(ftp->f_flags & NO_CTFCONVERT))
fprintf(f, "\t${NORMAL_CTFCONVERT}\n\n");
else
fprintf(f, "\n");