Bug 22326

Summary: cannot compile using qt-1.45 (see bug 22324)
Product: [Retired] Red Hat Linux Reporter: j. alan eldridge <alane>
Component: qt1xAssignee: Than Ngo <than>
Status: CLOSED RAWHIDE QA Contact:
Severity: high Docs Contact:
Priority: medium    
Version: 7.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-12-15 03:17:30 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description j. alan eldridge 2000-12-15 03:17:27 UTC
g++ does not ignore operator keywords during preprocessing. e.g.,

make[2]: Entering directory `/usr/local/src/cervisia-1.0beta1/src'
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/kde
-I/usr/lib/qt-1.45/include -I/usr/X11R6/include     -O2 -fno-operator-names
-fno-exceptions -fno-check-new -c toplevel.cpp
In file included from /usr/lib/qt-1.45/include/qpainter.h:33,
                 from /usr/lib/qt-1.45/include/qdrawutil.h:28,
                 from /usr/lib/qt-1.45/include/qscrollbar.h:30,
                 from /usr/lib/qt-1.45/include/qscrollview.h:28,
                 from /usr/lib/qt-1.45/include/qlistview.h:37,
                 from logdlg.h:20,
                 from toplevel.cpp:42:
/usr/lib/qt-1.45/include/qregion.h:73:182: "defined" without an identifier
make[2]: *** [toplevel.o] Error 1
make[2]: Leaving directory `/usr/local/src/cervisia-1.0beta1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/cervisia-1.0beta1'
make: *** [all-recursive-am] Error 2

the offending code section from qregion.h:
// We also hide the xor() function if there is a #define for xor, in
// case someone is using #define xor ^ to work around deficiencies in
// their compiler that cause problems with some other header files.
//
#if !(defined(__STRICT_ANSI__) && defined(_CC_GNU_)) && !defined(_CC_EDG_)
&& !defined(_CC_HP_) && !defined(_CC_HP_ACC_) && !defined(_CC_USLC_) &&
!defined(_CC_MWERKS_) && !defined(xor)
    QRegion xor( const QRegion & )      const;
#endif
    QRegion eor( const QRegion & )      const;


so. looks like redhat did *not* use the shipping compiler with shipping
qt1x-devel to compile anything that actually uses qt-1.45. is there another
explanation?

Comment 1 Ngo Than 2000-12-15 09:38:10 UTC
It's fixed in qt1x-1.45-12. You will find it in rawhide.