diff options
author | rstone <rstone@FreeBSD.org> | 2011-11-10 21:07:14 +0000 |
---|---|---|
committer | rstone <rstone@FreeBSD.org> | 2011-11-10 21:07:14 +0000 |
commit | 975afb573ac8cf465f2b2fd0a57385899e446948 (patch) | |
tree | 294715c8c19a96bf30b4a7a7aacfd94406b8344d /usr.sbin | |
parent | b920116b3673773e5155e62548e2b97c3a5d3e65 (diff) | |
download | FreeBSD-src-975afb573ac8cf465f2b2fd0a57385899e446948.zip FreeBSD-src-975afb573ac8cf465f2b2fd0a57385899e446948.tar.gz |
The generated Makefile for the kernel was not running ctfconvert on
object files corresponding to source files that had the compile-with
option set in conf/files. This means that any fbt probes for functions
in that object file would not have correct argument types.
The fix is to run ctfconvert on any target file that does not have the
no-obj option set in files.
PR: bin/160275
Reported by: Paul Ambrose (ambrosehua AT gmail DOT com)
MFC after: 1 week
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/config/mkmakefile.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.sbin/config/mkmakefile.c b/usr.sbin/config/mkmakefile.c index 2372839..28edb1c 100644 --- a/usr.sbin/config/mkmakefile.c +++ b/usr.sbin/config/mkmakefile.c @@ -762,16 +762,21 @@ do_rules(FILE *f) break; } snprintf(cmd, sizeof(cmd), - "${%s_%c%s}\n\t@${NORMAL_CTFCONVERT}", ftype, + "${%s_%c%s}\n", ftype, toupper(och), ftp->f_flags & NOWERROR ? "_NOWERROR" : ""); compilewith = cmd; } *cp = och; if (strlen(ftp->f_objprefix)) - fprintf(f, "\t%s $S/%s\n\n", compilewith, np); + fprintf(f, "\t%s $S/%s\n", compilewith, np); else - fprintf(f, "\t%s\n\n", compilewith); + fprintf(f, "\t%s\n", compilewith); + + if (!(ftp->f_flags & NO_OBJ)) + fprintf(f, "\t@${NORMAL_CTFCONVERT}\n\n"); + else + fprintf(f, "\n"); } } |