Date: Wed, 19 Oct 2011 10:21:06 +0800 From: Paul Ambrose <ambrosehua@gmail.com> To: freebsd-current <freebsd-current@freebsd.org> Cc: freebsd-questions <freebsd-questions@freebsd.org> Subject: config(8) does not add post-processing for source file with compile-with command in sys/conf/files Message-ID: <CAMwoQQ7Qa29eZnEKDmeVjx723AOejSWm%2BffgffEP3ZUUUuvzGA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
when I digged the a PR(bin/160275), I found in_proto.c and if_ethersubr.c ( see sys/conf/files ) does not get ${NORMAL_CTFCONVERT} post-processing in Makefile (/usr/obj/usr/src/sys/MYKERNEL/Makefile) generated by config(8), so the objs does not contain ctf section In /usr/src/usr.sbin/config/mkmakefile.c, line 746 } compilewith = ftp->f_compilewith; if (compilewith == 0) { // no compile-with const char *ftype = NULL; switch (ftp->f_type) { case NORMAL: ftype = "NORMAL"; break; case PROFILING: if (!profiling) continue; ftype = "PROFILE"; break; default: fprintf(stderr, "config: don't know rules for %s\n", np); break; } // only add post-processing for source file without compile-with snprintf(cmd, sizeof(cmd), "${%s_%c%s}\n\t@${NORMAL_CTFCONVERT}", 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); else fprintf(f, "\t%s\n\n", compilewith); } } I wonder whether it was NOT allowed to add post-processing to files with compile-with, license or other issues? if not a license issue, then I wonder if this fix is OK( I test it on 8-stable with gcc, and 9-stable with both gcc and clang) diff --git a/usr.sbin/config/mkmakefile.c b/usr.sbin/config/mkmakefile.c index 2372839..25a85de 100644 --- a/usr.sbin/config/mkmakefile.c +++ b/usr.sbin/config/mkmakefile.c @@ -767,6 +767,14 @@ do_rules(FILE *f) ftp->f_flags & NOWERROR ? "_NOWERROR" : ""); compilewith = cmd; } + //handle CTF issule with NORMAL_C and NORMAL_C_NOERROR + else if (!strncmp(compilewith, "${NORMAL_C",sizeof("${NORMAL_C"))) { + snprintf(cmd, sizeof(cmd), + "%s\n\t@${NORMAL_CTFCONVERT}", compilewith); + compilewith = cmd; + }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMwoQQ7Qa29eZnEKDmeVjx723AOejSWm%2BffgffEP3ZUUUuvzGA>