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_at_${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 _at__at_ -767,6 +767,14 _at__at_ 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_at_${NORMAL_CTFCONVERT}", compilewith); + compilewith = cmd; + }Received on Wed Oct 19 2011 - 00:21:08 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:19 UTC