--- qt-x11-free-3.3.8/src/tools/qglobal.h~ 2007-06-08 20:49:13 +0400 +++ qt-x11-free-3.3.8/src/tools/qglobal.h 2007-07-02 19:53:34 +0400 @@ -314,12 +314,16 @@ char, or short. We tell gcc to pack QChars to 16 bits, to avoid QString bloat. However, gcc 3.4 doesn't allow us to create references to members of a packed struct. (Pointers are OK, because then you - supposedly know what you are doing.) */ + supposedly know what you are doing.) + For gcc 4.0.2 pointers dont seem to be ok, */ # if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP) # define Q_PACKED __attribute__ ((packed)) # if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 # define Q_NO_PACKED_REFERENCE # endif +# if __GNUC__ == 4 && __GNUC_MINOR__ >= 0 +# define Q_NO_PACKED_POINTERS +# endif # endif # if !defined(__EXCEPTIONS) # define Q_NO_EXCEPTIONS --- qt-x11-free-3.3.8/src/tools/qstring.h~ 2007-02-02 17:01:05 +0300 +++ qt-x11-free-3.3.8/src/tools/qstring.h 2007-07-02 19:55:56 +0400 @@ -195,6 +195,8 @@ public: ushort unicode() const { return ucs; } #ifdef Q_NO_PACKED_REFERENCE ushort &unicode() { return *(&ucs); } +#elif defined Q_NO_PACKED_POINTERS + ushort &unicode() { ushort& tmp = ucs; return tmp; } #else ushort &unicode() { return ucs; } #endif