From b4e38a89e4fc10171a9bc2c210f18f78cfa31b1b Mon Sep 17 00:00:00 2001 From: root Date: Thu, 11 Dec 2008 02:57:50 -0500 Subject: [PATCH] Changes for buildling on ARM. Signed-off-by: root --- gcc43-arm-progbits.patch | 10 ++++++++++ gcc43.spec | 9 ++++++++- libgcc_post_upgrade.c.arm.patch | 15 +++++++++++++++ 3 files changed, 33 insertions(+), 1 deletions(-) create mode 100644 gcc43-arm-progbits.patch create mode 100644 libgcc_post_upgrade.c.arm.patch diff --git a/gcc43-arm-progbits.patch b/gcc43-arm-progbits.patch new file mode 100644 index 0000000..08f3bbb --- /dev/null +++ b/gcc43-arm-progbits.patch @@ -0,0 +1,10 @@ +diff -urp gcc-4.3.2-20081105.orig/libffi/src/arm/sysv.S gcc-4.3.2-20081105/libffi/src/arm/sysv.S +--- gcc-4.3.2-20081105.orig/libffi/src/arm/sysv.S 2007-12-07 09:31:30.000000000 -0500 ++++ gcc-4.3.2-20081105/libffi/src/arm/sysv.S 2008-11-20 23:26:03.000000000 -0500 +@@ -294,5 +294,5 @@ ARM_FUNC_START ffi_closure_SYSV + .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV) + + #if defined __ELF__ && defined __linux__ +- .section .note.GNU-stack,"",@progbits ++ .section .note.GNU-stack,"",%progbits + #endif diff --git a/gcc43.spec b/gcc43.spec index 97a3e01..ce05da4 100644 --- a/gcc43.spec +++ b/gcc43.spec @@ -34,7 +34,7 @@ Summary: Various compilers (C, C++, Objective-C, Java, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release} +Release: %{gcc_release}.fa1 # libgcc, libgfortran, libmudflap and crtstuff have an exception which allows # linking it into any kind of programs or shared libraries without # restrictions. @@ -165,6 +165,8 @@ Patch28: gcc43-pr37870.patch Patch29: gcc43-pr37858.patch Patch30: gcc43-pr37879.patch Patch31: gcc43-pr37924.patch +Patch32: gcc43-arm-progbits.patch +Patch33: libgcc_post_upgrade.c.arm.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. @@ -480,6 +482,7 @@ which are required to run programs compiled with the GNAT. %patch29 -p0 -b .pr37858~ %patch30 -p0 -b .pr37879~ %patch31 -p0 -b .pr37924~ +%patch32 -p1 -b .progbits~ tar xzf %{SOURCE4} @@ -1098,6 +1101,7 @@ EOF chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c?9 mkdir -p $RPM_BUILD_ROOT%{_prefix}/sbin +patch %{SOURCE1} < %{PATCH33} gcc -static -Os %{SOURCE1} -o $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade strip $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade @@ -1732,6 +1736,9 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Thu Dec 11 2008 Kedar Sovani 4.3.2-7.fa1 +- Include support for buildling on ARM + * Wed Nov 5 2008 Jakub Jelinek 4.3.2-7 - update from gcc-4_3-branch - PRs c/35437, fortran/35680, fortran/37723, fortran/37749, fortran/37787, diff --git a/libgcc_post_upgrade.c.arm.patch b/libgcc_post_upgrade.c.arm.patch new file mode 100644 index 0000000..3e1e884 --- /dev/null +++ b/libgcc_post_upgrade.c.arm.patch @@ -0,0 +1,15 @@ +--- libgcc_post_upgrade.c.orig 2007-11-30 06:35:49.000000000 -0500 ++++ libgcc_post_upgrade.c 2007-11-30 06:35:31.000000000 -0500 +@@ -439,6 +439,12 @@ + pid_t __fork (void) { return -1; } + char thr_buf[65536]; + ++#if defined __arm__ ++/* Prevent pulling in libc-start.o (which also defines ++ * __libc_start_main.) */ ++unsigned int __stack_chk_guard = ~0U; ++#endif ++ + #ifndef __powerpc__ + int __libc_start_main (int (*main) (int argc, char **argv), + int argc, char **argv, -- 1.5.3.3