diff mbox

[GIT] kbuild

Message ID 20090420024954.GW26366@ZenIV.linux.org.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Al Viro April 20, 2009, 2:49 a.m. UTC
On Mon, Apr 20, 2009 at 02:41:58AM +0100, Al Viro wrote:
> On Sun, Apr 19, 2009 at 05:52:32PM -0700, Linus Torvalds wrote:
> > 
> > 
> > On Mon, 20 Apr 2009, Sam Ravnborg wrote:
> > > 
> > > You will soon see a path from me where I fix sh too.
> > 
> > Can we do a global 'sed s:asm/asm-offsets.h:generated/asm-offsets.h:g' 
> > thing too? And then get rid of the include/asm symlink?
> > 
> > That asm-offsets.h mess is scary. I don't quite know why kvm on ia64 seems 
> > to do it's own asm-offsets.h file, for example. And arch/blackfin/Makefile 
> > mentions arch/$(ARCH)/include/asm/asm-offsets.h (but does it actually do 
> > one?).
> 
> We'll need to update uml as well (contents of shared/kern_constants.h)

BTW, while we are at it...  There's a way to deal with arch/um without
that kind of contortions, provided that we are willing to use -idirafter.

For the current tree the minimal patch would be just this, and after that
we can simply replace all kern_constants.h includes with asm/asm-offsets.h
or generated/asm-offsets.h.  And remove kern_constants.h completely once
that is done.

Moreover, once include/generated gets in, we can move user_constants.h
over there and lose the "add -I$(SHARED_HEADERS) to ARCH_INCLUDE for
O=... builds bit" in arch/um/Makefile as well.


--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Al Viro April 20, 2009, 5:15 a.m. UTC | #1
On Mon, Apr 20, 2009 at 06:45:51AM +0200, Sam Ravnborg wrote:

> For kernel proper the use of -idirafter would be confusing.
> But for um alone we should be safe provided it is properly commented.

Less than for all um - it's only for USER_OBJ there.  It is special,
simply because for uml the counterpart of really low-level glue has
to talk to libc.  So there we have separation into "normal kernel source"
and "userland code that uses userland headers, calls libc functions, etc."
 
> I have already fixed um the obvious way for asm-offsets in my local tree.
> But if you prefer I can add a -dirafter based patch before the "move
> asm-offsets.h to incldue/generated" patch.

I've dumped several header cleanup patches for uml into
git://git.kernel.org/pub/scm/linux/kernel/git/viro/um-header.git/ 
including the -idirafter, move of user_constants.h, etc.
Another fun thing: user.h used to be included directly by just about
every userland-side file.  Switched it to -include user.h (for USER_CFLAGS,
of course - not for normal stuff), killed includes, got rid of shitloads
of kern_constants.h includes at the same time.  At which point getting
rid of kern_constants.h became trivial.

Up to Jeff's approval, obviously - *including* -idirafter patch.
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/um/Makefile b/arch/um/Makefile
index 0728def..dce2d7f 100644
--- a/arch/um/Makefile
+++ b/arch/um/Makefile
@@ -47,7 +47,7 @@  KBUILD_AFLAGS += $(ARCH_INCLUDE)
 
 USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\
 	$(patsubst -I%,,$(KBUILD_CFLAGS)))) $(ARCH_INCLUDE) $(MODE_INCLUDE) \
-	$(filter -I%,$(CFLAGS)) -D_FILE_OFFSET_BITS=64
+	$(filter -I%,$(CFLAGS)) -D_FILE_OFFSET_BITS=64 -idirafter include
 
 include $(srctree)/$(ARCH_DIR)/Makefile-$(SUBARCH)
 
@@ -150,6 +150,6 @@  $(SHARED_HEADERS)/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s
 
 $(SHARED_HEADERS)/kern_constants.h:
 	$(Q)mkdir -p $(dir $@)
-	$(Q)echo '#include "../../../../include/asm/asm-offsets.h"' >$@
+	$(Q)echo '#include <asm/asm-offsets.h>' >$@
 
 export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS HEADER_ARCH DEV_NULL_PATH