RFC: x86: kill binutils 2.16.x?

Kyle Moffett kyle at moffetthome.net
Wed Mar 9 06:57:29 EST 2011


On Thu, Mar 3, 2011 at 03:30, Ingo Molnar <mingo at elte.hu> wrote:
> This is how specific GAS functionality is tested in arch/powerpc:
>
>        @if ! /bin/echo dssall | $(AS) -many -o $(TOUT) >/dev/null 2>&1 ; then \
>                echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build ' ; \
>                echo 'correctly with old versions of binutils.' ; \
>                echo '*** Please upgrade your binutils to 2.12.1 or newer' ; \
>                false ; \
>        fi
>
> This would also be a 'constructive' (and safest) way of blacklisting binutils: we'd
> really only exclude binutils that is truly buggy.

Hrm... well... actually...

It's funny that you brought up this particular case.  While I agree
that it's good in general, it's causing problems for me building a
kernel using a recent e500 gcc/binutils (triplet
"powerpc-linux-gnuspe").

Specifically the e500 doesn't have a normal PowerPC FPU, it has a
custom FPU built using extended integer registers instead, and it
happens to borrow the AltiVec opcode range to do it.

When trying to port Debian to the platform we were getting SIGILL's
all over the place until binutils got updated to reject all of the
unsupported opcodes on this particular platform.  Now of course we get
build errors, but that's a lot easier to debug and fix. :-D

Basically, binutils no longer supports "-many" (because too many
opcodes conflict), and the test itself would fail anyways (because
"dssall" is not valid on "any" PowerPC).

So while I think that it is entirely reasonable to add a similar test
for buggy x86 binutils, I'm actually about to send a patch to remove
that particular check from the powerpc Makefile.  Since the "required"
binutils 2.12.1 was released in May 2002 (almost 9 years ago) it's
probably not even worth testing for anymore.

Cheers,
Kyle Moffett


More information about the Linuxppc-dev mailing list