Skip to contentSkip to conversation

2.5.44: what's .tmp_export-objs for?

DISCUSSION Rob Landley 3 participants 4 messages Oct 28, 2002 – Oct 29, 2002

lore
Share & tools
lore
#0 lore raw

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

Signature · 2 lines
http://penguicon.sf.net - Terry Pratchett, Eric Raymond, Pete Abrams, Illiad, 
CmdrTaco, liquid nitrogen ice cream, and caffienated jello.  Well why not?
#1 lore raw
Quoted 8 lines · Rob Landley

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.

Quoted 1 line

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

#2 lore raw
In reply to Rob Landley
Quoted 10 lines · Rob Landley

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.

#3 lore raw
Quoted 8 lines · Olaf Dietsche
Quoted 7 lines · Rob Landley

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.

Quoted 6 lines
Quoted 3 lines

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

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