diff -ur parted-1.8.8/lib/regex_internal.h parted-1.8.8-newgcc4.4/lib/regex_internal.h --- parted-1.8.8/lib/regex_internal.h 2007-06-06 20:35:17.000000000 +0200 +++ parted-1.8.8-newgcc4.4/lib/regex_internal.h 2009-02-26 21:35:11.000000000 +0100 @@ -182,10 +182,6 @@ # if BITSET_WORD_BITS <= SBC_MAX # error "Invalid SBC_MAX" # endif -#elif BITSET_WORD_MAX == (0xffffffff + 2) * 0xffffffff -/* Work around a bug in 64-bit PGC (before version 6.1-2), where the - preprocessor mishandles large unsigned values as if they were signed. */ -# define BITSET_WORD_BITS 64 #else # error "Add case for new bitset_word_t size" #endif diff -ur parted-1.8.8/libparted/fs/fat/fat.c parted-1.8.8-newgcc4.4/libparted/fs/fat/fat.c --- parted-1.8.8/libparted/fs/fat/fat.c 2007-07-23 19:58:31.000000000 +0200 +++ parted-1.8.8-newgcc4.4/libparted/fs/fat/fat.c 2009-02-26 21:37:11.000000000 +0100 @@ -267,10 +267,13 @@ static uint32_t _gen_new_serial_number () { - uuid_t uuid; + union { + uuid_t uuid; + uint32_t i; + } uu32; - uuid_generate (uuid); - return * (uint32_t*) &uuid [0]; + uuid_generate (uu32.uuid); + return uu32.i; } PedFileSystem*