lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 24 Oct 2008 13:52:45 +0100
From:	Alistair John Strachan <alistair@...zero.co.uk>
To:	"Rafael J. Wysocki" <rjw@...k.pl>
Cc:	Linus Torvalds <torvalds@...ux-foundation.org>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: Linux 2.6.28-rc1

On Friday 24 October 2008 12:45:04 Rafael J. Wysocki wrote:
> On Friday, 24 of October 2008, Alistair John Strachan wrote:
> > On Friday 24 October 2008 05:10:29 Linus Torvalds wrote:
> > > It's been two weeks, so it's time to close the merge window. A
> > > 2.6.28-rc1 is out there, and it's hopefully all good.
> >
> > It seems if you have a broken asm/ symlink in include/ (which happened as
> > a result of the x86 header moves, for me) the kernel won't try to update
> > it appropriately, and this breaks "make prepare".
> >
> > $ make    ARCH=x86_64 prepare
> >   CHK     include/linux/version.h
> >   CHK     include/linux/utsrelease.h
> >   GEN     include/asm/asm-offsets.h
> > /bin/sh: include/asm/asm-offsets.h: No such file or directory
> > make[1]: *** [include/asm/asm-offsets.h] Error 1
> > make: *** [prepare0] Error 2
> >
> > rm -f include/asm fixes it
> >
> > This was just from taking a 2.6.27 tree, git clean -d -f, git pull, make
> > oldconfig. Might be a nice thing to fix?
>
> Hm, I didn't have any problems with compiling .28-rc1 on x86_64.
>
> [Confused.]

This should reproduce it (whether or not it's a use-case we care about is 
another matter). First, make sure your include/asm symlink has been removed, 
then execute the following sequence:

git reset --hard v2.6.27 ; git clean -d -f
git status ("Nothing to commit")

cp /path/to/config .config
make oldconfig prepare
git clean -d -f ; git reset --hard
git status ("Nothing to commit")

Observe at this point that include/asm is valid and points to include/asm-x86, 
despite the clean and reset (I guess this file is being ignored). Now:

git reset --hard v2.6.28-rc1 (Or whatever other method you might choose)
git clean -d -f (Removes include/asm-x86)

Observe at this point that include/asm is now invalid, and still points to the 
removed include/asm-x86 directory.

cp /path/to/config .config
make oldconfig prepare

Should fail at this point:

scripts/kconfig/conf -o arch/x86/Kconfig
#
# configuration written to .config
#
scripts/kconfig/conf -s arch/x86/Kconfig
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/linux/utsrelease.h
  UPD     include/linux/utsrelease.h
  CC      kernel/bounds.s
  GEN     include/linux/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  GEN     include/asm/asm-offsets.h
/bin/sh: include/asm/asm-offsets.h: No such file or directory
make[2]: *** [include/asm/asm-offsets.h] Error 1
make[1]: *** [prepare0] Error 2
make: *** [prepare] Error 2

Can you confirm?

I checked out Makefile and I believe it occurs because the current checks only 
make sure a symlink exists, and if it does exist that its target matches up 
with the selected architecture. It doesn't actually check the destination of 
the symlink is valid.

I'd suggest that it should do that too, and if the destination doesn't exist, 
re-write the symlink when it does "mkdir include/asm-x86" further down, but 
I'm not a kbuild expert.

-- 
Cheers,
Alistair.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ