Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6449991
Votes 0
Synopsis __i386__ macro is not defined by compiler when using -Ox flag with -m32
Category c++:driver
Reported Against
Release Fixed mars_dev(42)
State 10-Fix Delivered, bug
Priority: 3-Medium
Related Bugs
Submit Date 18-JUL-2006
Description
FULL PRODUCT VERSION :
Sun C++ 5.9 DEV 2006/06/08

ADDITIONAL OS VERSION INFORMATION :
Linux 2.6.9-34.ELsmp - Red Hat EL4

A DESCRIPTION OF THE PROBLEM :
When using -Ox and -m32 the macro __i386__ is not defined.

Command line to reproduce:

CC -m32 -O2 dummy.cpp


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
echo "" > dummy.cpp
CC -m32 -O2 -xdumpmacros dummy.cpp | & grep __i386__

No output is produced. When run without the -O2 flag the macro is defined:

CC -m32 -xdumpmacros dummy.cpp | & grep __i386__
#define __i386__ 1

This is a problem because a lot of gnu headers use the __i386__ macro. Specific example


EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expect the __i386__ macro to be defined in this case.
ACTUAL -
Macro is not defined.

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
echo "" > dummy.cpp
CC -m32 -O2 -xdumpmacros dummy.cpp | & grep __i386__
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
CC -m32 -D__i386__ -O2 dummy.cpp
Posted Date : 2006-07-18 16:36:33.0
Work Around
N/A
Evaluation
__i386__ should be defined on Linux (but not on Solaris), same as C driver.
Posted Date : 2006-07-18 20:17:28.0

It is a typo. see suggested fix
Posted Date : 2007-02-16 20:39:42.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang