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