Date: Wed, 13 Dec 2000 18:21:42 -0800 (PST) From: Linus Torvalds <torvalds@transmeta.com> To: "David S. Miller" <davem@redhat.com> Subject: [KBUILD] Re: drivers/scsi/Makefile change in 2.4.0-test12 final On Mon, 11 Dec 2000, David S. Miller wrote: > > Where did this come from? I think I know what it is trying > to do, but unfortunately it has the effect of not having > the module symbol versions generated anymore, breaking all > scsi modules built. Ok. That's it. I had enough. That whole O_OBJS/OX_OBJS/M_OBJS/MX_OBJS/MIX_OBJS mess has to go. It's too much crap to carry around, and when trying to fix one kind of build we invariably break another. I'm putting a test13-pre1 out on linux-kernel, where the Makefiles I care about (and a lot of them that I don't care about) have been all changed over completely to new-style, with _no_ backwards compatibility crap for the old stuff. The pain of changing Makefiles is smaller than the pain of trying to maintain that right. Rules.make doesn't know, care, or look at the xxx_OBJS lists any more. It looks at "obj-y", "obj-m" and "export-objs", and that's pretty much it. It generates everything else from those lists. It removes a lot of crap from a lot of Makefiles that were already new-style but had the compatibility stuff for an old-style Rules.make. David, would you mind converting the arch/sparc Makefiles? It's usually fairly easy. The ones I use have been converted sufficiently for my needs (which definitely means that modules did not get a lot of testing). The rule is: - 'export-objs' should contain all objects that export stuff, whether enabled or not (ie a static list, generated basically by doing something like grep -l EXPORT *.c | sed 's/\.c/\.o/' - 'obj-y' are the enabled object files (and yes, they are possibly multi-lists). - 'obj-m' are the enabled module object files (again, possible multi-lists) - if there are multi-lists, we have "list-multi" and the rest of the deal. No, it's not perfect, but we'd better start fixing this once and for all, or we'll _never_ get it right. This at least throws the old garbage out. Right now it does the version stuff only for object files that are actually active. I think Mec wants it to be done for all object files, so that version files are built for files that aren't even enabled. Mec? Linus -- To unsubscribe, send mail to: linux-kbuild-request@torque.net -- -- with the single word "unsubscribe" in the body of the message. --