2002-10-28 21:47:56

by Rob Landley

[permalink] [raw]
Subject: 2.5.44: what's .tmp_export-objs for?

I accidentally did a 2.5.44 kernel build as root rather than my normal user,
so I'm trying to see what clean steps I need to so (as root) to be able to
build the tree again. A normal make clean failed (permission denied deleting
files), so I did an su and a make clean. Exit back to normal user, make
clean, life is good, do a make dep, and it complains about the directory
.tmp_export-objs.

1) Why does the build process use a hidden directory?

2) Why isn't make clean removing something with "tmp" in the name?

Just curious,

Rob

--
http://penguicon.sf.net - Terry Pratchett, Eric Raymond, Pete Abrams, Illiad,
CmdrTaco, liquid nitrogen ice cream, and caffienated jello. Well why not?


2002-10-28 22:25:51

by Kai Germaschewski

[permalink] [raw]
Subject: Re: 2.5.44: what's .tmp_export-objs for?

On Mon, 28 Oct 2002, Rob Landley wrote:

> I accidentally did a 2.5.44 kernel build as root rather than my normal user,
> so I'm trying to see what clean steps I need to so (as root) to be able to
> build the tree again. A normal make clean failed (permission denied deleting
> files), so I did an su and a make clean. Exit back to normal user, make
> clean, life is good, do a make dep, and it complains about the directory
> .tmp_export-objs.
>
> 1) Why does the build process use a hidden directory?

The "make dep" stage generates .ver files for all files listed in
*/Makefile:export-objs. At the same time, it creates a zero-length file
corresponding to each .ver file in .tmp_export-objs, which are needed to
afterwards construct include/linux/modversions.h, which is basically

#include <linux/module/path/obj.ver>

for all objects we created the .ver files for earlier. Basically,
.tmp_export-objs is a complicated way to create a list of filenames,
the reason we cannot just append names to one file is that multiple
'make's may run in parallel (make -j), so that appending to a single file
would be racy.

> 2) Why isn't make clean removing something with "tmp" in the name?

Well, for some traditional reasons, there is a distinction between
"make clean" and "make mrproper", where only the latter really removes
everything.

--Kai

2002-10-28 22:48:43

by Olaf Dietsche

[permalink] [raw]
Subject: Re: 2.5.44: what's .tmp_export-objs for?

Rob Landley <[email protected]> writes:

> I accidentally did a 2.5.44 kernel build as root rather than my normal user,
> so I'm trying to see what clean steps I need to so (as root) to be able to
> build the tree again. A normal make clean failed (permission denied deleting
> files), so I did an su and a make clean. Exit back to normal user, make
> clean, life is good, do a make dep, and it complains about the directory
> .tmp_export-objs.
>
> 1) Why does the build process use a hidden directory?
>
> 2) Why isn't make clean removing something with "tmp" in the name?

"make help" lists a bunch of options. I guess, what you're searching
for is "make mrproper" or even "make distclean".

Regards, Olaf.

2002-10-29 00:01:33

by Rob Landley

[permalink] [raw]
Subject: Re: 2.5.44: what's .tmp_export-objs for?

On Monday 28 October 2002 16:54, Olaf Dietsche wrote:
> Rob Landley <[email protected]> writes:
> > I accidentally did a 2.5.44 kernel build as root rather than my normal
> > user, so I'm trying to see what clean steps I need to so (as root) to be
> > able to build the tree again. A normal make clean failed (permission
> > denied deleting files), so I did an su and a make clean. Exit back to
> > normal user, make clean, life is good, do a make dep, and it complains
> > about the directory .tmp_export-objs.
> >
> > 1) Why does the build process use a hidden directory?
> >
> > 2) Why isn't make clean removing something with "tmp" in the name?
>
> "make help" lists a bunch of options. I guess, what you're searching
> for is "make mrproper" or even "make distclean".

Except that make mrproper deletes the .config file so I'd have to spend
fifteen minutes with menuconfig again unless I know (and remember) to back it
up. :)

I guess make clean is trying to avoid damaging the "make dep" output. I
thought that a big part of Keith Owens' new build system was to get rid of
the horror that is "make dep", but I remember now that Linus rejected it for
some reason. Oh well. Just curious...

Rob

--
http://penguicon.sf.net - Terry Pratchett, Eric Raymond, Pete Abrams, Illiad,
CmdrTaco, liquid nitrogen ice cream, and caffienated jello. Well why not?