patches/gcc/4.4.0/250-ia64-noteGNUstack.patch
author Johannes Stezenbach <js@sig21.net>
Thu Jul 29 19:47:16 2010 +0200 (2010-07-29)
changeset 2045 fdaa6c7f6dea
permissions -rw-r--r--
cc/gcc: add option to compile against static libstdc++, for gcc-4.4 and newer

Idea and know-how taken from CodeSourcery build script.

Normal build:
$ ldd arm-unknown-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xb77f3000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76e8000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75a1000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb757a000)
/lib/ld-linux.so.2 (0xb77f4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb755c000)

CC_STATIC_LIBSTDCXX=y:
$ ldd arm-unknown-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xb7843000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb76e6000)
/lib/ld-linux.so.2 (0xb7844000)

I made CC_STATIC_LIBSTDCXX default=y since I think
it is always desirable.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
     1 diff -durN gcc-4.4.0.orig/gcc/config/ia64/crtbegin.asm gcc-4.4.0/gcc/config/ia64/crtbegin.asm
     2 --- gcc-4.4.0.orig/gcc/config/ia64/crtbegin.asm	2009-04-10 01:23:07.000000000 +0200
     3 +++ gcc-4.4.0/gcc/config/ia64/crtbegin.asm	2009-05-27 21:38:37.000000000 +0200
     4 @@ -252,3 +252,7 @@
     5  .weak __cxa_finalize
     6  #endif
     7  .weak _Jv_RegisterClasses
     8 +
     9 +#ifdef __linux__
    10 +.section .note.GNU-stack; .previous
    11 +#endif
    12 diff -durN gcc-4.4.0.orig/gcc/config/ia64/crtend.asm gcc-4.4.0/gcc/config/ia64/crtend.asm
    13 --- gcc-4.4.0.orig/gcc/config/ia64/crtend.asm	2009-04-10 01:23:07.000000000 +0200
    14 +++ gcc-4.4.0/gcc/config/ia64/crtend.asm	2009-05-27 21:38:37.000000000 +0200
    15 @@ -119,3 +119,7 @@
    16  
    17  	br.ret.sptk.many rp
    18  	.endp __do_global_ctors_aux
    19 +
    20 +#ifdef __linux__
    21 +.section .note.GNU-stack; .previous
    22 +#endif
    23 diff -durN gcc-4.4.0.orig/gcc/config/ia64/crti.asm gcc-4.4.0/gcc/config/ia64/crti.asm
    24 --- gcc-4.4.0.orig/gcc/config/ia64/crti.asm	2009-04-10 01:23:07.000000000 +0200
    25 +++ gcc-4.4.0/gcc/config/ia64/crti.asm	2009-05-27 21:38:37.000000000 +0200
    26 @@ -51,3 +51,7 @@
    27  	.body
    28  
    29  # end of crti.asm
    30 +
    31 +#ifdef __linux__
    32 +.section .note.GNU-stack; .previous
    33 +#endif
    34 diff -durN gcc-4.4.0.orig/gcc/config/ia64/crtn.asm gcc-4.4.0/gcc/config/ia64/crtn.asm
    35 --- gcc-4.4.0.orig/gcc/config/ia64/crtn.asm	2009-04-10 01:23:07.000000000 +0200
    36 +++ gcc-4.4.0/gcc/config/ia64/crtn.asm	2009-05-27 21:38:37.000000000 +0200
    37 @@ -41,3 +41,7 @@
    38  	br.ret.sptk.many b0
    39  
    40  # end of crtn.asm
    41 +
    42 +#ifdef __linux__
    43 +.section .note.GNU-stack; .previous
    44 +#endif
    45 diff -durN gcc-4.4.0.orig/gcc/config/ia64/lib1funcs.asm gcc-4.4.0/gcc/config/ia64/lib1funcs.asm
    46 --- gcc-4.4.0.orig/gcc/config/ia64/lib1funcs.asm	2009-04-10 01:23:07.000000000 +0200
    47 +++ gcc-4.4.0/gcc/config/ia64/lib1funcs.asm	2009-05-27 21:38:37.000000000 +0200
    48 @@ -793,3 +793,7 @@
    49  	.endp __floattitf
    50  #endif
    51  #endif
    52 +
    53 +#ifdef __linux__
    54 +.section .note.GNU-stack; .previous
    55 +#endif
    56 diff -durN gcc-4.4.0.orig/gcc/config/ia64/linux.h gcc-4.4.0/gcc/config/ia64/linux.h
    57 --- gcc-4.4.0.orig/gcc/config/ia64/linux.h	2009-02-12 17:30:53.000000000 +0100
    58 +++ gcc-4.4.0/gcc/config/ia64/linux.h	2009-05-27 21:38:37.000000000 +0200
    59 @@ -5,6 +5,8 @@
    60  
    61  #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
    62  
    63 +#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
    64 +
    65  /* This is for -profile to use -lc_p instead of -lc.  */
    66  #undef CC1_SPEC
    67  #define CC1_SPEC "%{profile:-p} %{G*}"
    68 diff -durN gcc-4.4.0.orig/gcc/config/rs6000/ppc-asm.h gcc-4.4.0/gcc/config/rs6000/ppc-asm.h
    69 --- gcc-4.4.0.orig/gcc/config/rs6000/ppc-asm.h	2008-10-13 17:44:26.000000000 +0200
    70 +++ gcc-4.4.0/gcc/config/rs6000/ppc-asm.h	2009-05-27 21:38:37.000000000 +0200
    71 @@ -172,7 +172,7 @@
    72  	.size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
    73  #endif
    74  
    75 -#if defined __linux__ && !defined __powerpc64__
    76 +#if defined __linux__
    77  	.section .note.GNU-stack
    78  	.previous
    79  #endif