Bug 17028 - Gcc error on a kernel compilation
Summary: Gcc error on a kernel compilation
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: gcc
Version: 7.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2000-08-28 11:13 UTC by fleury
Modified: 2008-05-01 15:37 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2000-08-28 11:13:48 UTC
Embargoed:


Attachments (Terms of Use)

Description fleury 2000-08-28 11:13:46 UTC
Hi,
I've got a bug when I compile a 2.2.16 kernel (it comes directly from
kernel.org, I didn't take the rpm for that).

The error is :

checksum.S:231: badly punctuated parameter list in #define
checksum.S:237: badly punctuated parameter list in #define
make[2]: *** [checksum.o] Erreur 1
make[2]: Quitte le ripertoire `/usr/src/linux-2.2.16/arch/i386/lib'
make[1]: *** [first_rule] Erreur 2
make[1]: Quitte le ripertoire `/usr/src/linux-2.2.16/arch/i386/lib'
make: *** [_dir_arch/i386/lib] Erreur 2
[root@janus linux]#

I've got a SMP bi-PII@450MHz

I've tried to break through this bug. Apparently, it's .S instruction that
can't be understood. As I don't know a lot about that I give it up. The
problem come from /usr/src/linux-2.2.16/arch/i386/lib/checksum.S

#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

Friendly

Comment 1 Jakub Jelinek 2000-09-01 10:29:57 UTC
You should not compile 2.2.x kernels with gcc, but use kgcc instead.
The issue with checksum.S is that it either cannot be preprocessed with -traditional,
or must not use GNU varargs macros (gcc 2.96's tradcpp0 does not support
restargs macros). This has been fixed in 2.4 kernels (checksum.S is not
compiled there with -traditional).

Comment 2 fleury 2000-09-04 08:46:12 UTC
Ok, it works fine.

But I still have many problems with this version of gcc (especially on C++).


Note You need to log in before you can comment on or make changes to this bug.