2005-05-17 21:22:17

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] uml: remove elf.h

Linux Kernel Mailing List <[email protected]> wrote:
>
> tree a3d85d9f43f64bbd8437c973caf98f79d95b5f3e
> parent a123edab03ac39e08c2f9cb4fc1af07e099c68bc
> author Paolo 'Blaisorblade' Giarrusso <[email protected]> Tue, 17 May 2005 11:53:14 -0700
> committer Linus Torvalds <[email protected]> Tue, 17 May 2005 21:59:11 -0700
>
> [PATCH] uml: remove elf.h
>
> Actually remove elf.h in the tree. The previous patch, due to a quilt
> bug/misuse, left it in the tree as a 0-length file, preventing the build to
> see it as missing and to generate a symlink in its place.
>
> Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> Signed-off-by: Linus Torvalds <[email protected]>
>
> asm-um/elf.h | 0
> 1 files changed
>
> Index: include/asm-um/elf.h

Hot damn, this zero-length file is hard to get rid of. I pulled Linus's
tree this morning with this bizarre concoction:

cd $GIT_TREE
cg-pull origin
tagsha1=$(cat .git/refs/tags/v$(kversion))
t=$(cat-file tag $tagsha1 | head -n 1 | sed -e 's/object //')
cg-diff -r $t -r $(cat .git/refs/heads/origin) > $PULL/linus.patch

and the resulting diff has:

Index: include/asm-ia64/ioctl32.h
===================================================================
--- eed337ef5e9ae7d62caa84b7974a11fddc7f06e0/include/asm-ia64/ioctl32.h (mode:100644 sha1:d0d227f45e05d23705ac849f4bd5c06a28288b58)
+++ 6bb5a1cf91bbda8308ec7e6d900cb89071907dcd/include/asm-ia64/ioctl32.h (mode:100644 sha1:e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
@@ -1 +0,0 @@
-#include <linux/ioctl32.h>
Index: include/asm-um/elf.h
===================================================================
Index: include/asm-x86_64/apicdef.h
===================================================================

which of course doesn't remove that file at all.

And I bet that when Linus releases patch-2.6.12-rc5.gz and patch-2.6.12.gz,
they will have the same construct. AFAICT, the patch-based people will
need to download a full new tarball to get rid of this dang file.

It all wouldn't really matter much, except apparently the mere presence of
this file breaks the UML build.

Frazzle. Paolo, I'm almost wondering if we should change that test to also
check for a zero-length file.


2005-05-17 21:35:07

by Petr Baudis

[permalink] [raw]
Subject: Re: [PATCH] uml: remove elf.h

Dear diary, on Tue, May 17, 2005 at 11:21:13PM CEST, I got a letter
where Andrew Morton <[email protected]> told me that...
> Linux Kernel Mailing List <[email protected]> wrote:
> >
> > tree a3d85d9f43f64bbd8437c973caf98f79d95b5f3e
> > parent a123edab03ac39e08c2f9cb4fc1af07e099c68bc
> > author Paolo 'Blaisorblade' Giarrusso <[email protected]> Tue, 17 May 2005 11:53:14 -0700
> > committer Linus Torvalds <[email protected]> Tue, 17 May 2005 21:59:11 -0700
> >
> > [PATCH] uml: remove elf.h
> >
> > Actually remove elf.h in the tree. The previous patch, due to a quilt
> > bug/misuse, left it in the tree as a 0-length file, preventing the build to
> > see it as missing and to generate a symlink in its place.
> >
> > Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[email protected]>
> > Signed-off-by: Andrew Morton <[email protected]>
> > Signed-off-by: Linus Torvalds <[email protected]>
> >
> > asm-um/elf.h | 0
> > 1 files changed
> >
> > Index: include/asm-um/elf.h
>
> Hot damn, this zero-length file is hard to get rid of. I pulled Linus's
> tree this morning with this bizarre concoction:
>
> cd $GIT_TREE
> cg-pull origin
> tagsha1=$(cat .git/refs/tags/v$(kversion))
> t=$(cat-file tag $tagsha1 | head -n 1 | sed -e 's/object //')
> cg-diff -r $t -r $(cat .git/refs/heads/origin) > $PULL/linus.patch
>
> and the resulting diff has:
>
> Index: include/asm-ia64/ioctl32.h
> ===================================================================
> --- eed337ef5e9ae7d62caa84b7974a11fddc7f06e0/include/asm-ia64/ioctl32.h (mode:100644 sha1:d0d227f45e05d23705ac849f4bd5c06a28288b58)
> +++ 6bb5a1cf91bbda8308ec7e6d900cb89071907dcd/include/asm-ia64/ioctl32.h (mode:100644 sha1:e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
> @@ -1 +0,0 @@
> -#include <linux/ioctl32.h>
> Index: include/asm-um/elf.h
> ===================================================================
> Index: include/asm-x86_64/apicdef.h
> ===================================================================
>
> which of course doesn't remove that file at all.
>
> And I bet that when Linus releases patch-2.6.12-rc5.gz and patch-2.6.12.gz,
> they will have the same construct. AFAICT, the patch-based people will
> need to download a full new tarball to get rid of this dang file.

Feeding
--- include/asm-um/elf.h
+++ /dev/null
patch to cg-patch would make Cogito kill it. No help for regular patch
though, I fear. Perhaps some artificial timestamp could help to the file
removal heuristic in GNU patch. Or passing it -E, but that will
obviously do the wrong thing to any other zero-sized files.

--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor

2005-05-17 21:41:06

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] uml: remove elf.h



On Tue, 17 May 2005, Andrew Morton wrote:
>
> And I bet that when Linus releases patch-2.6.12-rc5.gz and patch-2.6.12.gz,
> they will have the same construct. AFAICT, the patch-based people will
> need to download a full new tarball to get rid of this dang file.

Or just run "make distclean" once.

> It all wouldn't really matter much, except apparently the mere presence of
> this file breaks the UML build.
>
> Frazzle. Paolo, I'm almost wondering if we should change that test to also
> check for a zero-length file.

How many people are affected? The file _is_ gone in the git archives, and
in fact I wonder if it was ever there, but I didn't bother to check.

Linus

2005-05-17 21:45:45

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] uml: remove elf.h



On Tue, 17 May 2005, Petr Baudis wrote:
>
> Perhaps some artificial timestamp could help to the file
> removal heuristic in GNU patch. Or passing it -E, but that will
> obviously do the wrong thing to any other zero-sized files.

-E is always correct for the kernel, since zero-length files aren't really
supposed to exist anyway, and "make distclean" has always removed them.

Linus