kern/96346: [PATCH] disable build of modules that are already in
kernel image
Robert Millan
rmh at aybabtu.com
Wed Apr 26 06:50:19 UTC 2006
>Number: 96346
>Category: kern
>Synopsis: [PATCH] disable build of modules that are already in kernel image
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Apr 26 06:50:18 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Robert Millan
>Release: GNU/kFreeBSD 5.4-1-586 i586
>Organization:
>Environment:
System: GNU/kFreeBSD io.debian.net 5.4-1-586 #0 Mon Dec 5 19:45:10 CET 2005 i586 i386 AMD-K6(tm) 3D processor GNU/kFreeBSD
Architecture: i586
>Description:
Unless explicitly overriden, in a kernel build all modules are also built;
even those that are already part of the kernel image. These modules are
useless since they can't be loaded. My patch disables them.
>How-To-Repeat:
>Fix:
Index: usr.sbin/config/mkmakefile.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/config/mkmakefile.c,v
retrieving revision 1.86
diff -u -r1.86 mkmakefile.c
--- usr.sbin/config/mkmakefile.c 3 Feb 2006 06:12:10 -0000 1.86
+++ usr.sbin/config/mkmakefile.c 26 Apr 2006 06:39:05 -0000
@@ -70,6 +70,7 @@
static void do_rules(FILE *);
static void do_xxfiles(char *, FILE *);
static void do_objs(FILE *);
+static void do_without_modules(FILE *);
static void do_before_depend(FILE *);
static int opteq(const char *, const char *);
static void read_files(void);
@@ -143,6 +144,8 @@
}
if (eq(line, "%BEFORE_DEPEND\n"))
do_before_depend(ofp);
+ else if (eq(line, "%WITHOUT_MODULES\n"))
+ do_without_modules(ofp);
else if (eq(line, "%OBJS\n"))
do_objs(ofp);
else if (strncmp(line, "%FILES.", 7) == 0)
@@ -613,6 +616,28 @@
}
static void
+do_without_modules(FILE *fp)
+{
+ struct device *dp;
+ int lpos, len;
+ char *cp, *sp;
+
+ fprintf(fp, "MKMODULESENV+= WITHOUT_MODULES=\"");
+ lpos = 34;
+ STAILQ_FOREACH(dp, &dtab, d_next) {
+ sp = dp->d_name;
+ cp = sp + (len = strlen(sp)) - 1;
+ if (len + lpos > 72) {
+ lpos = 8;
+ fprintf(fp, "\\\n\t");
+ }
+ fprintf(fp, "%s ", sp);
+ lpos += len + 1;
+ }
+ fprintf(fp, "\"\n");
+}
+
+static void
do_xxfiles(char *tag, FILE *fp)
{
struct file_list *tp;
Index: sys/conf/Makefile.alpha
===================================================================
RCS file: /home/ncvs/src/sys/conf/Makefile.alpha,v
retrieving revision 1.140
diff -u -r1.140 Makefile.alpha
--- sys/conf/Makefile.alpha 28 Nov 2005 17:51:30 -0000 1.140
+++ sys/conf/Makefile.alpha 26 Apr 2006 06:39:42 -0000
@@ -28,6 +28,8 @@
.endif
.include "$S/conf/kern.pre.mk"
+%WITHOUT_MODULES
+
%BEFORE_DEPEND
%OBJS
Index: sys/conf/Makefile.amd64
===================================================================
RCS file: /home/ncvs/src/sys/conf/Makefile.amd64,v
retrieving revision 1.22
diff -u -r1.22 Makefile.amd64
--- sys/conf/Makefile.amd64 28 Nov 2005 17:51:30 -0000 1.22
+++ sys/conf/Makefile.amd64 26 Apr 2006 06:39:42 -0000
@@ -38,6 +38,8 @@
MKMODULESENV+= MACHINE=amd64
+%WITHOUT_MODULES
+
%BEFORE_DEPEND
%OBJS
Index: sys/conf/Makefile.arm
===================================================================
RCS file: /home/ncvs/src/sys/conf/Makefile.arm,v
retrieving revision 1.26
diff -u -r1.26 Makefile.arm
--- sys/conf/Makefile.arm 27 Mar 2006 00:32:46 -0000 1.26
+++ sys/conf/Makefile.arm 26 Apr 2006 06:39:42 -0000
@@ -94,6 +94,8 @@
rm ${KERNEL_KO}.tmp.gz ${KERNEL_KO}.tramp.noheader opt_kernname.h \
inflate-tramp.o
+%WITHOUT_MODULES
+
%BEFORE_DEPEND
%OBJS
Index: sys/conf/Makefile.i386
===================================================================
RCS file: /home/ncvs/src/sys/conf/Makefile.i386,v
retrieving revision 1.271
diff -u -r1.271 Makefile.i386
--- sys/conf/Makefile.i386 29 Jan 2006 03:32:19 -0000 1.271
+++ sys/conf/Makefile.i386 26 Apr 2006 06:39:42 -0000
@@ -34,6 +34,8 @@
MKMODULESENV+= MACHINE=${MACHINE}
+%WITHOUT_MODULES
+
%BEFORE_DEPEND
%OBJS
Index: sys/conf/Makefile.ia64
===================================================================
RCS file: /home/ncvs/src/sys/conf/Makefile.ia64,v
retrieving revision 1.67
diff -u -r1.67 Makefile.ia64
--- sys/conf/Makefile.ia64 28 Nov 2005 17:51:31 -0000 1.67
+++ sys/conf/Makefile.ia64 26 Apr 2006 06:39:42 -0000
@@ -38,6 +38,8 @@
ASM_CFLAGS= -x assembler-with-cpp -Wa,-x -DLOCORE ${CFLAGS}
+%WITHOUT_MODULES
+
%BEFORE_DEPEND
%OBJS
Index: sys/conf/Makefile.pc98
===================================================================
RCS file: /home/ncvs/src/sys/conf/Makefile.pc98,v
retrieving revision 1.173
diff -u -r1.173 Makefile.pc98
--- sys/conf/Makefile.pc98 29 Jan 2006 03:32:19 -0000 1.173
+++ sys/conf/Makefile.pc98 26 Apr 2006 06:39:42 -0000
@@ -34,6 +34,8 @@
MKMODULESENV+= MACHINE=${MACHINE}
+%WITHOUT_MODULES
+
%BEFORE_DEPEND
%OBJS
Index: sys/conf/Makefile.powerpc
===================================================================
RCS file: /home/ncvs/src/sys/conf/Makefile.powerpc,v
retrieving revision 1.283
diff -u -r1.283 Makefile.powerpc
--- sys/conf/Makefile.powerpc 28 Nov 2005 17:51:31 -0000 1.283
+++ sys/conf/Makefile.powerpc 26 Apr 2006 06:39:42 -0000
@@ -37,6 +37,8 @@
CFLAGS+= -fno-omit-frame-pointer
.endif
+%WITHOUT_MODULES
+
%BEFORE_DEPEND
%OBJS
Index: sys/conf/Makefile.sparc64
===================================================================
RCS file: /home/ncvs/src/sys/conf/Makefile.sparc64,v
retrieving revision 1.38
diff -u -r1.38 Makefile.sparc64
--- sys/conf/Makefile.sparc64 28 Nov 2005 17:51:31 -0000 1.38
+++ sys/conf/Makefile.sparc64 26 Apr 2006 06:39:42 -0000
@@ -32,6 +32,8 @@
MDOBJS= exception.o interrupt.o
+%WITHOUT_MODULES
+
%BEFORE_DEPEND
%OBJS
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list