The patch is a solution for https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/768921 -Khem Index: gcc-4_5-branch/gcc/config.gcc =================================================================== --- gcc-4_5-branch.orig/gcc/config.gcc 2011-06-16 21:23:22.000000000 -0700 +++ gcc-4_5-branch/gcc/config.gcc 2011-06-16 21:51:20.845279713 -0700 @@ -2035,7 +2035,7 @@ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm" ;; powerpc-*-linux* | powerpc64-*-linux*) - tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h" + tm_file="${tm_file} dbxelf.h elfos.h linux.h freebsd-spec.h rs6000/sysv4.h" extra_options="${extra_options} rs6000/sysv4.opt" tmake_file="t-dfprules rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" maybe_biarch=yes Index: gcc-4_5-branch/gcc/config/rs6000/sysv4.h =================================================================== --- gcc-4_5-branch.orig/gcc/config/rs6000/sysv4.h 2011-06-16 21:23:22.000000000 -0700 +++ gcc-4_5-branch/gcc/config/rs6000/sysv4.h 2011-06-16 22:08:49.425279473 -0700 @@ -620,6 +620,7 @@ #define CC1_SECURE_PLT_DEFAULT_SPEC "" #endif +#undef CC1_SPEC /* Pass -G xxx to the compiler and set correct endian mode. */ #define CC1_SPEC "%{G*} %(cc1_cpu) \ %{mlittle|mlittle-endian: %(cc1_endian_little); \ @@ -903,22 +904,13 @@ #define LINK_START_LINUX_SPEC "" #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" -#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -#if DEFAULT_LIBC == LIBC_UCLIBC -#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" -#elif DEFAULT_LIBC == LIBC_GLIBC -#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}" -#else -#error "Unsupported DEFAULT_LIBC" -#endif -#define LINUX_DYNAMIC_LINKER \ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ %{rdynamic:-export-dynamic} \ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}" #if defined(HAVE_LD_EH_FRAME_HDR) +# undef LINK_EH_SPEC # define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} " #endif @@ -1113,6 +1105,7 @@ be stacked, so that invocations of #pragma pack(pop)' will return to the previous value. */ +#undef HANDLE_PRAGMA_PACK_PUSH_POP #define HANDLE_PRAGMA_PACK_PUSH_POP 1 /* Select a format to encode pointers in exception handling data. CODE Index: gcc-4_5-branch/gcc/config/freebsd-spec.h =================================================================== --- gcc-4_5-branch.orig/gcc/config/freebsd-spec.h 2011-06-16 17:59:03.000000000 -0700 +++ gcc-4_5-branch/gcc/config/freebsd-spec.h 2011-06-16 22:11:34.145279435 -0700 @@ -154,6 +154,7 @@ #endif #if defined(HAVE_LD_EH_FRAME_HDR) +#undef LINK_EH_SPEC #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " #endif