diff --git a/config/optimize b/config/optimize index efc9d71112..bdf05922eb 100644 --- a/config/optimize +++ b/config/optimize @@ -9,12 +9,12 @@ if [ "$OPTIMIZATIONS" = size ];then fi if [ "$LTO_SUPPORT" = yes ];then - GCC_OPTIM="$GCC_OPTIM -flto" - LD_OPTIM="$LD_OPTIM -fuse-linker-plugin -flto" + GCC_OPTIM_LTO="-flto -ffat-lto-objects" + LD_OPTIM_LTO="-fuse-linker-plugin -flto" fi if [ "$GOLD_SUPPORT" = yes ];then - LD_OPTIM="$LD_OPTIM -fuse-ld=gold" + LD_OPTIM_GOLD="-fuse-ld=gold" fi if [ "$DEBUG" = yes ]; then @@ -28,9 +28,9 @@ else fi TARGET_CPPFLAGS= -TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS" +TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $GCC_OPTIM_LTO $PROJECT_CFLAGS" TARGET_CXXFLAGS="$TARGET_CFLAGS" -TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM $GCC_OPTIM" +TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM $LD_OPTIM_GOLD $LD_OPTIM_LTO $GCC_OPTIM" TARGET_LIBDIR="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib" TARGET_INCDIR="$SYSROOT_PREFIX/include $SYSROOT_PREFIX/usr/include" diff --git a/packages/lang/gcc/package.mk b/packages/lang/gcc/package.mk index 807123d427..d567e74293 100644 --- a/packages/lang/gcc/package.mk +++ b/packages/lang/gcc/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="gcc" -PKG_VERSION="4.8.2" +PKG_VERSION="4.9.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" @@ -129,7 +129,7 @@ post_make_host() { post_makeinstall_host() { cp -PR $TARGET_NAME/libstdc++-v3/src/.libs/libstdc++.so* $SYSROOT_PREFIX/usr/lib - GCC_VERSION=`$ROOT/$TOOLCHAIN/$TARGET_NAME/bin/gcc -dumpversion` + GCC_VERSION=`$ROOT/$TOOLCHAIN/bin/${TARGET_NAME}-gcc -dumpversion` DATE="0501`echo $GCC_VERSION | sed 's/\([0-9]\)/0\1/g' | sed 's/\.//g'`" CROSS_CC=$TARGET_CC-$GCC_VERSION CROSS_CXX=$TARGET_CXX-$GCC_VERSION diff --git a/packages/lang/gcc/patches/gcc-4.8.2-bug-58854.patch b/packages/lang/gcc/patches/gcc-4.8.2-bug-58854.patch deleted file mode 100644 index fec4d00311..0000000000 --- a/packages/lang/gcc/patches/gcc-4.8.2-bug-58854.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/gcc/config/arm/arm.c -+++ a/gcc/config/arm/arm.c -@@ -26547,6 +26547,7 @@ arm_expand_epilogue_apcs_frame (bool really_return) - num_regs = bit_count (saved_regs_mask); - if ((offsets->outgoing_args != (1 + num_regs)) || cfun->calls_alloca) - { -+ emit_insn (gen_blockage ()); - /* Unwind the stack to just below the saved registers. */ - emit_insn (gen_addsi3 (stack_pointer_rtx, - hard_frame_pointer_rtx, diff --git a/packages/lang/gcc/patches/gcc-4.8.2-dynamic_linker.patch b/packages/lang/gcc/patches/gcc-4.8.2-dynamic_linker.patch deleted file mode 100644 index 04b7b6c468..0000000000 --- a/packages/lang/gcc/patches/gcc-4.8.2-dynamic_linker.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff -Naur gcc-4.8.2/gcc/config/i386/linux64.h gcc-4.8.2.patch/gcc/config/i386/linux64.h ---- gcc-4.8.2/gcc/config/i386/linux64.h 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.2.patch/gcc/config/i386/linux64.h 2014-01-25 00:09:27.179269461 +0100 -@@ -28,5 +28,5 @@ - #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" - - #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" --#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" -+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2" -+#define GLIBC_DYNAMIC_LINKERX32 "/lib/ld-linux-x32.so.2" -diff -Naur gcc-4.8.2/gcc/config/mips/linux64.h gcc-4.8.2.patch/gcc/config/mips/linux64.h ---- gcc-4.8.2/gcc/config/mips/linux64.h 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.2.patch/gcc/config/mips/linux64.h 2014-01-25 00:09:31.217263893 +0100 -@@ -23,9 +23,9 @@ - #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32" - - #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1" --#define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1" --#define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0" -+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld.so.1" -+#define GLIBC_DYNAMIC_LINKERN32 "/lib/ld.so.1" -+#define UCLIBC_DYNAMIC_LINKERN32 "/lib/ld-uClibc.so.0" - #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32" - #define GNU_USER_DYNAMIC_LINKERN32 \ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \ -diff -Naur gcc-4.8.2/gcc/config/rs6000/linux64.h gcc-4.8.2.patch/gcc/config/rs6000/linux64.h ---- gcc-4.8.2/gcc/config/rs6000/linux64.h 2013-06-19 03:18:38.000000000 +0200 -+++ gcc-4.8.2.patch/gcc/config/rs6000/linux64.h 2014-01-25 00:09:31.217263893 +0100 -@@ -351,7 +351,7 @@ - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" - - #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1" -+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" - #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" - #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" - #if DEFAULT_LIBC == LIBC_UCLIBC -diff -Naur gcc-4.8.2/gcc/config/sparc/linux64.h gcc-4.8.2.patch/gcc/config/sparc/linux64.h ---- gcc-4.8.2/gcc/config/sparc/linux64.h 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.2.patch/gcc/config/sparc/linux64.h 2014-01-25 00:09:31.217263893 +0100 -@@ -93,7 +93,7 @@ - done. */ - - #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux.so.2" - - #ifdef SPARC_BI_ARCH - -@@ -201,7 +201,7 @@ - #else /* !SPARC_BI_ARCH */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ -+#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ diff --git a/packages/lang/gcc/patches/gcc-dynamic_linker.patch b/packages/lang/gcc/patches/gcc-dynamic_linker.patch new file mode 100644 index 0000000000..5035fd95bf --- /dev/null +++ b/packages/lang/gcc/patches/gcc-dynamic_linker.patch @@ -0,0 +1,71 @@ +diff -Naur gcc-4.9.0/gcc/config/i386/linux64.h gcc-4.9.0.patch/gcc/config/i386/linux64.h +--- gcc-4.9.0/gcc/config/i386/linux64.h 2014-01-02 23:23:26.000000000 +0100 ++++ gcc-4.9.0.patch/gcc/config/i386/linux64.h 2014-04-22 20:27:05.853832561 +0200 +@@ -28,5 +28,5 @@ + #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" + + #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" +-#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" ++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2" ++#define GLIBC_DYNAMIC_LINKERX32 "/lib/ld-linux-x32.so.2" +diff -Naur gcc-4.9.0/gcc/config/mips/linux64.h gcc-4.9.0.patch/gcc/config/mips/linux64.h +--- gcc-4.9.0/gcc/config/mips/linux64.h 2014-01-02 23:23:26.000000000 +0100 ++++ gcc-4.9.0.patch/gcc/config/mips/linux64.h 2014-04-22 20:28:54.699515966 +0200 +@@ -25,9 +25,9 @@ + #define GLIBC_DYNAMIC_LINKER32 \ + "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" + #define GLIBC_DYNAMIC_LINKER64 \ +- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}" ++ "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" + #define GLIBC_DYNAMIC_LINKERN32 \ +- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}" ++ "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" + + #undef UCLIBC_DYNAMIC_LINKER32 + #define UCLIBC_DYNAMIC_LINKER32 \ +@@ -36,7 +36,7 @@ + #define UCLIBC_DYNAMIC_LINKER64 \ + "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" + #define UCLIBC_DYNAMIC_LINKERN32 \ +- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" ++ "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" + + #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32" + #define GNU_USER_DYNAMIC_LINKERN32 \ +diff -Naur gcc-4.9.0/gcc/config/rs6000/linux64.h gcc-4.9.0.patch/gcc/config/rs6000/linux64.h +--- gcc-4.9.0/gcc/config/rs6000/linux64.h 2014-01-02 23:23:26.000000000 +0100 ++++ gcc-4.9.0.patch/gcc/config/rs6000/linux64.h 2014-04-22 20:30:39.567210839 +0200 +@@ -369,9 +369,9 @@ + + #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" + #ifdef LINUX64_DEFAULT_ABI_ELFv2 +-#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:/lib64/ld64.so.1;:/lib64/ld64.so.2}" ++#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:/lib/ld64.so.1;:/lib/ld64.so.2}" + #else +-#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:/lib64/ld64.so.2;:/lib64/ld64.so.1}" ++#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:/lib/ld64.so.2;:/lib/ld64.so.1}" + #endif + #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" + #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" +diff -Naur gcc-4.9.0/gcc/config/sparc/linux64.h gcc-4.9.0.patch/gcc/config/sparc/linux64.h +--- gcc-4.9.0/gcc/config/sparc/linux64.h 2014-01-02 23:23:26.000000000 +0100 ++++ gcc-4.9.0.patch/gcc/config/sparc/linux64.h 2014-04-22 20:27:05.854832558 +0200 +@@ -93,7 +93,7 @@ + done. */ + + #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux.so.2" + + #ifdef SPARC_BI_ARCH + +@@ -201,7 +201,7 @@ + #else /* !SPARC_BI_ARCH */ + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ ++#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \