mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-18 20:37:56 +00:00
cc/gc: add update 4.4.7
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com> [yann.morin.1998@free.fr: propagate patchset from 4.4.6] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
parent
3629b6d931
commit
642e99ca4f
@ -109,6 +109,11 @@ config CC_V_linaro_4_4_2011_02_0
|
||||
depends on CC_GCC_SHOW_LINARO
|
||||
select CC_GCC_4_4
|
||||
|
||||
config CC_V_4_4_7
|
||||
bool
|
||||
prompt "4.4.7"
|
||||
select CC_GCC_4_4
|
||||
|
||||
config CC_V_4_4_6
|
||||
bool
|
||||
prompt "4.4.6"
|
||||
@ -363,6 +368,7 @@ config CC_VERSION
|
||||
default "4.5.1" if CC_V_4_5_1
|
||||
default "4.5.0" if CC_V_4_5_0
|
||||
default "linaro-4.4-2011.02-0" if CC_V_linaro_4_4_2011_02_0
|
||||
default "4.4.7" if CC_V_4_4_7
|
||||
default "4.4.6" if CC_V_4_4_6
|
||||
default "4.4.5" if CC_V_4_4_5
|
||||
default "4.4.4" if CC_V_4_4_4
|
||||
|
24
patches/gcc/4.4.7/100-alpha-mieee-default.patch
Normal file
24
patches/gcc/4.4.7/100-alpha-mieee-default.patch
Normal file
@ -0,0 +1,24 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/alpha/alpha.h gcc-4.4.5/gcc/config/alpha/alpha.h
|
||||
--- gcc-4.4.5.orig/gcc/config/alpha/alpha.h 2009-02-20 16:20:38.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/config/alpha/alpha.h 2010-10-09 22:57:31.000000000 +0200
|
||||
@@ -95,6 +95,8 @@
|
||||
while (0)
|
||||
#endif
|
||||
|
||||
+#define CPP_SPEC "%{!no-ieee:-mieee}"
|
||||
+
|
||||
#define WORD_SWITCH_TAKES_ARG(STR) \
|
||||
(!strcmp (STR, "rpath") || DEFAULT_WORD_SWITCH_TAKES_ARG(STR))
|
||||
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/alpha/alpha.opt gcc-4.4.5/gcc/config/alpha/alpha.opt
|
||||
--- gcc-4.4.5.orig/gcc/config/alpha/alpha.opt 2007-08-02 12:49:31.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/alpha/alpha.opt 2010-10-09 22:57:31.000000000 +0200
|
||||
@@ -39,7 +39,7 @@
|
||||
Request IEEE-conformant math library routines (OSF/1)
|
||||
|
||||
mieee
|
||||
-Target Report RejectNegative Mask(IEEE)
|
||||
+Target Report Mask(IEEE)
|
||||
Emit IEEE-conformant code, without inexact exceptions
|
||||
|
||||
mieee-with-inexact
|
27
patches/gcc/4.4.7/110-trampolinewarn.patch
Normal file
27
patches/gcc/4.4.7/110-trampolinewarn.patch
Normal file
@ -0,0 +1,27 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/builtins.c gcc-4.4.5/gcc/builtins.c
|
||||
--- gcc-4.4.5.orig/gcc/builtins.c 2010-03-22 16:00:20.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/builtins.c 2010-10-09 22:57:58.000000000 +0200
|
||||
@@ -5783,6 +5783,9 @@
|
||||
trampolines_created = 1;
|
||||
INITIALIZE_TRAMPOLINE (r_tramp, r_func, r_chain);
|
||||
|
||||
+ if (warn_trampolines)
|
||||
+ warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)");
|
||||
+
|
||||
return const0_rtx;
|
||||
}
|
||||
|
||||
diff -durN gcc-4.4.5.orig/gcc/common.opt gcc-4.4.5/gcc/common.opt
|
||||
--- gcc-4.4.5.orig/gcc/common.opt 2009-03-28 18:28:45.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/common.opt 2010-10-09 22:57:58.000000000 +0200
|
||||
@@ -197,6 +197,10 @@
|
||||
Common Var(warn_type_limits) Init(-1) Warning
|
||||
Warn if a comparison is always true or always false due to the limited range of the data type
|
||||
|
||||
+Wtrampolines
|
||||
+Common Var(warn_trampolines) Init(1)
|
||||
+Warn whenever a trampoline is generated
|
||||
+
|
||||
Wuninitialized
|
||||
Common Var(warn_uninitialized) Warning
|
||||
Warn about uninitialized automatic variables
|
46
patches/gcc/4.4.7/120-java-nomulti.patch
Normal file
46
patches/gcc/4.4.7/120-java-nomulti.patch
Normal file
@ -0,0 +1,46 @@
|
||||
diff -durN gcc-4.4.5.orig/libjava/configure gcc-4.4.5/libjava/configure
|
||||
--- gcc-4.4.5.orig/libjava/configure 2010-10-01 10:26:18.000000000 +0200
|
||||
+++ gcc-4.4.5/libjava/configure 2010-10-09 22:58:04.000000000 +0200
|
||||
@@ -1022,6 +1022,8 @@
|
||||
default=yes
|
||||
--enable-java-maintainer-mode
|
||||
allow rebuilding of .class and .h files
|
||||
+ --enable-libjava-multilib
|
||||
+ build libjava as multilib
|
||||
--disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors
|
||||
--enable-maintainer-mode enable make rules and dependencies not useful
|
||||
@@ -1974,6 +1976,16 @@
|
||||
fi
|
||||
|
||||
|
||||
+# Check whether --enable-libjava-multilib was given.
|
||||
+if test "${enable_libjava_multilib+set}" = set; then
|
||||
+ enableval=$enable_libjava_multilib;
|
||||
+fi
|
||||
+
|
||||
+if test "$enable_libjava_multilib" = no; then
|
||||
+ multilib=no
|
||||
+ ac_configure_args="$ac_configure_args --disable-multilib"
|
||||
+fi
|
||||
+
|
||||
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
|
||||
|
||||
|
||||
diff -durN gcc-4.4.5.orig/libjava/configure.ac gcc-4.4.5/libjava/configure.ac
|
||||
--- gcc-4.4.5.orig/libjava/configure.ac 2010-06-11 13:49:16.000000000 +0200
|
||||
+++ gcc-4.4.5/libjava/configure.ac 2010-10-09 22:58:04.000000000 +0200
|
||||
@@ -139,6 +139,13 @@
|
||||
[allow rebuilding of .class and .h files]))
|
||||
AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
|
||||
|
||||
+AC_ARG_ENABLE(libjava-multilib,
|
||||
+ AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
|
||||
+if test "$enable_libjava_multilib" = no; then
|
||||
+ multilib=no
|
||||
+ ac_configure_args="$ac_configure_args --disable-multilib"
|
||||
+fi
|
||||
+
|
||||
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
|
||||
GCC_NO_EXECUTABLES
|
||||
|
39
patches/gcc/4.4.7/130-cross-compile.patch
Normal file
39
patches/gcc/4.4.7/130-cross-compile.patch
Normal file
@ -0,0 +1,39 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/configure gcc-4.4.5/gcc/configure
|
||||
--- gcc-4.4.5.orig/gcc/configure 2010-06-20 17:43:53.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/configure 2010-10-09 22:58:36.000000000 +0200
|
||||
@@ -13997,7 +13997,7 @@
|
||||
| powerpc*-*-*,powerpc64*-*-*)
|
||||
CROSS="$CROSS -DNATIVE_CROSS" ;;
|
||||
esac
|
||||
-elif test "x$TARGET_SYSTEM_ROOT" != x; then
|
||||
+elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
|
||||
SYSTEM_HEADER_DIR=$build_system_header_dir
|
||||
fi
|
||||
|
||||
diff -durN gcc-4.4.5.orig/gcc/configure.ac gcc-4.4.5/gcc/configure.ac
|
||||
--- gcc-4.4.5.orig/gcc/configure.ac 2010-06-20 17:43:53.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/configure.ac 2010-10-09 22:58:36.000000000 +0200
|
||||
@@ -1720,7 +1720,7 @@
|
||||
| powerpc*-*-*,powerpc64*-*-*)
|
||||
CROSS="$CROSS -DNATIVE_CROSS" ;;
|
||||
esac
|
||||
-elif test "x$TARGET_SYSTEM_ROOT" != x; then
|
||||
+elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
|
||||
SYSTEM_HEADER_DIR=$build_system_header_dir
|
||||
fi
|
||||
|
||||
diff -durN gcc-4.4.5.orig/gcc/unwind-dw2.c gcc-4.4.5/gcc/unwind-dw2.c
|
||||
--- gcc-4.4.5.orig/gcc/unwind-dw2.c 2010-01-20 09:39:18.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/unwind-dw2.c 2010-10-09 22:58:36.000000000 +0200
|
||||
@@ -329,9 +329,11 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
+#ifndef inhibit_libc
|
||||
#ifdef MD_UNWIND_SUPPORT
|
||||
#include MD_UNWIND_SUPPORT
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
/* Extract any interesting information from the CIE for the translation
|
||||
unit F belongs to. Return a pointer to the byte after the augmentation,
|
49
patches/gcc/4.4.7/140-default-format-security.patch
Normal file
49
patches/gcc/4.4.7/140-default-format-security.patch
Normal file
@ -0,0 +1,49 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/c-common.c gcc-4.4.5/gcc/c-common.c
|
||||
--- gcc-4.4.5.orig/gcc/c-common.c 2010-07-27 15:07:28.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/c-common.c 2010-10-09 22:59:03.000000000 +0200
|
||||
@@ -301,7 +301,7 @@
|
||||
/* Warn about format/argument anomalies in calls to formatted I/O functions
|
||||
(*printf, *scanf, strftime, strfmon, etc.). */
|
||||
|
||||
-int warn_format;
|
||||
+int warn_format = 1;
|
||||
|
||||
/* Warn about using __null (as NULL in C++) as sentinel. For code compiled
|
||||
with GCC this doesn't matter as __null is guaranteed to have the right
|
||||
diff -durN gcc-4.4.5.orig/gcc/c.opt gcc-4.4.5/gcc/c.opt
|
||||
--- gcc-4.4.5.orig/gcc/c.opt 2009-09-18 23:53:23.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/c.opt 2010-10-09 22:59:03.000000000 +0200
|
||||
@@ -236,7 +236,7 @@
|
||||
Warn about format strings that contain NUL bytes
|
||||
|
||||
Wformat-security
|
||||
-C ObjC C++ ObjC++ Var(warn_format_security) Warning
|
||||
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning
|
||||
Warn about possible security problems with format functions
|
||||
|
||||
Wformat-y2k
|
||||
diff -durN gcc-4.4.5.orig/gcc/doc/invoke.texi gcc-4.4.5/gcc/doc/invoke.texi
|
||||
--- gcc-4.4.5.orig/gcc/doc/invoke.texi 2010-09-08 20:13:03.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/doc/invoke.texi 2010-10-09 22:59:03.000000000 +0200
|
||||
@@ -2888,6 +2888,9 @@
|
||||
@option{-Wformat-nonliteral}, @option{-Wformat-security}, and
|
||||
@option{-Wformat=2} are available, but are not included in @option{-Wall}.
|
||||
|
||||
+NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
|
||||
+To disable, use @option{-Wformat=0}.
|
||||
+
|
||||
@item -Wformat-y2k
|
||||
@opindex Wformat-y2k
|
||||
@opindex Wno-format-y2k
|
||||
@@ -2941,6 +2944,11 @@
|
||||
in future warnings may be added to @option{-Wformat-security} that are not
|
||||
included in @option{-Wformat-nonliteral}.)
|
||||
|
||||
+NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
|
||||
+To disable, use @option{-Wno-format-security}, or disable all format warnings
|
||||
+with @option{-Wformat=0}. To make format security warnings fatal, specify
|
||||
+@option{-Werror=format-security}.
|
||||
+
|
||||
@item -Wformat=2
|
||||
@opindex Wformat=2
|
||||
@opindex Wno-format=2
|
26
patches/gcc/4.4.7/150-default-fortify-source.patch
Normal file
26
patches/gcc/4.4.7/150-default-fortify-source.patch
Normal file
@ -0,0 +1,26 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/doc/invoke.texi gcc-4.4.5/gcc/doc/invoke.texi
|
||||
--- gcc-4.4.5.orig/gcc/doc/invoke.texi 2010-10-09 22:59:03.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/doc/invoke.texi 2010-10-09 22:59:33.000000000 +0200
|
||||
@@ -5432,6 +5432,11 @@
|
||||
Please note the warning under @option{-fgcse} about
|
||||
invoking @option{-O2} on programs that use computed gotos.
|
||||
|
||||
+NOTE: In Gentoo, @option{-D_FORTIFY_SOURCE=2} is set by default, and is
|
||||
+activated when @option{-O} is set to 2 or higher. This enables additional
|
||||
+compile-time and run-time checks for several libc functions. To disable,
|
||||
+specify either @option{-U_FORTIFY_SOURCE} or @option{-D_FORTIFY_SOURCE=0}.
|
||||
+
|
||||
@item -O3
|
||||
@opindex O3
|
||||
Optimize yet more. @option{-O3} turns on all optimizations specified
|
||||
diff -durN gcc-4.4.5.orig/gcc/gcc.c gcc-4.4.5/gcc/gcc.c
|
||||
--- gcc-4.4.5.orig/gcc/gcc.c 2010-01-09 01:05:06.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/gcc.c 2010-10-09 22:59:33.000000000 +0200
|
||||
@@ -807,6 +807,7 @@
|
||||
%{H} %C %{D*&U*&A*} %{i*} %Z %i\
|
||||
%{fmudflap:-D_MUDFLAP -include mf-runtime.h}\
|
||||
%{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h}\
|
||||
+ %{!D_FORTIFY_SOURCE:%{!D_FORTIFY_SOURCE=*:%{!U_FORTIFY_SOURCE:-D_FORTIFY_SOURCE=2}}}\
|
||||
%{E|M|MM:%W{o*}}";
|
||||
|
||||
/* This contains cpp options which are common with cc1_options and are passed
|
11
patches/gcc/4.4.7/160-netbsd-symbolic.patch
Normal file
11
patches/gcc/4.4.7/160-netbsd-symbolic.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/netbsd-elf.h gcc-4.4.5/gcc/config/netbsd-elf.h
|
||||
--- gcc-4.4.5.orig/gcc/config/netbsd-elf.h 2007-09-03 18:14:04.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/netbsd-elf.h 2010-10-09 22:59:57.000000000 +0200
|
||||
@@ -82,6 +82,7 @@
|
||||
#define NETBSD_LINK_SPEC_ELF \
|
||||
"%{assert*} %{R*} %{rpath*} \
|
||||
%{shared:-shared} \
|
||||
+ %{symbolic:-Bsymbolic} \
|
||||
%{!shared: \
|
||||
-dc -dp \
|
||||
%{!nostdlib: \
|
29
patches/gcc/4.4.7/170-sparc64-bsd.patch
Normal file
29
patches/gcc/4.4.7/170-sparc64-bsd.patch
Normal file
@ -0,0 +1,29 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/sparc/freebsd.h gcc-4.4.5/gcc/config/sparc/freebsd.h
|
||||
--- gcc-4.4.5.orig/gcc/config/sparc/freebsd.h 2007-08-02 12:49:31.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/sparc/freebsd.h 2010-10-09 23:00:03.000000000 +0200
|
||||
@@ -25,9 +25,22 @@
|
||||
/* FreeBSD needs the platform name (sparc64) defined.
|
||||
Emacs needs to know if the arch is 64 or 32-bits. */
|
||||
|
||||
-#undef CPP_CPU64_DEFAULT_SPEC
|
||||
-#define CPP_CPU64_DEFAULT_SPEC \
|
||||
- "-D__sparc64__ -D__sparc_v9__ -D__sparcv9 -D__arch64__"
|
||||
+#undef FBSD_TARGET_CPU_CPP_BUILTINS
|
||||
+#define FBSD_TARGET_CPU_CPP_BUILTINS() \
|
||||
+ do \
|
||||
+ { \
|
||||
+ if (TARGET_ARCH64) \
|
||||
+ { \
|
||||
+ builtin_define ("__sparc64__"); \
|
||||
+ builtin_define ("__sparc_v9__"); \
|
||||
+ builtin_define ("__sparcv9"); \
|
||||
+ } \
|
||||
+ else \
|
||||
+ builtin_define ("__sparc"); \
|
||||
+ builtin_define ("__sparc__"); \
|
||||
+ } \
|
||||
+ while (0)
|
||||
+
|
||||
|
||||
#define LINK_SPEC "%(link_arch) \
|
||||
%{!mno-relax:%{!r:-relax}} \
|
12
patches/gcc/4.4.7/180-libgomp-no-werror.patch
Normal file
12
patches/gcc/4.4.7/180-libgomp-no-werror.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -durN gcc-4.4.5.orig/libgomp/configure gcc-4.4.5/libgomp/configure
|
||||
--- gcc-4.4.5.orig/libgomp/configure 2010-10-01 10:26:18.000000000 +0200
|
||||
+++ gcc-4.4.5/libgomp/configure 2010-10-09 23:00:33.000000000 +0200
|
||||
@@ -3334,7 +3334,7 @@
|
||||
|
||||
# Add -Wall -Werror if we are using GCC.
|
||||
if test "x$GCC" = "xyes"; then
|
||||
- XCFLAGS="$XCFLAGS -Wall -Werror"
|
||||
+ XCFLAGS="$XCFLAGS -Wall"
|
||||
fi
|
||||
|
||||
# Find other programs we need.
|
24
patches/gcc/4.4.7/190-flatten-switch-stmt-00.patch
Normal file
24
patches/gcc/4.4.7/190-flatten-switch-stmt-00.patch
Normal file
@ -0,0 +1,24 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/stmt.c gcc-4.4.5/gcc/stmt.c
|
||||
--- gcc-4.4.5.orig/gcc/stmt.c 2010-03-08 12:46:28.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/stmt.c 2010-10-09 23:01:01.000000000 +0200
|
||||
@@ -2377,7 +2377,11 @@
|
||||
use_cost_table
|
||||
= (TREE_CODE (orig_type) != ENUMERAL_TYPE
|
||||
&& estimate_case_costs (case_list));
|
||||
- balance_case_nodes (&case_list, NULL);
|
||||
+ /* When optimizing for size, we want a straight list to avoid
|
||||
+ jumps as much as possible. This basically creates an if-else
|
||||
+ chain. */
|
||||
+ if (!optimize_size)
|
||||
+ balance_case_nodes (&case_list, NULL);
|
||||
emit_case_nodes (index, case_list, default_label, index_type);
|
||||
if (default_label)
|
||||
emit_jump (default_label);
|
||||
@@ -2943,6 +2947,7 @@
|
||||
{
|
||||
if (!node_has_low_bound (node, index_type))
|
||||
{
|
||||
+ if (!optimize_size) /* don't jl to the .default_label. */
|
||||
emit_cmp_and_jump_insns (index,
|
||||
convert_modes
|
||||
(mode, imode,
|
15
patches/gcc/4.4.7/200-libiberty.h-asprintf.patch
Normal file
15
patches/gcc/4.4.7/200-libiberty.h-asprintf.patch
Normal file
@ -0,0 +1,15 @@
|
||||
diff -durN gcc-4.4.5.orig/include/libiberty.h gcc-4.4.5/include/libiberty.h
|
||||
--- gcc-4.4.5.orig/include/libiberty.h 2008-06-24 03:42:31.000000000 +0200
|
||||
+++ gcc-4.4.5/include/libiberty.h 2010-10-09 23:01:30.000000000 +0200
|
||||
@@ -595,8 +595,11 @@
|
||||
/* Like sprintf but provides a pointer to malloc'd storage, which must
|
||||
be freed by the caller. */
|
||||
|
||||
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */
|
||||
+#ifndef asprintf
|
||||
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#if !HAVE_DECL_VASPRINTF
|
||||
/* Like vsprintf but provides a pointer to malloc'd storage, which
|
12
patches/gcc/4.4.7/210-arm-unbreak-armv4t.patch
Normal file
12
patches/gcc/4.4.7/210-arm-unbreak-armv4t.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/arm/linux-eabi.h gcc-4.4.5/gcc/config/arm/linux-eabi.h
|
||||
--- gcc-4.4.5.orig/gcc/config/arm/linux-eabi.h 2007-11-08 14:44:09.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/config/arm/linux-eabi.h 2010-10-09 23:01:59.000000000 +0200
|
||||
@@ -44,7 +44,7 @@
|
||||
The ARM10TDMI core is the default for armv5t, so set
|
||||
SUBTARGET_CPU_DEFAULT to achieve this. */
|
||||
#undef SUBTARGET_CPU_DEFAULT
|
||||
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
|
||||
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
|
||||
|
||||
/* TARGET_BIG_ENDIAN_DEFAULT is set in
|
||||
config.gcc for big endian configurations. */
|
11
patches/gcc/4.4.7/220-libiberty-pic.patch
Normal file
11
patches/gcc/4.4.7/220-libiberty-pic.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -durN gcc-4.4.5.orig/libiberty/Makefile.in gcc-4.4.5/libiberty/Makefile.in
|
||||
--- gcc-4.4.5.orig/libiberty/Makefile.in 2008-10-22 15:30:19.000000000 +0200
|
||||
+++ gcc-4.4.5/libiberty/Makefile.in 2010-10-09 23:02:28.000000000 +0200
|
||||
@@ -227,6 +227,7 @@
|
||||
$(AR) $(AR_FLAGS) $(TARGETLIB) \
|
||||
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
|
||||
$(RANLIB) $(TARGETLIB); \
|
||||
+ cp $(TARGETLIB) ../ ; \
|
||||
cd ..; \
|
||||
else true; fi
|
||||
|
12
patches/gcc/4.4.7/230-superh-default-multilib.patch
Normal file
12
patches/gcc/4.4.7/230-superh-default-multilib.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config.gcc gcc-4.4.5/gcc/config.gcc
|
||||
--- gcc-4.4.5.orig/gcc/config.gcc 2010-06-14 00:16:50.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config.gcc 2010-10-09 23:02:56.000000000 +0200
|
||||
@@ -2140,7 +2140,7 @@
|
||||
if test x${sh_multilibs} = x ; then
|
||||
case ${target} in
|
||||
sh64-superh-linux* | \
|
||||
- sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
|
||||
+ sh[1234]*) sh_multilibs=`cd ${srcdir}/config/sh ; echo t-mlib-sh[1-4]* | sed 's:t-mlib-sh:,m:g;s: ::g'` ;;
|
||||
sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
|
||||
sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
|
||||
sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;;
|
53
patches/gcc/4.4.7/240-libstdc++-pic.patch
Normal file
53
patches/gcc/4.4.7/240-libstdc++-pic.patch
Normal file
@ -0,0 +1,53 @@
|
||||
diff -durN gcc-4.4.5.orig/libstdc++-v3/src/Makefile.am gcc-4.4.5/libstdc++-v3/src/Makefile.am
|
||||
--- gcc-4.4.5.orig/libstdc++-v3/src/Makefile.am 2009-08-26 21:04:11.000000000 +0200
|
||||
+++ gcc-4.4.5/libstdc++-v3/src/Makefile.am 2010-10-09 23:03:26.000000000 +0200
|
||||
@@ -356,6 +356,13 @@
|
||||
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
|
||||
|
||||
|
||||
+install-exec-local:
|
||||
+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
|
||||
+ if [ x"$$pic_objs" != x ]; then \
|
||||
+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
|
||||
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
|
||||
+ fi
|
||||
+
|
||||
# Added bits to build debug library.
|
||||
if GLIBCXX_BUILD_DEBUG
|
||||
all-local: build_debug
|
||||
diff -durN gcc-4.4.5.orig/libstdc++-v3/src/Makefile.in gcc-4.4.5/libstdc++-v3/src/Makefile.in
|
||||
--- gcc-4.4.5.orig/libstdc++-v3/src/Makefile.in 2009-08-26 21:04:11.000000000 +0200
|
||||
+++ gcc-4.4.5/libstdc++-v3/src/Makefile.in 2010-10-09 23:03:26.000000000 +0200
|
||||
@@ -726,7 +726,7 @@
|
||||
|
||||
install-data-am: install-data-local
|
||||
|
||||
-install-exec-am: install-toolexeclibLTLIBRARIES
|
||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
@@ -765,7 +765,7 @@
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-info-am \
|
||||
- uninstall-toolexeclibLTLIBRARIES
|
||||
+ uninstall-toolexeclibLTLIBRARIES install-exec-local
|
||||
|
||||
|
||||
# Symbol versioning for shared libraries.
|
||||
@@ -947,6 +947,14 @@
|
||||
install_debug:
|
||||
(cd ${debugdir} && $(MAKE) \
|
||||
toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
|
||||
+
|
||||
+install-exec-local:
|
||||
+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
|
||||
+ if [ x"$$pic_objs" != x ]; then \
|
||||
+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
|
||||
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
|
||||
+ fi
|
||||
+
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
79
patches/gcc/4.4.7/250-ia64-noteGNUstack.patch
Normal file
79
patches/gcc/4.4.7/250-ia64-noteGNUstack.patch
Normal file
@ -0,0 +1,79 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/ia64/crtbegin.asm gcc-4.4.5/gcc/config/ia64/crtbegin.asm
|
||||
--- gcc-4.4.5.orig/gcc/config/ia64/crtbegin.asm 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/ia64/crtbegin.asm 2010-10-09 23:03:55.000000000 +0200
|
||||
@@ -252,3 +252,7 @@
|
||||
.weak __cxa_finalize
|
||||
#endif
|
||||
.weak _Jv_RegisterClasses
|
||||
+
|
||||
+#ifdef __linux__
|
||||
+.section .note.GNU-stack; .previous
|
||||
+#endif
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/ia64/crtend.asm gcc-4.4.5/gcc/config/ia64/crtend.asm
|
||||
--- gcc-4.4.5.orig/gcc/config/ia64/crtend.asm 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/ia64/crtend.asm 2010-10-09 23:03:55.000000000 +0200
|
||||
@@ -119,3 +119,7 @@
|
||||
|
||||
br.ret.sptk.many rp
|
||||
.endp __do_global_ctors_aux
|
||||
+
|
||||
+#ifdef __linux__
|
||||
+.section .note.GNU-stack; .previous
|
||||
+#endif
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/ia64/crti.asm gcc-4.4.5/gcc/config/ia64/crti.asm
|
||||
--- gcc-4.4.5.orig/gcc/config/ia64/crti.asm 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/ia64/crti.asm 2010-10-09 23:03:55.000000000 +0200
|
||||
@@ -51,3 +51,7 @@
|
||||
.body
|
||||
|
||||
# end of crti.asm
|
||||
+
|
||||
+#ifdef __linux__
|
||||
+.section .note.GNU-stack; .previous
|
||||
+#endif
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/ia64/crtn.asm gcc-4.4.5/gcc/config/ia64/crtn.asm
|
||||
--- gcc-4.4.5.orig/gcc/config/ia64/crtn.asm 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/ia64/crtn.asm 2010-10-09 23:03:55.000000000 +0200
|
||||
@@ -41,3 +41,7 @@
|
||||
br.ret.sptk.many b0
|
||||
|
||||
# end of crtn.asm
|
||||
+
|
||||
+#ifdef __linux__
|
||||
+.section .note.GNU-stack; .previous
|
||||
+#endif
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/ia64/lib1funcs.asm gcc-4.4.5/gcc/config/ia64/lib1funcs.asm
|
||||
--- gcc-4.4.5.orig/gcc/config/ia64/lib1funcs.asm 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/ia64/lib1funcs.asm 2010-10-09 23:03:55.000000000 +0200
|
||||
@@ -793,3 +793,7 @@
|
||||
.endp __floattitf
|
||||
#endif
|
||||
#endif
|
||||
+
|
||||
+#ifdef __linux__
|
||||
+.section .note.GNU-stack; .previous
|
||||
+#endif
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/ia64/linux.h gcc-4.4.5/gcc/config/ia64/linux.h
|
||||
--- gcc-4.4.5.orig/gcc/config/ia64/linux.h 2009-02-12 17:30:53.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/config/ia64/linux.h 2010-10-09 23:03:55.000000000 +0200
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
|
||||
|
||||
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
+
|
||||
/* This is for -profile to use -lc_p instead of -lc. */
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "%{profile:-p} %{G*}"
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/rs6000/ppc-asm.h gcc-4.4.5/gcc/config/rs6000/ppc-asm.h
|
||||
--- gcc-4.4.5.orig/gcc/config/rs6000/ppc-asm.h 2008-10-13 17:44:26.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/rs6000/ppc-asm.h 2010-10-09 23:03:55.000000000 +0200
|
||||
@@ -172,7 +172,7 @@
|
||||
.size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
|
||||
#endif
|
||||
|
||||
-#if defined __linux__ && !defined __powerpc64__
|
||||
+#if defined __linux__
|
||||
.section .note.GNU-stack
|
||||
.previous
|
||||
#endif
|
25
patches/gcc/4.4.7/260-sh-libgcc-stacks.patch
Normal file
25
patches/gcc/4.4.7/260-sh-libgcc-stacks.patch
Normal file
@ -0,0 +1,25 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/sh/lib1funcs.asm gcc-4.4.5/gcc/config/sh/lib1funcs.asm
|
||||
--- gcc-4.4.5.orig/gcc/config/sh/lib1funcs.asm 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/sh/lib1funcs.asm 2010-10-09 23:04:22.000000000 +0200
|
||||
@@ -30,6 +30,11 @@
|
||||
!! recoded in assembly by Toshiyasu Morita
|
||||
!! tm@netcom.com
|
||||
|
||||
+#if defined(__ELF__) && defined(__linux__)
|
||||
+.section .note.GNU-stack,"",%progbits
|
||||
+.previous
|
||||
+#endif
|
||||
+
|
||||
/* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and
|
||||
ELF local label prefixes by J"orn Rennecke
|
||||
amylaar@cygnus.com */
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/sh/linux-atomic.asm gcc-4.4.5/gcc/config/sh/linux-atomic.asm
|
||||
--- gcc-4.4.5.orig/gcc/config/sh/linux-atomic.asm 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/sh/linux-atomic.asm 2010-10-09 23:04:22.000000000 +0200
|
||||
@@ -136,3 +136,6 @@
|
||||
ATOMIC_FETCH_AND_COMBOP(nand,and,not,4,l,mov)
|
||||
|
||||
#endif /* ! __SH5__ */
|
||||
+
|
||||
+.section .note.GNU-stack,"",%progbits
|
||||
+.previous
|
24
patches/gcc/4.4.7/270-sh-pr24836.patch
Normal file
24
patches/gcc/4.4.7/270-sh-pr24836.patch
Normal file
@ -0,0 +1,24 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/configure gcc-4.4.5/gcc/configure
|
||||
--- gcc-4.4.5.orig/gcc/configure 2010-10-09 22:58:36.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/configure 2010-10-09 23:04:50.000000000 +0200
|
||||
@@ -22285,7 +22285,7 @@
|
||||
tls_first_minor=14
|
||||
tls_as_opt="-m64 -Aesame --fatal-warnings"
|
||||
;;
|
||||
- sh-*-* | sh[34]-*-*)
|
||||
+ sh-*-* | sh[34]*-*-*)
|
||||
conftest_s='
|
||||
.section ".tdata","awT",@progbits
|
||||
foo: .long 25
|
||||
diff -durN gcc-4.4.5.orig/gcc/configure.ac gcc-4.4.5/gcc/configure.ac
|
||||
--- gcc-4.4.5.orig/gcc/configure.ac 2010-10-09 22:58:36.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/configure.ac 2010-10-09 23:04:50.000000000 +0200
|
||||
@@ -2728,7 +2728,7 @@
|
||||
tls_first_minor=14
|
||||
tls_as_opt="-m64 -Aesame --fatal-warnings"
|
||||
;;
|
||||
- sh-*-* | sh[34]-*-*)
|
||||
+ sh-*-* | sh[34]*-*-*)
|
||||
conftest_s='
|
||||
.section ".tdata","awT",@progbits
|
||||
foo: .long 25
|
94
patches/gcc/4.4.7/280-freebsd.patch
Normal file
94
patches/gcc/4.4.7/280-freebsd.patch
Normal file
@ -0,0 +1,94 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/freebsd-spec.h gcc-4.4.5/gcc/config/freebsd-spec.h
|
||||
--- gcc-4.4.5.orig/gcc/config/freebsd-spec.h 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/freebsd-spec.h 2010-10-09 23:09:53.000000000 +0200
|
||||
@@ -61,6 +61,8 @@
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=bsd"); \
|
||||
builtin_assert ("system=FreeBSD"); \
|
||||
+ if(!(flag_iso && (c_dialect_cxx () ? cxx_dialect == cxx98 : !flag_isoc99))) \
|
||||
+ builtin_define("_LONGLONG"); \
|
||||
FBSD_TARGET_CPU_CPP_BUILTINS(); \
|
||||
} \
|
||||
while (0)
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/t-freebsd-eh gcc-4.4.5/gcc/config/t-freebsd-eh
|
||||
--- gcc-4.4.5.orig/gcc/config/t-freebsd-eh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/config/t-freebsd-eh 2010-10-09 23:09:53.000000000 +0200
|
||||
@@ -0,0 +1,4 @@
|
||||
+# Use unwind-dw2-fde-glibc
|
||||
+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
|
||||
+ $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
|
||||
+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
|
||||
diff -durN gcc-4.4.5.orig/gcc/config.gcc gcc-4.4.5/gcc/config.gcc
|
||||
--- gcc-4.4.5.orig/gcc/config.gcc 2010-10-09 23:02:56.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config.gcc 2010-10-09 23:09:53.000000000 +0200
|
||||
@@ -456,7 +456,7 @@
|
||||
# pleases around the provided core setting.
|
||||
gas=yes
|
||||
gnu_ld=yes
|
||||
- extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
|
||||
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
|
||||
fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
|
||||
tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
|
||||
tmake_file="t-slibgcc-elf-ver t-freebsd"
|
||||
@@ -1048,6 +1048,10 @@
|
||||
;;
|
||||
i[34567]86-*-freebsd*)
|
||||
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
|
||||
+ fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
|
||||
+ if test ${fbsd_major} -ge 7; then
|
||||
+ tmake_file="${tmake_file} t-freebsd-eh"
|
||||
+ fi
|
||||
;;
|
||||
x86_64-*-freebsd*)
|
||||
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
|
||||
diff -durN gcc-4.4.5.orig/gcc/crtstuff.c gcc-4.4.5/gcc/crtstuff.c
|
||||
--- gcc-4.4.5.orig/gcc/crtstuff.c 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/crtstuff.c 2010-10-09 23:09:53.000000000 +0200
|
||||
@@ -85,13 +85,15 @@
|
||||
&& !defined(OBJECT_FORMAT_FLAT) \
|
||||
&& defined(HAVE_LD_EH_FRAME_HDR) \
|
||||
&& !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
|
||||
- && defined(__GLIBC__) && __GLIBC__ >= 2
|
||||
+ && ((defined(__GLIBC__) && __GLIBC__ >= 2) \
|
||||
+ || (defined(__FreeBSD_version) && __FreeBSD_version >= 700022))
|
||||
#include <link.h>
|
||||
/* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
|
||||
But it doesn't use PT_GNU_EH_FRAME ELF segment currently. */
|
||||
# if !defined(__UCLIBC__) \
|
||||
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
|
||||
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
|
||||
+ || (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
|
||||
+ || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) \
|
||||
+ || (__FreeBSD_version >= 700022)
|
||||
# define USE_PT_GNU_EH_FRAME
|
||||
# endif
|
||||
#endif
|
||||
diff -durN gcc-4.4.5.orig/gcc/unwind-dw2-fde-glibc.c gcc-4.4.5/gcc/unwind-dw2-fde-glibc.c
|
||||
--- gcc-4.4.5.orig/gcc/unwind-dw2-fde-glibc.c 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/unwind-dw2-fde-glibc.c 2010-10-09 23:09:53.000000000 +0200
|
||||
@@ -46,8 +46,9 @@
|
||||
#include "gthr.h"
|
||||
|
||||
#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
|
||||
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
|
||||
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
|
||||
+ && ((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
|
||||
+ || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) \
|
||||
+ || (__FreeBSD_version >= 700022 ))
|
||||
|
||||
#ifndef __RELOC_POINTER
|
||||
# define __RELOC_POINTER(ptr, base) ((ptr) + (base))
|
||||
@@ -63,6 +64,13 @@
|
||||
#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550)
|
||||
#endif
|
||||
|
||||
+/* Support FreeBSD */
|
||||
+#ifndef ElfW
|
||||
+# ifdef __ElfN
|
||||
+# define ElfW __ElfN
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
struct unw_eh_callback_data
|
||||
{
|
||||
_Unwind_Ptr pc;
|
64
patches/gcc/4.4.7/290-freebsd.patch
Normal file
64
patches/gcc/4.4.7/290-freebsd.patch
Normal file
@ -0,0 +1,64 @@
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/freebsd-spec.h gcc-4.4.5/gcc/config/freebsd-spec.h
|
||||
--- gcc-4.4.5.orig/gcc/config/freebsd-spec.h 2010-10-09 23:09:53.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config/freebsd-spec.h 2010-10-09 23:10:02.000000000 +0200
|
||||
@@ -86,9 +86,10 @@
|
||||
#define FBSD_STARTFILE_SPEC \
|
||||
"%{!shared: \
|
||||
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
|
||||
- %{!p:%{profile:gcrt1.o%s} \
|
||||
- %{!profile:crt1.o%s}}}} \
|
||||
- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
|
||||
+ %{!p:%{profile:gcrt1.o%s} \
|
||||
+ %{!profile:crt1.o%s}}}} \
|
||||
+ crti.o%s \
|
||||
+ %{static:crtbeginT.o%s;shared:crtbeginS.o%s;:crtbegin.o%s}"
|
||||
|
||||
/* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on
|
||||
the magical crtend.o file (see crtstuff.c) which provides part of
|
||||
@@ -126,7 +127,8 @@
|
||||
%{pg: -lc_p} \
|
||||
}"
|
||||
#else
|
||||
-#if FBSD_MAJOR < 5
|
||||
+#include <sys/param.h>
|
||||
+#if __FreeBSD_version < 500016
|
||||
#define FBSD_LIB_SPEC " \
|
||||
%{!shared: \
|
||||
%{!pg: \
|
||||
@@ -136,17 +138,34 @@
|
||||
%{!pthread:-lc_p} \
|
||||
%{pthread:-lc_r_p}} \
|
||||
}"
|
||||
-#else
|
||||
+#elif __FreeBSD_version < 700022
|
||||
#define FBSD_LIB_SPEC " \
|
||||
%{!shared: \
|
||||
%{!pg: %{pthread:-lpthread} -lc} \
|
||||
%{pg: %{pthread:-lpthread_p} -lc_p} \
|
||||
}"
|
||||
+#else
|
||||
+#define FBSD_LIB_SPEC " \
|
||||
+ %{!shared: \
|
||||
+ %{!pg: %{pthread:-lpthread} -lc} \
|
||||
+ %{pg: %{pthread:-lpthread_p} -lc_p}} \
|
||||
+ %{shared: \
|
||||
+ %{pthread:-lpthread} -lc} \
|
||||
+ "
|
||||
#endif
|
||||
#endif
|
||||
|
||||
-#if FBSD_MAJOR < 6
|
||||
+#if FBSD_MAJOR < 5
|
||||
#define FBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.1"
|
||||
#else
|
||||
#define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
|
||||
#endif
|
||||
+
|
||||
+#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||
+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||||
+#endif
|
||||
+
|
||||
+/* Use --as-needed -lgcc_s for eh support. */
|
||||
+#ifdef HAVE_LD_AS_NEEDED
|
||||
+#define USE_LD_AS_NEEDED 1
|
||||
+#endif
|
35
patches/gcc/4.4.7/300-uclibc-conf.patch
Normal file
35
patches/gcc/4.4.7/300-uclibc-conf.patch
Normal file
@ -0,0 +1,35 @@
|
||||
diff -durN gcc-4.4.5.orig/contrib/regression/objs-gcc.sh gcc-4.4.5/contrib/regression/objs-gcc.sh
|
||||
--- gcc-4.4.5.orig/contrib/regression/objs-gcc.sh 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/contrib/regression/objs-gcc.sh 2010-10-09 23:10:32.000000000 +0200
|
||||
@@ -106,6 +106,10 @@
|
||||
then
|
||||
make all-gdb all-dejagnu all-ld || exit 1
|
||||
make install-gdb install-dejagnu install-ld || exit 1
|
||||
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
|
||||
+ then
|
||||
+ make all-gdb all-dejagnu all-ld || exit 1
|
||||
+ make install-gdb install-dejagnu install-ld || exit 1
|
||||
elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
|
||||
make bootstrap || exit 1
|
||||
make install || exit 1
|
||||
diff -durN gcc-4.4.5.orig/libjava/classpath/ltconfig gcc-4.4.5/libjava/classpath/ltconfig
|
||||
--- gcc-4.4.5.orig/libjava/classpath/ltconfig 2007-06-04 01:18:43.000000000 +0200
|
||||
+++ gcc-4.4.5/libjava/classpath/ltconfig 2010-10-09 23:10:32.000000000 +0200
|
||||
@@ -603,7 +603,7 @@
|
||||
|
||||
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
|
||||
case $host_os in
|
||||
-linux-gnu*) ;;
|
||||
+linux-gnu*|linux-uclibc*) ;;
|
||||
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
|
||||
esac
|
||||
|
||||
@@ -1251,7 +1251,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
12
patches/gcc/4.4.7/310-missing-execinfo_h.patch
Normal file
12
patches/gcc/4.4.7/310-missing-execinfo_h.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -durN gcc-4.4.5.orig/boehm-gc/include/gc.h gcc-4.4.5/boehm-gc/include/gc.h
|
||||
--- gcc-4.4.5.orig/boehm-gc/include/gc.h 2007-04-23 23:10:09.000000000 +0200
|
||||
+++ gcc-4.4.5/boehm-gc/include/gc.h 2010-10-09 23:11:00.000000000 +0200
|
||||
@@ -503,7 +503,7 @@
|
||||
#if defined(__linux__) || defined(__GLIBC__)
|
||||
# include <features.h>
|
||||
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
|
||||
- && !defined(__ia64__)
|
||||
+ && !defined(__ia64__) && !defined(__UCLIBC__)
|
||||
# ifndef GC_HAVE_BUILTIN_BACKTRACE
|
||||
# define GC_HAVE_BUILTIN_BACKTRACE
|
||||
# endif
|
12
patches/gcc/4.4.7/320-c99-snprintf.patch
Normal file
12
patches/gcc/4.4.7/320-c99-snprintf.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -durN gcc-4.4.5.orig/libstdc++-v3/include/c_global/cstdio gcc-4.4.5/libstdc++-v3/include/c_global/cstdio
|
||||
--- gcc-4.4.5.orig/libstdc++-v3/include/c_global/cstdio 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/libstdc++-v3/include/c_global/cstdio 2010-10-09 23:11:27.000000000 +0200
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if _GLIBCXX_USE_C99 || defined __UCLIBC__
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
48
patches/gcc/4.4.7/330-libmudflap-susv3-legacy.patch
Normal file
48
patches/gcc/4.4.7/330-libmudflap-susv3-legacy.patch
Normal file
@ -0,0 +1,48 @@
|
||||
diff -durN gcc-4.4.5.orig/libmudflap/mf-hooks2.c gcc-4.4.5/libmudflap/mf-hooks2.c
|
||||
--- gcc-4.4.5.orig/libmudflap/mf-hooks2.c 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/libmudflap/mf-hooks2.c 2010-10-09 23:11:52.000000000 +0200
|
||||
@@ -421,7 +421,7 @@
|
||||
{
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
|
||||
- bzero (s, n);
|
||||
+ memset (s, 0, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -431,7 +431,7 @@
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
|
||||
MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
|
||||
- bcopy (src, dest, n);
|
||||
+ memmove (dest, src, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -441,7 +441,7 @@
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
|
||||
MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
|
||||
- return bcmp (s1, s2, n);
|
||||
+ return n == 0 ? 0 : memcmp (s1, s2, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -450,7 +450,7 @@
|
||||
size_t n = strlen (s);
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
|
||||
- return index (s, c);
|
||||
+ return strchr (s, c);
|
||||
}
|
||||
|
||||
|
||||
@@ -459,7 +459,7 @@
|
||||
size_t n = strlen (s);
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
|
||||
- return rindex (s, c);
|
||||
+ return strrchr (s, c);
|
||||
}
|
||||
|
||||
/* XXX: stpcpy, memccpy */
|
13
patches/gcc/4.4.7/340-ecjx-host-cc.patch
Normal file
13
patches/gcc/4.4.7/340-ecjx-host-cc.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff -durN gcc-4.4.5.orig/libjava/Makefile.in gcc-4.4.5/libjava/Makefile.in
|
||||
--- gcc-4.4.5.orig/libjava/Makefile.in 2010-10-01 10:26:18.000000000 +0200
|
||||
+++ gcc-4.4.5/libjava/Makefile.in 2010-10-09 23:12:22.000000000 +0200
|
||||
@@ -9180,6 +9180,9 @@
|
||||
ecjx$(EXEEXT): $(ecjx_OBJECTS) $(ecjx_DEPENDENCIES)
|
||||
@rm -f ecjx$(EXEEXT)
|
||||
$(ecjx_LINK) $(ecjx_LDFLAGS) $(ecjx_OBJECTS) $(ecjx_LDADD) $(LIBS)
|
||||
+ecjx.$(OBJEXT): $(ecjx_SOURCES)
|
||||
+ @rm -f ecjx.$(OBJEXT)
|
||||
+ $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c -o $@ $<
|
||||
gappletviewer$(EXEEXT): $(gappletviewer_OBJECTS) $(gappletviewer_DEPENDENCIES)
|
||||
@rm -f gappletviewer$(EXEEXT)
|
||||
$(gappletviewer_LINK) $(gappletviewer_LDFLAGS) $(gappletviewer_OBJECTS) $(gappletviewer_LDADD) $(LIBS)
|
30
patches/gcc/4.4.7/350-index_macro.patch
Normal file
30
patches/gcc/4.4.7/350-index_macro.patch
Normal file
@ -0,0 +1,30 @@
|
||||
-= BEGIN original header =-
|
||||
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_304-index_macro.patch
|
||||
-= END original header =-
|
||||
|
||||
diff -durN gcc-4.4.5.orig/libstdc++-v3/include/ext/rope gcc-4.4.5/libstdc++-v3/include/ext/rope
|
||||
--- gcc-4.4.5.orig/libstdc++-v3/include/ext/rope 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/libstdc++-v3/include/ext/rope 2010-10-09 23:12:51.000000000 +0200
|
||||
@@ -54,6 +54,9 @@
|
||||
#include <bits/gthr.h>
|
||||
#include <tr1/functional>
|
||||
|
||||
+/* cope w/ index defined as macro, SuSv3 proposal */
|
||||
+#undef index
|
||||
+
|
||||
# ifdef __GC
|
||||
# define __GC_CONST const
|
||||
# else
|
||||
diff -durN gcc-4.4.5.orig/libstdc++-v3/include/ext/ropeimpl.h gcc-4.4.5/libstdc++-v3/include/ext/ropeimpl.h
|
||||
--- gcc-4.4.5.orig/libstdc++-v3/include/ext/ropeimpl.h 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/libstdc++-v3/include/ext/ropeimpl.h 2010-10-09 23:12:51.000000000 +0200
|
||||
@@ -49,6 +49,9 @@
|
||||
#include <ext/memory> // For uninitialized_copy_n
|
||||
#include <ext/numeric> // For power
|
||||
|
||||
+/* cope w/ index defined as macro, SuSv3 proposal */
|
||||
+#undef index
|
||||
+
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
using std::size_t;
|
32
patches/gcc/4.4.7/360-arm-bigendian.patch
Normal file
32
patches/gcc/4.4.7/360-arm-bigendian.patch
Normal file
@ -0,0 +1,32 @@
|
||||
By Lennert Buytenhek <buytenh@wantstofly.org>
|
||||
Adds support for arm*b-linux* big-endian ARM targets
|
||||
|
||||
See http://gcc.gnu.org/PR16350
|
||||
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/arm/linux-elf.h gcc-4.4.5/gcc/config/arm/linux-elf.h
|
||||
--- gcc-4.4.5.orig/gcc/config/arm/linux-elf.h 2009-02-20 16:20:38.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/config/arm/linux-elf.h 2010-10-09 23:13:21.000000000 +0200
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS \
|
||||
- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
|
||||
+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
|
||||
|
||||
/* Now we define the strings used to build the spec file. */
|
||||
#undef LIB_SPEC
|
||||
diff -durN gcc-4.4.5.orig/gcc/config.gcc gcc-4.4.5/gcc/config.gcc
|
||||
--- gcc-4.4.5.orig/gcc/config.gcc 2010-10-09 23:09:53.000000000 +0200
|
||||
+++ gcc-4.4.5/gcc/config.gcc 2010-10-09 23:13:21.000000000 +0200
|
||||
@@ -739,6 +739,11 @@
|
||||
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h"
|
||||
tmake_file="arm/t-arm arm/t-arm-elf"
|
||||
case ${target} in
|
||||
+ arm*b-*)
|
||||
+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ case ${target} in
|
||||
arm*-*-uclinux*eabi)
|
||||
tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
|
||||
tmake_file="$tmake_file arm/t-bpabi"
|
38
patches/gcc/4.4.7/370-bootstrap-target_lib_path.patch
Normal file
38
patches/gcc/4.4.7/370-bootstrap-target_lib_path.patch
Normal file
@ -0,0 +1,38 @@
|
||||
ChangeLog:
|
||||
2010-01-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||
|
||||
PR bootstrap/41818
|
||||
* Makefile.tpl (BASE_TARGET_EXPORTS): Only add TARGET_LIB_PATH
|
||||
to $(RPATH_ENVVAR) if bootstrapping.
|
||||
* Makefile.in: Regenerate.
|
||||
|
||||
diff -durN gcc-4.4.5.orig/Makefile.in gcc-4.4.5/Makefile.in
|
||||
--- gcc-4.4.5.orig/Makefile.in 2009-04-25 06:10:29.000000000 +0200
|
||||
+++ gcc-4.4.5/Makefile.in 2010-10-09 23:13:50.000000000 +0200
|
||||
@@ -245,7 +245,10 @@
|
||||
STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
|
||||
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
|
||||
WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
|
||||
- $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
|
||||
+@if gcc-bootstrap
|
||||
+ $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
|
||||
+@endif gcc-bootstrap
|
||||
+ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
|
||||
|
||||
RAW_CXX_TARGET_EXPORTS = \
|
||||
$(BASE_TARGET_EXPORTS) \
|
||||
diff -durN gcc-4.4.5.orig/Makefile.tpl gcc-4.4.5/Makefile.tpl
|
||||
--- gcc-4.4.5.orig/Makefile.tpl 2009-04-14 10:57:33.000000000 +0200
|
||||
+++ gcc-4.4.5/Makefile.tpl 2010-10-09 23:13:50.000000000 +0200
|
||||
@@ -248,7 +248,10 @@
|
||||
STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
|
||||
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
|
||||
WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
|
||||
- $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
|
||||
+@if gcc-bootstrap
|
||||
+ $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
|
||||
+@endif gcc-bootstrap
|
||||
+ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
|
||||
|
||||
RAW_CXX_TARGET_EXPORTS = \
|
||||
$(BASE_TARGET_EXPORTS) \
|
134
patches/gcc/4.4.7/380-powerpc-libgcc_s-link-libm.patch
Normal file
134
patches/gcc/4.4.7/380-powerpc-libgcc_s-link-libm.patch
Normal file
@ -0,0 +1,134 @@
|
||||
http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00269.html
|
||||
|
||||
On glibc the libc.so carries a copy of the math function copysignl() but
|
||||
contains unresolved symbols, any attempt to link against libgcc_s
|
||||
without explicitely specifying -lm fails, resulting in a broken
|
||||
bootstrap of the compiler.
|
||||
|
||||
|
||||
diff -durN gcc-4.4.5.orig/gcc/config/t-slibgcc-elf-ver gcc-4.4.5/gcc/config/t-slibgcc-elf-ver
|
||||
--- gcc-4.4.5.orig/gcc/config/t-slibgcc-elf-ver 2010-01-04 16:13:08.000000000 +0100
|
||||
+++ gcc-4.4.5/gcc/config/t-slibgcc-elf-ver 2010-10-09 23:14:18.000000000 +0200
|
||||
@@ -9,7 +9,7 @@
|
||||
SHLIB_OBJS = @shlib_objs@
|
||||
SHLIB_DIR = @multilib_dir@
|
||||
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
|
||||
-SHLIB_LC = -lc
|
||||
+SHLIB_LC = @libgcc_libm@ -lc
|
||||
SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
|
||||
SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
||||
diff -durN gcc-4.4.5.orig/libgcc/configure gcc-4.4.5/libgcc/configure
|
||||
--- gcc-4.4.5.orig/libgcc/configure 2008-11-20 18:13:01.000000000 +0100
|
||||
+++ gcc-4.4.5/libgcc/configure 2010-10-09 23:14:18.000000000 +0200
|
||||
@@ -272,7 +272,7 @@
|
||||
PACKAGE_BUGREPORT=''
|
||||
|
||||
ac_unique_file="static-object.mk"
|
||||
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS'
|
||||
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls LIBGCC_LIBM tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS'
|
||||
ac_subst_files=''
|
||||
ac_pwd=`pwd`
|
||||
|
||||
@@ -3547,6 +3547,39 @@
|
||||
fi
|
||||
|
||||
|
||||
+# On powerpc libgcc_s references copysignl which is a libm function but
|
||||
+# glibc apparently also provides it via libc as opposed to uClibc where
|
||||
+# it lives in libm.
|
||||
+echo "$as_me:$LINENO: checking for library containing copysignl" >&5
|
||||
+echo $ECHO_N "checking for library containing copysignl... $ECHO_C" >&6
|
||||
+if test "${libgcc_cv_copysignl_lib+set}" = set; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+
|
||||
+ echo '#include <features.h>' > conftest.c
|
||||
+ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c
|
||||
+ libgcc_cv_copysignl_lib="-lc"
|
||||
+ if { ac_try='${CC-cc} -S conftest.c -o conftest.s 1>&5'
|
||||
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
+ (eval $ac_try) 2>&5
|
||||
+ ac_status=$?
|
||||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
+ (exit $ac_status); }; }
|
||||
+ then
|
||||
+ libgcc_cv_copysignl_lib="-lm"
|
||||
+ fi
|
||||
+ rm -f conftest.*
|
||||
+
|
||||
+fi
|
||||
+echo "$as_me:$LINENO: result: $libgcc_cv_copysignl_lib" >&5
|
||||
+echo "${ECHO_T}$libgcc_cv_copysignl_lib" >&6
|
||||
+
|
||||
+case /${libgcc_cv_copysignl_lib}/ in
|
||||
+ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;;
|
||||
+ *) LIBGCC_LIBM= ;;
|
||||
+esac
|
||||
+
|
||||
+
|
||||
# Conditionalize the makefile for this target machine.
|
||||
tmake_file_=
|
||||
for f in ${tmake_file}
|
||||
@@ -4267,6 +4300,7 @@
|
||||
s,@fixed_point@,$fixed_point,;t t
|
||||
s,@vis_hide@,$vis_hide,;t t
|
||||
s,@set_have_cc_tls@,$set_have_cc_tls,;t t
|
||||
+s,@LIBGCC_LIBM@,$LIBGCC_LIBM,;t t
|
||||
s,@tmake_file@,$tmake_file,;t t
|
||||
s,@extra_parts@,$extra_parts,;t t
|
||||
s,@asm_hidden_op@,$asm_hidden_op,;t t
|
||||
diff -durN gcc-4.4.5.orig/libgcc/configure.ac gcc-4.4.5/libgcc/configure.ac
|
||||
--- gcc-4.4.5.orig/libgcc/configure.ac 2008-11-20 18:13:01.000000000 +0100
|
||||
+++ gcc-4.4.5/libgcc/configure.ac 2010-10-09 23:14:18.000000000 +0200
|
||||
@@ -223,6 +223,27 @@
|
||||
fi
|
||||
AC_SUBST(set_have_cc_tls)
|
||||
|
||||
+# On powerpc libgcc_s references copysignl which is a libm function but
|
||||
+# glibc apparently also provides it via libc as opposed to uClibc where
|
||||
+# it lives in libm.
|
||||
+AC_CACHE_CHECK
|
||||
+ libgcc_cv_copysignl_lib,
|
||||
+ echo '#include <features.h>' > conftest.c
|
||||
+ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c
|
||||
+ libgcc_cv_copysignl_lib="-lc"
|
||||
+ if AC_TRY_COMMAND(${CC-cc} -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD)
|
||||
+ then
|
||||
+ libgcc_cv_copysignl_lib="-lm"
|
||||
+ fi
|
||||
+ rm -f conftest.*
|
||||
+ ])
|
||||
+
|
||||
+case /${libgcc_cv_copysignl_lib}/ in
|
||||
+ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;;
|
||||
+ *) LIBGCC_LIBM= ;;
|
||||
+esac
|
||||
+AC_SUBST(LIBGCC_LIBM)
|
||||
+
|
||||
# Conditionalize the makefile for this target machine.
|
||||
tmake_file_=
|
||||
for f in ${tmake_file}
|
||||
diff -durN gcc-4.4.5.orig/libgcc/Makefile.in gcc-4.4.5/libgcc/Makefile.in
|
||||
--- gcc-4.4.5.orig/libgcc/Makefile.in 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.5/libgcc/Makefile.in 2010-10-09 23:14:18.000000000 +0200
|
||||
@@ -39,6 +39,7 @@
|
||||
decimal_float = @decimal_float@
|
||||
enable_decimal_float = @enable_decimal_float@
|
||||
fixed_point = @fixed_point@
|
||||
+LIBGCC_LIBM = @LIBGCC_LIBM@
|
||||
|
||||
host_noncanonical = @host_noncanonical@
|
||||
|
||||
@@ -787,9 +788,10 @@
|
||||
@multilib_dir@,$(MULTIDIR),$(subst \
|
||||
@shlib_objs@,$(objects),$(subst \
|
||||
@shlib_base_name@,libgcc_s,$(subst \
|
||||
+ @libgcc_libm@,$(LIBGCC_LIBM),$(subst \
|
||||
@shlib_map_file@,$(mapfile),$(subst \
|
||||
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \
|
||||
- @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK))))))))
|
||||
+ @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))))
|
||||
|
||||
libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts)
|
||||
# @multilib_flags@ is still needed because this may use
|
38
patches/gcc/4.4.7/390-arm-softfloat-libgcc.patch
Normal file
38
patches/gcc/4.4.7/390-arm-softfloat-libgcc.patch
Normal file
@ -0,0 +1,38 @@
|
||||
[PATCH] add the correct symbols to libgcc for uclibc arm softfloat
|
||||
|
||||
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
|
||||
---
|
||||
gcc/config/arm/linux-elf.h | 2 +-
|
||||
gcc/config/arm/t-linux | 6 +++++-
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: gcc-4.4.0/gcc/config/arm/t-linux
|
||||
===================================================================
|
||||
--- gcc-4.4.0.orig/gcc/config/arm/t-linux
|
||||
+++ gcc-4.4.0/gcc/config/arm/t-linux
|
||||
@@ -4,7 +4,11 @@
|
||||
|
||||
LIB1ASMSRC = arm/lib1funcs.asm
|
||||
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
|
||||
- _arm_addsubdf3 _arm_addsubsf3
|
||||
+ _arm_addsubdf3 _arm_addsubsf3 \
|
||||
+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
|
||||
+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
|
||||
+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
|
||||
+ _arm_fixsfsi _arm_fixunssfsi
|
||||
|
||||
# MULTILIB_OPTIONS = mhard-float/msoft-float
|
||||
# MULTILIB_DIRNAMES = hard-float soft-float
|
||||
Index: gcc-4.4.0/gcc/config/arm/linux-elf.h
|
||||
===================================================================
|
||||
--- gcc-4.4.0.orig/gcc/config/arm/linux-elf.h
|
||||
+++ gcc-4.4.0/gcc/config/arm/linux-elf.h
|
||||
@@ -60,7 +60,7 @@
|
||||
%{shared:-lc} \
|
||||
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
|
||||
|
||||
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
|
||||
+#define LIBGCC_SPEC "-lgcc"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
|
@ -0,0 +1,11 @@
|
||||
--- gcc-4.3.4/libffi/src/arm/sysv.S
|
||||
+++ gcc-4.3.4/libffi/src/arm/sysv.S
|
||||
@@ -235,7 +235,7 @@ ARM_FUNC_START ffi_closure_SYSV
|
||||
stmfd sp!, {ip, lr}
|
||||
UNWIND .save {r0, lr}
|
||||
add r2, sp, #8
|
||||
- .pad #16
|
||||
+ UNWIND .pad #16
|
||||
sub sp, sp, #16
|
||||
str sp, [sp, #8]
|
||||
add r1, sp, #8
|
39
patches/gcc/4.4.7/410-libgcc_eh.a.patch
Normal file
39
patches/gcc/4.4.7/410-libgcc_eh.a.patch
Normal file
@ -0,0 +1,39 @@
|
||||
Highly inspired by:
|
||||
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
|
||||
|
||||
diff -durN gcc-4.4.0.orig/libgcc/Makefile.in gcc-4.4.0/libgcc/Makefile.in
|
||||
--- gcc-4.4.0.orig/libgcc/Makefile.in 2009-04-10 01:23:07.000000000 +0200
|
||||
+++ gcc-4.4.0/libgcc/Makefile.in 2011-09-12 17:05:25.121124559 +0200
|
||||
@@ -754,8 +754,9 @@
|
||||
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
|
||||
endif
|
||||
|
||||
+all: libgcc_eh.a
|
||||
ifeq ($(enable_shared),yes)
|
||||
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
|
||||
+all: libgcc_s$(SHLIB_EXT)
|
||||
ifneq ($(LIBUNWIND),)
|
||||
all: libunwind$(SHLIB_EXT)
|
||||
endif
|
||||
@@ -924,10 +925,6 @@
|
||||
install-shared:
|
||||
$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
|
||||
|
||||
- $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
|
||||
- chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
- $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
-
|
||||
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||
@shlib_base_name@,libgcc_s,$(subst \
|
||||
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
||||
@@ -942,6 +939,10 @@
|
||||
chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a
|
||||
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
|
||||
|
||||
+ $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
|
||||
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
+
|
||||
parts="$(INSTALL_PARTS)"; \
|
||||
for file in $$parts; do \
|
||||
rm -f $(DESTDIR)$(inst_libdir)/$$file; \
|
Loading…
Reference in New Issue
Block a user