diff --git a/repos/libports/ports/stdcxx.hash b/repos/libports/ports/stdcxx.hash index 227a95609..a9c97142c 100644 --- a/repos/libports/ports/stdcxx.hash +++ b/repos/libports/ports/stdcxx.hash @@ -1 +1 @@ -d0f2d11c5b5586039b6cd9415d1da9b773a24b6e +fadf4f6ba436fe4846572f00bf057c5ef290c25b diff --git a/repos/libports/ports/stdcxx.port b/repos/libports/ports/stdcxx.port index 0b39df618..372a24b76 100644 --- a/repos/libports/ports/stdcxx.port +++ b/repos/libports/ports/stdcxx.port @@ -1,9 +1,9 @@ LICENSE := LGPL -VERSION := 4.7.2 +VERSION := 4.7.4 DOWNLOADS := gcc.archive URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.bz2 -SHA(gcc) := a464ba0f26eef24c29bcd1e7489421117fb9ee35 +SHA(gcc) := f3359a157b3536f289c155363f1736a2c9b414db DIR(gcc) := src/lib/stdcxx SIG(gcc) := ${URL(gcc)} KEY(gcc) := GNU diff --git a/repos/ports/ports/gcc.hash b/repos/ports/ports/gcc.hash index 67a2825c6..a6a7ee756 100644 --- a/repos/ports/ports/gcc.hash +++ b/repos/ports/ports/gcc.hash @@ -1 +1 @@ -92324ff98eeba762558097eeb8568980fe410d32 +e4777031d6e3087020f16e75f4cba0214457db5f diff --git a/repos/ports/ports/gcc.port b/repos/ports/ports/gcc.port index 719f1d521..183badc18 100644 --- a/repos/ports/ports/gcc.port +++ b/repos/ports/ports/gcc.port @@ -1,9 +1,9 @@ LICENSE := GPLv3 -VERSION := 4.7.2 +VERSION := 4.7.4 DOWNLOADS := gcc.archive -URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.gz -SHA(gcc) := 39b5662c4bdffa8d8b8f31f61764de2a9e3b69b0 +URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.bz2 +SHA(gcc) := f3359a157b3536f289c155363f1736a2c9b414db SIG(gcc) := ${URL(gcc)}.sig KEY(gcc) := GNU DIR(gcc) := src/noux-pkg/gcc diff --git a/tool/patches/gcc-4.7.2/host_target_combination.patch b/tool/patches/gcc-4.7.2/host_target_combination.patch deleted file mode 100644 index c6423c5c9..000000000 --- a/tool/patches/gcc-4.7.2/host_target_combination.patch +++ /dev/null @@ -1,140 +0,0 @@ -host_target_combination.patch - -From: Christian Prochaska - -Remove sanity check for host/target combination in configure script of -libstdc++. An alternative fix would be the addition of a new host or -the use of an existing one. However, adding a new host would require -us to maintain a larger patch to the GCC build system, and using an -existing host comes with all the (possibly unwanted) policies associated -with the respective host platform. We want to stick with the bare-bone -compiler as much as possible. ---- - libstdc++-v3/configure | 24 +++++++++++------------- - libstdc++-v3/crossconfig.m4 | 1 - - 2 files changed, 11 insertions(+), 14 deletions(-) - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index 0e9e28a..5a9f1ee 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -3025,8 +3025,7 @@ test -n "$target_alias" && - target_alias=${target_alias-$host_alias} - - # Handy for debugging: --{ $as_echo "$as_me:${as_lineno-$LINENO}: $build / $host / $target / $host_alias / $target_alias" >&5 --$as_echo "$as_me: $build / $host / $target / $host_alias / $target_alias" >&6;}; sleep 5 -+#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5 - - if test "$build" != "$host"; then - # We are being configured with some form of cross compiler. -@@ -11498,7 +11497,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11501 "configure" -+#line 11500 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11604,7 +11603,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11607 "configure" -+#line 11606 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -14962,7 +14961,7 @@ fi - # - # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. - cat > conftest.$ac_ext << EOF --#line 14965 "configure" -+#line 14964 "configure" - struct S { ~S(); }; - void bar(); - void foo() -@@ -15297,7 +15296,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; } - # Fake what AC_TRY_COMPILE does. - - cat > conftest.$ac_ext << EOF --#line 15300 "configure" -+#line 15299 "configure" - int main() - { - typedef bool atomic_type; -@@ -15332,7 +15331,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; } - rm -f conftest* - - cat > conftest.$ac_ext << EOF --#line 15335 "configure" -+#line 15334 "configure" - int main() - { - typedef short atomic_type; -@@ -15367,7 +15366,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; } - rm -f conftest* - - cat > conftest.$ac_ext << EOF --#line 15370 "configure" -+#line 15369 "configure" - int main() - { - // NB: _Atomic_word not necessarily int. -@@ -15403,7 +15402,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; } - rm -f conftest* - - cat > conftest.$ac_ext << EOF --#line 15406 "configure" -+#line 15405 "configure" - int main() - { - typedef long long atomic_type; -@@ -15482,7 +15481,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu - # unnecessary for this test. - - cat > conftest.$ac_ext << EOF --#line 15485 "configure" -+#line 15484 "configure" - int main() - { - _Decimal32 d1; -@@ -15524,7 +15523,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - # unnecessary for this test. - - cat > conftest.$ac_ext << EOF --#line 15527 "configure" -+#line 15526 "configure" - template - struct same - { typedef T2 type; }; -@@ -15558,7 +15557,7 @@ $as_echo "$enable_int128" >&6; } - rm -f conftest* - - cat > conftest.$ac_ext << EOF --#line 15561 "configure" -+#line 15560 "configure" - template - struct same - { typedef T2 type; }; -@@ -64099,7 +64098,6 @@ $as_echo "$ac_ld_relro" >&6; } - - ;; - *) -- as_fn_error "No support for this host/target combination." "$LINENO" 5 - ;; - esac - -diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4 -index 361ed0b..98d68ec 100644 ---- a/libstdc++-v3/crossconfig.m4 -+++ b/libstdc++-v3/crossconfig.m4 -@@ -264,7 +264,6 @@ case "${host}" in - AC_DEFINE(HAVE_TANHF) - ;; - *) -- AC_MSG_ERROR([No support for this host/target combination.]) - ;; - esac - ]) diff --git a/tool/patches/gcc-4.7.2/makeinfo5.patch b/tool/patches/gcc-4.7.2/makeinfo5.patch deleted file mode 100644 index 82ccdb8f2..000000000 --- a/tool/patches/gcc-4.7.2/makeinfo5.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 1b2b17188549c2a8ad3d60eaeacc8ae025ed59cf Mon Sep 17 00:00:00 2001 -From: Martin Stein -Date: Mon, 25 Nov 2013 15:07:16 +0100 -Subject: [PATCH] fix errors with makeinfo - ---- - gcc/doc/cppopts.texi | 2 +- - gcc/doc/generic.texi | 4 ++-- - gcc/doc/invoke.texi | 16 ++++++++-------- - 3 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/gcc/doc/cppopts.texi b/gcc/doc/cppopts.texi -index 205d870..a1b66a2 100644 ---- a/gcc/doc/cppopts.texi -+++ b/gcc/doc/cppopts.texi -@@ -803,7 +803,7 @@ Replacement: [ ] @{ @} # \ ^ | ~ - Enable special code to work around file systems which only permit very - short file names, such as MS-DOS@. - --@itemx --help -+@item --help - @itemx --target-help - @opindex help - @opindex target-help -diff --git a/gcc/doc/generic.texi b/gcc/doc/generic.texi -index 31e8855..261ea23 100644 ---- a/gcc/doc/generic.texi -+++ b/gcc/doc/generic.texi -@@ -1415,13 +1415,13 @@ generate these expressions anyhow, if it can tell that strictness does - not matter. The type of the operands and that of the result are - always of @code{BOOLEAN_TYPE} or @code{INTEGER_TYPE}. - --@itemx POINTER_PLUS_EXPR -+@item POINTER_PLUS_EXPR - This node represents pointer arithmetic. The first operand is always - a pointer/reference type. The second operand is always an unsigned - integer type compatible with sizetype. This is the only binary - arithmetic operand that can operate on pointer types. - --@itemx PLUS_EXPR -+@item PLUS_EXPR - @itemx MINUS_EXPR - @itemx MULT_EXPR - These nodes represent various binary arithmetic operations. -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index 8fcebf3..5c7e730 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -5179,7 +5179,7 @@ thus dbg_cnt() returns true always unless the upper bound is set by this option. - e.g. With -fdbg-cnt=dce:10,tail_call:0 - dbg_cnt(dce) will return true only for first 10 invocations - --@itemx -fenable-@var{kind}-@var{pass} -+@item -fenable-@var{kind}-@var{pass} - @itemx -fdisable-@var{kind}-@var{pass}=@var{range-list} - @opindex fdisable- - @opindex fenable- -@@ -5327,11 +5327,11 @@ Dump after duplicating the computed gotos. - @option{-fdump-rtl-ce3} enable dumping after the three - if conversion passes. - --@itemx -fdump-rtl-cprop_hardreg -+@item -fdump-rtl-cprop_hardreg - @opindex fdump-rtl-cprop_hardreg - Dump after hard register copy propagation. - --@itemx -fdump-rtl-csa -+@item -fdump-rtl-csa - @opindex fdump-rtl-csa - Dump after combining stack adjustments. - -@@ -5342,11 +5342,11 @@ Dump after combining stack adjustments. - @option{-fdump-rtl-cse1} and @option{-fdump-rtl-cse2} enable dumping after - the two common sub-expression elimination passes. - --@itemx -fdump-rtl-dce -+@item -fdump-rtl-dce - @opindex fdump-rtl-dce - Dump after the standalone dead code elimination passes. - --@itemx -fdump-rtl-dbr -+@item -fdump-rtl-dbr - @opindex fdump-rtl-dbr - Dump after delayed branch scheduling. - -@@ -5391,7 +5391,7 @@ Dump after the initialization of the registers. - @opindex fdump-rtl-initvals - Dump after the computation of the initial value sets. - --@itemx -fdump-rtl-into_cfglayout -+@item -fdump-rtl-into_cfglayout - @opindex fdump-rtl-into_cfglayout - Dump after converting to cfglayout mode. - -@@ -5421,7 +5421,7 @@ Dump after removing redundant mode switches. - @opindex fdump-rtl-rnreg - Dump after register renumbering. - --@itemx -fdump-rtl-outof_cfglayout -+@item -fdump-rtl-outof_cfglayout - @opindex fdump-rtl-outof_cfglayout - Dump after converting from cfglayout mode. - -@@ -5433,7 +5433,7 @@ Dump after the peephole pass. - @opindex fdump-rtl-postreload - Dump after post-reload optimizations. - --@itemx -fdump-rtl-pro_and_epilogue -+@item -fdump-rtl-pro_and_epilogue - @opindex fdump-rtl-pro_and_epilogue - Dump after generating the function prologues and epilogues. - --- -1.8.3.2 - diff --git a/tool/patches/gcc-4.7.2/pic_cxxflags.patch b/tool/patches/gcc-4.7.2/pic_cxxflags.patch deleted file mode 100644 index 24001a151..000000000 --- a/tool/patches/gcc-4.7.2/pic_cxxflags.patch +++ /dev/null @@ -1,28 +0,0 @@ -pic_cxxflags.patch - -From: Christian Prochaska - -Allow passing of PIC_CXXFLAGS to the configure script of libstdc++. -Without this change, libsupc++ would be compiled w/o PICFLAGS, resulting -in text relocations. Because for base tool chains, no 'dynamic_linker' -is defined (see 'libtool.m4'), 'dynamic_linker' is set to 'no', which -results in 'can_build_shared = no', which, in turn , results -in 'enable_shared = no', which, in turn, sets 'PIC_CXXFLAGS' to -nothing rather then '-prefer-pic'. ---- - libstdc++-v3/configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac -index f04563e..238097d 100644 ---- a/libstdc++-v3/configure.ac -+++ b/libstdc++-v3/configure.ac -@@ -424,7 +424,7 @@ GLIBCXX_EXPORT_FLAGS - if test "$enable_shared" = yes; then - PIC_CXXFLAGS="-prefer-pic" - else -- PIC_CXXFLAGS= -+ __PIC_CXXFLAGS= - fi - AC_SUBST(PIC_CXXFLAGS) - diff --git a/tool/patches/gcc-4.7.2/tmake_file_arm.patch b/tool/patches/gcc-4.7.2/tmake_file_arm.patch deleted file mode 100644 index b51246b61..000000000 --- a/tool/patches/gcc-4.7.2/tmake_file_arm.patch +++ /dev/null @@ -1,62 +0,0 @@ -tmake_file_arm.patch - -From: Christian Prochaska - -Let 'config.gcc' expand our already populated 'tmake_file' variable rather -than making a hard assignment. This is needed for the ARM platform because -the target 'arm-elf-eabi' actually matches the pattern 'arm-*-*-eabi' in -the 'config.gcc' file. ---- - gcc/config.gcc | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 653e5d9..9dacfd0 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -875,7 +875,7 @@ arm*-*-linux*) # ARM GNU/Linux with ELF - ;; - arm*-*-uclinux*) # ARM ucLinux - tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h" -- tmake_file="arm/t-arm arm/t-arm-elf" -+ tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf" - case ${target} in - arm*-*-uclinux*eabi) - tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h" -@@ -891,7 +891,7 @@ arm*-*-uclinux*) # ARM ucLinux - ;; - arm*-*-ecos-elf) - tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h" -- tmake_file="arm/t-arm arm/t-arm-elf" -+ tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf" - ;; - arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*) - # The BPABI long long divmod functions return a 128-bit value in -@@ -900,7 +900,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*) - need_64bit_hwint=yes - default_use_cxa_atexit=yes - tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h" -- tmake_file="arm/t-arm arm/t-arm-elf" -+ tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf" - case ${target} in - arm*-*-eabi*) - tm_file="$tm_file newlib-stdint.h" -@@ -922,15 +922,15 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*) - ;; - arm*-*-rtems*) - tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h" -- tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" -+ tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" - ;; - arm*-*-elf) - tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" -- tmake_file="arm/t-arm arm/t-arm-elf" -+ tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf" - ;; - arm*-wince-pe*) - tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h arm/wince-pe.h" -- tmake_file="arm/t-arm arm/t-wince-pe" -+ tmake_file="${tmake_file} arm/t-arm arm/t-wince-pe" - extra_options="${extra_options} arm/pe.opt" - extra_objs="pe.o" - ;; diff --git a/tool/patches/gcc-4.7.2/tmake_file_extra_parts.patch b/tool/patches/gcc-4.7.2/tmake_file_extra_parts.patch deleted file mode 100644 index 3304c2012..000000000 --- a/tool/patches/gcc-4.7.2/tmake_file_extra_parts.patch +++ /dev/null @@ -1,212 +0,0 @@ -tmake_file_extra_parts.patch - -From: Christian Prochaska - -Enable support for passing custom 'tmake_file' and 'extra_parts' to the -GCC configure process uncommenting the default initialization of the -respective variables. The 'extra_parts' variable is used to carry the -information about which crtN files are to be created. ---- - gcc/config.gcc | 2 +- - libgcc/config.host | 44 ++++++++++++++++++++++---------------------- - 2 files changed, 23 insertions(+), 23 deletions(-) - -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 5fcd192..653e5d9 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -204,7 +204,7 @@ - - out_file= - common_out_file= --tmake_file= -+#tmake_file= - extra_headers= - user_headers_inc_next_pre= - user_headers_inc_next_post= -diff --git a/libgcc/config.host b/libgcc/config.host -index ef9791b..b11d221 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -69,8 +69,8 @@ - - asm_hidden_op=.hidden - enable_execute_stack= --extra_parts= --tmake_file= -+#extra_parts= -+#tmake_file= - tm_file= - tm_define= - md_unwind_header=no-unwind.h -@@ -172,14 +172,14 @@ case ${host} in - *-*-darwin*) - asm_hidden_op=.private_extern - tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic t-slibgcc-darwin" -- extra_parts="crt3.o crttms.o crttme.o" -+# extra_parts="crt3.o crttms.o crttme.o" - ;; - *-*-freebsd*) - # This is the generic ELF configuration of FreeBSD. Later - # machine-specific sections may refine and add to this - # configuration. - tmake_file="$tmake_file t-freebsd t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver" -- extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+# extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" - case ${target_thread_file} in - posix) - tmake_file="${tmake_file} t-freebsd-thread" -@@ -195,11 +195,11 @@ case ${host} in - ;; - *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) - tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" -- extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" -+# extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" - ;; - *-*-lynxos*) - tmake_file="$tmake_file t-lynx $cpu_type/t-crtstuff t-crtstuff-pic t-libgcc-pic" -- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" -+# extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - ;; - *-*-netbsd*) - tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver" -@@ -208,7 +208,7 @@ case ${host} in - # a.out configurations. - case ${host} in - *-*-netbsd*1.[7-9]* | *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*) -- extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" -+# extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" - ;; - esac - ;; -@@ -222,7 +222,7 @@ case ${host} in - ;; - *-*-rtems*) - tmake_file="$tmake_file t-rtems" -- extra_parts="crtbegin.o crtend.o" -+# extra_parts="crtbegin.o crtend.o" - ;; - *-*-solaris2*) - # Unless linker support and dl_iterate_phdr are present, -@@ -251,7 +251,7 @@ case ${host} in - esac - ;; - *-*-uclinux*) -- extra_parts="crtbegin.o crtend.o" -+# extra_parts="crtbegin.o crtend.o" - ;; - *-*-*vms*) - tmake_file="vms/t-vms" -@@ -261,7 +261,7 @@ case ${host} in - tmake_file=t-vxworks - ;; - *-*-elf) -- extra_parts="crtbegin.o crtend.o" -+# extra_parts="crtbegin.o crtend.o" - ;; - esac - -@@ -360,7 +360,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*) - case ${host} in - arm*-*-eabi* | arm*-*-rtemseabi*) - tmake_file="${tmake_file} arm/t-bpabi" -- extra_parts="crtbegin.o crtend.o crti.o crtn.o" -+# extra_parts="crtbegin.o crtend.o crti.o crtn.o" - ;; - arm*-*-symbianelf*) - tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override" -@@ -409,7 +409,7 @@ bfin*-linux-uclibc*) - tmake_file="$tmake_file bfin/t-bfin bfin/t-crtstuff t-libgcc-pic t-fdpbit bfin/t-linux" - # No need to build crtbeginT.o on uClibc systems. Should probably - # be moved to the OS specific section above. -- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" -+# extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - md_unwind_header=bfin/linux-unwind.h - ;; - bfin*-rtems*) -@@ -418,7 +418,7 @@ bfin*-rtems*) - ;; - bfin*-*) - tmake_file="$tmake_file bfin/t-bfin t-fdpbit" -- extra_parts="crtbegin.o crtend.o crti.o crtn.o" -+# extra_parts="crtbegin.o crtend.o crti.o crtn.o" - ;; - cr16-*-elf) - tmake_file="${tmake_file} cr16/t-cr16 cr16/t-crtlibid t-fdpbit" -@@ -579,7 +579,7 @@ i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*) - i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) - ;; - i[34567]86-*-cygwin*) -- extra_parts="crtbegin.o crtend.o crtfastmath.o" -+# extra_parts="crtbegin.o crtend.o crtfastmath.o" - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$enable_sjlj_exceptions = xyes; then - tmake_eh_file="i386/t-sjlj-eh" -@@ -595,7 +595,7 @@ i[34567]86-*-cygwin*) - tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin i386/t-crtfm i386/t-chkstk t-dfprules" - ;; - i[34567]86-*-mingw*) -- extra_parts="crtbegin.o crtend.o crtfastmath.o" -+# extra_parts="crtbegin.o crtend.o crtfastmath.o" - case ${target_thread_file} in - win32) - tmake_file="$tmake_file i386/t-gthr-win32" -@@ -656,7 +656,7 @@ ia64*-*-freebsd*) - ;; - ia64*-*-linux*) - # Don't use crtbeginT.o from *-*-linux* default. -- extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" -+# extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux" - if test x$with_system_libunwind != xyes ; then - tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind" -@@ -738,11 +738,11 @@ microblaze*-linux*) - ;; - microblaze*-*-*) - tmake_file="microblaze/t-microblaze t-fdpbit" -- extra_parts="crtbegin.o crtend.o crti.o crtn.o" -+# extra_parts="crtbegin.o crtend.o crti.o crtn.o" - ;; - mips-sgi-irix6.5*) - tmake_file="$tmake_file mips/t-irix6 t-crtfm mips/t-tpbit t-slibgcc mips/t-slibgcc-irix" -- extra_parts="crtbegin.o crtend.o crtfastmath.o irix-crti.o irix-crtn.o" -+# extra_parts="crtbegin.o crtend.o crtfastmath.o irix-crti.o irix-crtn.o" - md_unwind_header=mips/irix6-unwind.h - ;; - mips*-*-netbsd*) # NetBSD/mips, either endian. -@@ -811,7 +811,7 @@ mipstx39-*-elf* | mipstx39el-*-elf*) - tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16" - ;; - mmix-knuth-mmixware) -- extra_parts="crti.o crtn.o crtbegin.o crtend.o" -+# extra_parts="crti.o crtn.o crtbegin.o crtend.o" - tmake_file="${tmake_file} ${cpu_type}/t-${cpu_type}" - ;; - mn10300-*-*) -@@ -946,7 +946,7 @@ s390x-*-linux*) - ;; - s390x-ibm-tpf*) - tmake_file="${tmake_file} s390/t-crtstuff t-libgcc-pic t-eh-dw2-dip" -- extra_parts="crtbeginS.o crtendS.o" -+# extra_parts="crtbeginS.o crtendS.o" - md_unwind_header=s390/tpf-unwind.h - ;; - score-*-elf) -@@ -1128,7 +1128,7 @@ xtensa*-*-linux*) - ;; - am33_2.0-*-linux*) - # Don't need crtbeginT.o from *-*-linux* default. -- extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+# extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" - tmake_file="$tmake_file t-fdpbit" - ;; - m32c-*-elf*|m32c-*-rtems*) -@@ -1136,7 +1136,7 @@ m32c-*-elf*|m32c-*-rtems*) - ;; - mep*-*-*) - tmake_file="mep/t-mep t-fdpbit" -- extra_parts="crtbegin.o crtend.o" -+# extra_parts="crtbegin.o crtend.o" - ;; - *) - echo "*** Configuration ${host} not supported" 1>&2 diff --git a/tool/patches/gcc-4.7.2/cpp_for_target.patch b/tool/patches/gcc-4.7.4/cpp_for_target.patch similarity index 100% rename from tool/patches/gcc-4.7.2/cpp_for_target.patch rename to tool/patches/gcc-4.7.4/cpp_for_target.patch diff --git a/tool/patches/gcc-4.7.2/cppflags_for_target.patch b/tool/patches/gcc-4.7.4/cppflags_for_target.patch similarity index 100% rename from tool/patches/gcc-4.7.2/cppflags_for_target.patch rename to tool/patches/gcc-4.7.4/cppflags_for_target.patch diff --git a/tool/patches/gcc-4.7.4/host_target_combination.patch b/tool/patches/gcc-4.7.4/host_target_combination.patch new file mode 100644 index 000000000..5b40cc2ce --- /dev/null +++ b/tool/patches/gcc-4.7.4/host_target_combination.patch @@ -0,0 +1,27 @@ +host_target_combination.patch + +From: Christian Prochaska + +Remove sanity check for host/target combination in configure script of +libstdc++. An alternative fix would be the addition of a new host or +the use of an existing one. However, adding a new host would require +us to maintain a larger patch to the GCC build system, and using an +existing host comes with all the (possibly unwanted) policies associated +with the respective host platform. We want to stick with the bare-bone +compiler as much as possible. +--- + libstdc++-v3/crossconfig.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4 +index 361ed0b..98d68ec 100644 +--- a/libstdc++-v3/crossconfig.m4 ++++ b/libstdc++-v3/crossconfig.m4 +@@ -264,7 +264,6 @@ case "${host}" in + AC_DEFINE(HAVE_TANHF) + ;; + *) +- AC_MSG_ERROR([No support for this host/target combination.]) + ;; + esac + ]) diff --git a/tool/patches/gcc-4.7.2/inhibit_libc.patch b/tool/patches/gcc-4.7.4/inhibit_libc.patch similarity index 93% rename from tool/patches/gcc-4.7.2/inhibit_libc.patch rename to tool/patches/gcc-4.7.4/inhibit_libc.patch index 8ffabcd81..a690fca28 100644 --- a/tool/patches/gcc-4.7.2/inhibit_libc.patch +++ b/tool/patches/gcc-4.7.4/inhibit_libc.patch @@ -11,10 +11,10 @@ Genode's dynamic linker relies on this mechanism. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/configure.ac b/gcc/configure.ac -index b7604d6..75bb2b5 100644 +index 29ac2f3..67db551 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac -@@ -1862,7 +1862,7 @@ fi +@@ -1888,7 +1888,7 @@ fi if { { test x$host != x$target && test "x$with_sysroot" = x ; } || test x$with_newlib = xyes ; } && { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then diff --git a/tool/patches/gcc-4.7.2/link_spec.patch b/tool/patches/gcc-4.7.4/link_spec.patch similarity index 92% rename from tool/patches/gcc-4.7.2/link_spec.patch rename to tool/patches/gcc-4.7.4/link_spec.patch index e07fb825d..0f586104f 100644 --- a/tool/patches/gcc-4.7.2/link_spec.patch +++ b/tool/patches/gcc-4.7.4/link_spec.patch @@ -15,10 +15,10 @@ frontend invokes 'ld' on multiarch platforms. I.e., on x86, we need to pass 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/configure.ac b/gcc/configure.ac -index 2d1876f..b7604d6 100644 +index a78a1d7..29ac2f3 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac -@@ -1759,7 +1759,7 @@ for f in $xm_file; do +@@ -1785,7 +1785,7 @@ for f in $xm_file; do done host_xm_file_list= diff --git a/tool/patches/gcc-4.7.2/misc.patch b/tool/patches/gcc-4.7.4/misc.patch similarity index 95% rename from tool/patches/gcc-4.7.2/misc.patch rename to tool/patches/gcc-4.7.4/misc.patch index 2f70f3622..fb10ba85f 100644 --- a/tool/patches/gcc-4.7.2/misc.patch +++ b/tool/patches/gcc-4.7.4/misc.patch @@ -10,10 +10,10 @@ Changes lacking documentation 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in -index f38d5b4..d64c9e0 100644 +index c301ff0..9f45475 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in -@@ -858,7 +858,7 @@ LIBGCOV = _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \ +@@ -859,7 +859,7 @@ LIBGCOV = _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \ _gcov_indirect_call_profiler _gcov_average_profiler _gcov_ior_profiler \ _gcov_merge_ior diff --git a/tool/patches/gcc-4.7.2/no_short_enums.patch b/tool/patches/gcc-4.7.4/no_short_enums.patch similarity index 83% rename from tool/patches/gcc-4.7.2/no_short_enums.patch rename to tool/patches/gcc-4.7.4/no_short_enums.patch index e6d7768cb..72f6d7797 100644 --- a/tool/patches/gcc-4.7.2/no_short_enums.patch +++ b/tool/patches/gcc-4.7.4/no_short_enums.patch @@ -8,10 +8,10 @@ Ensure -fno-short-enums as default. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c -index 35b73c5..52370a8 100644 +index 6ed3575..ba4cacb 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c -@@ -23384,7 +23384,7 @@ arm_promote_function_mode (const_tree type ATTRIBUTE_UNUSED, +@@ -23466,7 +23466,7 @@ arm_promote_function_mode (const_tree type ATTRIBUTE_UNUSED, static bool arm_default_short_enums (void) { diff --git a/tool/patches/gcc-4.7.4/prefer_pic.patch b/tool/patches/gcc-4.7.4/prefer_pic.patch new file mode 100644 index 000000000..5f3fd4aec --- /dev/null +++ b/tool/patches/gcc-4.7.4/prefer_pic.patch @@ -0,0 +1,41 @@ +prefer_pic.patch + +From: Christian Prochaska + +Without this change, libsupc++ would be compiled w/o PIC flags, resulting +in text relocations. Because for base tool chains, no 'dynamic_linker' +is defined (see 'libtool.m4'), 'dynamic_linker' is set to 'no', which +results in 'can_build_shared = no', which, in turn , results +in 'enable_shared = no', which, in turn, sets 'glibcxx_lt_pic_flag' to +nothing rather than '-prefer-pic'. +--- + libstdc++-v3/configure.ac | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac +index ce1f6c4..59024f2 100644 +--- a/libstdc++-v3/configure.ac ++++ b/libstdc++-v3/configure.ac +@@ -109,16 +109,16 @@ AC_SUBST(enable_static) + # Use glibcxx_compiler_pic_flag to designate a compile-time flags for + # creating position-independent objects. This varies with the target + # hardware and operating system, but is often: -DPIC -fPIC. +-if test "$enable_shared" = yes; then ++#if test "$enable_shared" = yes; then + glibcxx_lt_pic_flag="-prefer-pic" + glibcxx_compiler_pic_flag="$lt_prog_compiler_pic_CXX" + glibcxx_compiler_shared_flag="-D_GLIBCXX_SHARED" + +-else +- glibcxx_lt_pic_flag= +- glibcxx_compiler_pic_flag= +- glibcxx_compiler_shared_flag= +-fi ++#else ++# glibcxx_lt_pic_flag= ++# glibcxx_compiler_pic_flag= ++# glibcxx_compiler_shared_flag= ++#fi + AC_SUBST(glibcxx_lt_pic_flag) + AC_SUBST(glibcxx_compiler_pic_flag) + AC_SUBST(glibcxx_compiler_shared_flag) diff --git a/tool/patches/gcc-4.7.2/series b/tool/patches/gcc-4.7.4/series similarity index 84% rename from tool/patches/gcc-4.7.2/series rename to tool/patches/gcc-4.7.4/series index d31f80f7a..50e526849 100644 --- a/tool/patches/gcc-4.7.2/series +++ b/tool/patches/gcc-4.7.4/series @@ -7,5 +7,4 @@ cppflags_for_target.patch cpp_for_target.patch no_short_enums.patch host_target_combination.patch -pic_cxxflags.patch -makeinfo5.patch +prefer_pic.patch diff --git a/tool/patches/gcc-4.7.4/tmake_file_arm.patch b/tool/patches/gcc-4.7.4/tmake_file_arm.patch new file mode 100644 index 000000000..c36c14e13 --- /dev/null +++ b/tool/patches/gcc-4.7.4/tmake_file_arm.patch @@ -0,0 +1,25 @@ +tmake_file_arm.patch + +From: Christian Prochaska + +Let 'config.gcc' expand our already populated 'tmake_file' variable rather +than making a hard assignment. This is needed for the ARM platform because +the target 'arm-elf-eabi' actually matches the pattern 'arm-*-*-eabi' in +the 'config.gcc' file. +--- + gcc/config.gcc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 732b829..8876218 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -910,7 +910,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) + need_64bit_hwint=yes + default_use_cxa_atexit=yes + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h" +- tmake_file="arm/t-arm arm/t-arm-elf" ++ tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf" + case ${target} in + arm*-*-eabi*) + tm_file="$tm_file newlib-stdint.h" diff --git a/tool/patches/gcc-4.7.4/tmake_file_extra_parts.patch b/tool/patches/gcc-4.7.4/tmake_file_extra_parts.patch new file mode 100644 index 000000000..5a86b4b7c --- /dev/null +++ b/tool/patches/gcc-4.7.4/tmake_file_extra_parts.patch @@ -0,0 +1,59 @@ +tmake_file_extra_parts.patch + +From: Christian Prochaska + +Enable support for passing custom 'tmake_file' and 'extra_parts' to the +GCC configure process uncommenting the default initialization of the +respective variables. The 'extra_parts' variable is used to carry the +information about which crtN files are to be created. +--- + gcc/config.gcc | 2 +- + libgcc/config.host | 8 ++++---- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 9503b96..732b829 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -204,7 +204,7 @@ + + out_file= + common_out_file= +-tmake_file= ++#tmake_file= + extra_headers= + user_headers_inc_next_pre= + user_headers_inc_next_post= +diff --git a/libgcc/config.host b/libgcc/config.host +index b64da4a..c34e7b3 100644 +--- a/libgcc/config.host ++++ b/libgcc/config.host +@@ -69,8 +69,8 @@ + + asm_hidden_op=.hidden + enable_execute_stack= +-extra_parts= +-tmake_file= ++#extra_parts= ++#tmake_file= + tm_file= + tm_define= + md_unwind_header=no-unwind.h +@@ -261,7 +261,7 @@ case ${host} in + tmake_file=t-vxworks + ;; + *-*-elf) +- extra_parts="crtbegin.o crtend.o" ++# extra_parts="crtbegin.o crtend.o" + ;; + esac + +@@ -364,7 +364,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) + case ${host} in + arm*-*-eabi* | arm*-*-rtems*) + tmake_file="${tmake_file} arm/t-bpabi" +- extra_parts="crtbegin.o crtend.o crti.o crtn.o" ++# extra_parts="crtbegin.o crtend.o crti.o crtn.o" + ;; + arm*-*-symbianelf*) + tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override" diff --git a/tool/tool_chain b/tool/tool_chain index 24ffd5dde..05d51241f 100755 --- a/tool/tool_chain +++ b/tool/tool_chain @@ -60,7 +60,7 @@ MPC_DOWNLOAD_URL ?= http://www.multiprecision.org/mpc/download # Tool versions and install location # -GCC_VERSION = 4.7.2 +GCC_VERSION = 4.7.4 BINUTILS_VERSION = 2.22 GDB_VERSION = 7.3.1 GMP_VERSION = 5.0.2 @@ -104,7 +104,7 @@ VERBOSE = @ # AUTOCONF_VERSION_gcc_4.4.5 = 2.59 AUTOCONF_VERSION_gcc_4.6.1 = 2.64 -AUTOCONF_VERSION_gcc_4.7.2 = 2.64 +AUTOCONF_VERSION_gcc_4.7.4 = 2.64 AUTOCONF_VERSION = $(AUTOCONF_VERSION_gcc_$(GCC_VERSION)) @@ -260,6 +260,7 @@ GCC_CONFIG += $(COMMON_CONFIG) \ --with-gnu-as --with-gnu-ld --disable-tls --disable-threads \ --disable-libstdcxx-pch \ --enable-shared \ + --enable-multiarch \ --with-gmp=$(LOCAL_LIB_INSTALL_LOCATION) \ --with-mpfr=$(LOCAL_LIB_INSTALL_LOCATION) \ --with-mpc=$(LOCAL_LIB_INSTALL_LOCATION) \