Bug 17028 - Gcc error on a kernel compilation
Gcc error on a kernel compilation
Product: Red Hat Linux
Classification: Retired
Component: gcc (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
Depends On:
  Show dependency treegraph
Reported: 2000-08-28 07:13 EDT by fleury
Modified: 2008-05-01 11:37 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2000-08-28 07:13:48 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description fleury 2000-08-28 07:13:46 EDT
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      ;       \

#define DST(y...)                       \
        9999: y;                        \
        .section __ex_table, "a";       \
        .long 9999b, 6002f      ;       \

Comment 1 Jakub Jelinek 2000-09-01 06:29:57 EDT
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 04:46:12 EDT
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.