Re: ["Michael N. Lipp" <MNL@MNL.de>] Can't compile linus 2.2.17 with latest gcc due to checksum.S

From: Jakub Jelinek (jakub@redhat.com)
Date: Tue Sep 26 2000 - 06:26:16 EST


On Tue, Sep 26, 2000 at 08:20:49AM +0200, Michael N. Lipp wrote:
> Hi,
>
> I can't compile the latest linux kernel with the latest gcc due to a
> strange define in checksum.S. The gcc preprocessor complains about
> the usage of elipses in the macros
>
> #define SRC(y...) \
> 9999: y; \
> .section __ex_table, "a"; \
> .long 9999b, 6001f ; \
> .previous
>
> #define DST(y...) \
> 9999: y; \
> .section __ex_table, "a"; \
> .long 9999b, 6002f ; \
> .previous
>
> And I do agree, they look very strange. I tried adding comma
> (#define SRC(y,...)) as this is what it should look like, but then
> I get errors for the usage lines (SRC(1:movw (%esi), %bx)) and
> again I understand the preprocessor very well.
>
> As egcs and gcc have re-merged and thus the latest gcc is really
> the next egcs, I consider this a real problem.

You should not compile 2.2.x kernels with latest gcc, use egcs-1.1.2 for it.
Nobody has actually tested if 2.2.x kernels work with gcc 2.96, so even if
you get over this (hint - remove -traditional from checksum.S's gcc
options), you might be surprised by other things.
The -traditional preprocessor in current gcc is really K&R, so stuff like
GNU restargs extensions are not present there.
If you're on Red Hat Linux 7, use kgcc compiler instead of gcc to build the
kernel, otherwise check out your distribution to see where egcs (or gcc
2.95) lives.

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



This archive was generated by hypermail 2b29 : Sat Sep 30 2000 - 21:00:17 EST