Re: [PATCH] get rid of the last symlink in uml build

Al Viro
2008-12-17T08:37:46Z

On Wed, Dec 17, 2008 at 08:26:20AM +0100, Sam Ravnborg wrote:
> On Wed, Dec 17, 2008 at 06:12:50AM +0000, Al Viro wrote:
> > We need to make asm-offsets.h contents visible for objects built
> > with userland headers. Instead of creating a symlink, just have the
> > file with equivalent include (relative to location of header) created
> > once.
> >
> > That kills the last symlink used in arch/um builds. Have fun...
>
> great!
> Soon we have no more symlinks generated for a kernel build.
> um used to be the worst of all but you have fixed it all up now.
>
> Minor comment below.

> > -archprepare: $(ARCH_DIR)/include/shared/user_constants.h
> > -prepare: $(ARCH_DIR)/include/shared/kern_constants.h
> > +archprepare: $(SHARED_HEADERS)/user_constants.h
> > +prepare: $(SHARED_HEADERS)/kern_constants.h
>
> arch Makefiles should rely solely on the archprepare target.
> That cleanup could come later as it is independent from
> the purpose of this patch.

Actually, taking both to archprepare would work fine. kern_constants.h
used to be generated in very interesting ways before it became a copy
of asm-offsets.h and that's what lead to this mess.

These days we can safely take the rudiments out. Note that asm-offsets.h
generation doesn't care about that file, be it a symlink or #include "....",
for obvious reasons and neither does generation of user_constants.h.

The only remaining constraints are
* asm-offsets.s needs user_constants.h already created.
* we want kern_constants.h available during the build itself (i.e.
at the same kind of places where asm-offsets.h could be used).

AFAICS, having archprepare depend on user_constants.h and kern_constants.h
would do just fine. Note that we don't care how these two are ordered;
it's asm-offsets.h that can't be created without user_constants.h.