preprocessor/2069: Preprocessor defines machine-type=1
rbt@mtlb.co.uk
rbt@mtlb.co.uk
Fri Feb 23 07:26:00 GMT 2001
>Number: 2069
>Category: preprocessor
>Synopsis: Preprocessor defines machine-type=1
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: unassigned
>State: open
>Class: support
>Submitter-Id: net
>Arrival-Date: Fri Feb 23 07:26:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Robert Cardell
>Release: gcc version 2.95.3 20010125 (prerelease)
>Organization:
>Environment:
i486-pc-linux-gnu
AMD 5x86, Linux 2.4.2, Glibc 2.2.2
>Description:
The preprocessor defines i386 and i486 to be equal to 1.
This makes it impossible to compile X (XFree86 3.3.6).
X builds itself with imake, and imake runs cpp on all its
input. This means that -mcpu=i486 in the compiler flags will
get translated to -mcpu=1. It also results in complaints
about no headers being in /usr/lib/gcc-lib/1-pc-linux-gnu/...
and other more subtle problems. 2.95.2.1 does not exhibit
this behaviour (although I haven't tried building X with it yet).
>How-To-Repeat:
uname -m (or echo i486) | gcc -E -
Second line of output with 2.95.3 will be 1
On 2.95.2.1, it will be (in my case) i486
>Fix:
I understand that this behaviour would be useful to people,
so if it is not considered a bug, I'd appreciate a clean way
to get round this so I can build X (and use imake once I've
got X running).
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list