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, 2 May 2008 09:18:10 +0200
From:	"Vegard Nossum" <vegard.nossum@...il.com>
To:	"Andrew Morton" <akpm@...ux-foundation.org>
Cc:	"Tom Rini" <trini@...nel.crashing.org>,
	torvalds@...ux-foundation.org, bunk@...nel.org,
	venkatesh.pallipadi@...el.com, davem@...emloft.net, mingo@...e.hu,
	tglx@...utronix.de, hpa@...or.com, linux-kernel@...r.kernel.org,
	suresh.b.siddha@...el.com
Subject: Re: huge gcc 4.1.{0,1} __weak problem

Hey :)

On Fri, May 2, 2008 at 1:59 AM, Andrew Morton <akpm@...ux-foundation.org> wrote:
>
> On Thu, 1 May 2008 16:24:47 -0700
>  Tom Rini <trini@...nel.crashing.org> wrote:
>
>  > On Thu, May 01, 2008 at 03:33:49PM -0700, Andrew Morton wrote:
>  > > On Thu, 1 May 2008 15:27:26 -0700 (PDT)
>  > > Linus Torvalds <torvalds@...ux-foundation.org> wrote:
>  > >
>  > > > On Thu, 1 May 2008, Andrew Morton wrote:
>  > > > > >
>  > > > > > I see only the following choices:
>  > > > > > - remove __weak and replace all current usages
>  > > > > > - move all __weak functions into own files, and ensure that also happens
>  > > > > >   for future usages
>  > > > > > - #error for gcc 4.1.{0,1}
>  > > > >
>  > > > > Can we detect the {0,1}?  __GNUC_EVEN_MORE_MINOR__?
>  > > >
>  > > > It's __GNUC_PATCHLEVEL__, I believe.
>  > > >
>  > > > So yes, we can distinguish 4.1.2 (good, and very common) from 4.1.{0,1}
>  > > > (bad, and rather uncommon).
>  > > >
>  > > > And yes, considering that 4.1.1 (and even more so 4.1.0) should be rare to
>  > > > begin with, I think it's better to just not support it.
>  > > >
>  > >
>  > > Drat.  There go my alpha, i386, m68k, s390, sparc and powerpc
>  > > cross-compilers.  Vagard, save me!
>  > >
>  > > Meanwhile I guess I can locally unpatch that patch.
>  >
>  > I know I'll come off as an ass, but you can't make new ones with 4.1.2?
>  > It's not like we're talking about gcc 2.95/96 fun here :)

It's true; crosstool hasn't been much of a trouble (for me anyway). A
couple of combinations that I tried failed.

>  Honestly, I nearly died when I built all those cross-compilers.  Sooooooo
>  many combinations of gcc/binutils/glibc refused to work for obscure
>  reasons.  Compilation on x86_64 just didn't work at all and I ended up
>  having to build everything on a slow i386 box, etc, etc.  The stream of
>  email to Dan got increasingly strident ;)
>
>  I think crosstool has become a lot better since then, judging from the ease
>  with which Jens was able to spin up the powerpc compiler, but the trauma
>  was a life-long thing.
>
>  Vegard has been making noises about (finally!) preparing and maintaining a
>  decent set of cross-compilers for us.  It would be a great service (begs).

Noises? Heh...

So I've only just begun that work. For i386 host we have the following targets:
alpha, arm, ia64, sparc64, sparc, x86_64

though these are largely untested with Linux Kernel. Most of them are
gcc 3.4.5 (this should in theory compile the kernel correctly), though
I found an e-mail from Ingo saying that you need the -tls versions for
stackprotector to work correctly. This might be a good time to ask if
I should be making gcc 4.1.2s instead. I need to recompile in either
case.

In other words, we are NOT fully operational yet :-)

Though H. Peter gave me a directory to stuff it in, you could try it
out if you're impatient:

http://www.kernel.org/pub/tools/crosstool/

(Hm, it seems that all my .asc files disappeared in the transition.. Oh well.)


Vegard

-- 
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
	-- E. W. Dijkstra, EWD1036
--
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