[0cbb4b7] | 1 | Submitted By: Jim Gifford (jim at cross-lfs dot org)
|
---|
| 2 | Date: 09-12-2009
|
---|
| 3 | Initial Package Version: 4.4.1
|
---|
| 4 | Origin: Upstream
|
---|
| 5 | Upstream Status: Applied
|
---|
| 6 | Description: This Patch contains fixes for gcc-4.4.1, and should be
|
---|
| 7 | rechecked periodically. These patches are not for inclusion in the book
|
---|
| 8 | but for testing purposes only.
|
---|
| 9 |
|
---|
| 10 | diff -Naur gcc-4.4.1.orig/boehm-gc/ia64_save_regs_in_stack.s gcc-4.4.1/boehm-gc/ia64_save_regs_in_stack.s
|
---|
| 11 | --- gcc-4.4.1.orig/boehm-gc/ia64_save_regs_in_stack.s 2001-10-14 21:57:59.000000000 -0700
|
---|
| 12 | +++ gcc-4.4.1/boehm-gc/ia64_save_regs_in_stack.s 2009-09-12 09:19:14.000000000 -0700
|
---|
| 13 | @@ -1,12 +0,0 @@
|
---|
| 14 | - .text
|
---|
| 15 | - .align 16
|
---|
| 16 | - .global GC_save_regs_in_stack
|
---|
| 17 | - .proc GC_save_regs_in_stack
|
---|
| 18 | -GC_save_regs_in_stack:
|
---|
| 19 | - .body
|
---|
| 20 | - flushrs
|
---|
| 21 | - ;;
|
---|
| 22 | - mov r8=ar.bsp
|
---|
| 23 | - br.ret.sptk.few rp
|
---|
| 24 | - .endp GC_save_regs_in_stack
|
---|
| 25 | -
|
---|
| 26 | diff -Naur gcc-4.4.1.orig/boehm-gc/ia64_save_regs_in_stack.S gcc-4.4.1/boehm-gc/ia64_save_regs_in_stack.S
|
---|
| 27 | --- gcc-4.4.1.orig/boehm-gc/ia64_save_regs_in_stack.S 1969-12-31 16:00:00.000000000 -0800
|
---|
| 28 | +++ gcc-4.4.1/boehm-gc/ia64_save_regs_in_stack.S 2009-09-12 09:19:14.000000000 -0700
|
---|
| 29 | @@ -0,0 +1,15 @@
|
---|
| 30 | + .text
|
---|
| 31 | + .align 16
|
---|
| 32 | + .global GC_save_regs_in_stack
|
---|
| 33 | + .proc GC_save_regs_in_stack
|
---|
| 34 | +GC_save_regs_in_stack:
|
---|
| 35 | + .body
|
---|
| 36 | + flushrs
|
---|
| 37 | + ;;
|
---|
| 38 | + mov r8=ar.bsp
|
---|
| 39 | + br.ret.sptk.few rp
|
---|
| 40 | + .endp GC_save_regs_in_stack
|
---|
| 41 | +
|
---|
| 42 | +#ifdef __linux__
|
---|
| 43 | + .section .note.GNU-stack,"",@progbits
|
---|
| 44 | +#endif
|
---|
| 45 | diff -Naur gcc-4.4.1.orig/boehm-gc/include/private/gc_locks.h gcc-4.4.1/boehm-gc/include/private/gc_locks.h
|
---|
| 46 | --- gcc-4.4.1.orig/boehm-gc/include/private/gc_locks.h 2006-02-03 16:15:08.000000000 -0800
|
---|
| 47 | +++ gcc-4.4.1/boehm-gc/include/private/gc_locks.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 48 | @@ -139,49 +139,35 @@
|
---|
| 49 | # define GC_TEST_AND_SET_DEFINED
|
---|
| 50 | # endif
|
---|
| 51 | # if defined(POWERPC)
|
---|
| 52 | -# if 0 /* CPP_WORDSZ == 64 totally broken to use int locks with ldarx */
|
---|
| 53 | - inline static int GC_test_and_set(volatile unsigned int *addr) {
|
---|
| 54 | - unsigned long oldval;
|
---|
| 55 | - unsigned long temp = 1; /* locked value */
|
---|
| 56 | -
|
---|
| 57 | - __asm__ __volatile__(
|
---|
| 58 | - "1:\tldarx %0,0,%3\n" /* load and reserve */
|
---|
| 59 | - "\tcmpdi %0, 0\n" /* if load is */
|
---|
| 60 | - "\tbne 2f\n" /* non-zero, return already set */
|
---|
| 61 | - "\tstdcx. %2,0,%1\n" /* else store conditional */
|
---|
| 62 | - "\tbne- 1b\n" /* retry if lost reservation */
|
---|
| 63 | - "\tsync\n" /* import barrier */
|
---|
| 64 | - "2:\t\n" /* oldval is zero if we set */
|
---|
| 65 | - : "=&r"(oldval), "=p"(addr)
|
---|
| 66 | - : "r"(temp), "1"(addr)
|
---|
| 67 | - : "cr0","memory");
|
---|
| 68 | - return (int)oldval;
|
---|
| 69 | - }
|
---|
| 70 | +# define GC_TEST_AND_SET_DEFINED
|
---|
| 71 | +# define GC_CLEAR_DEFINED
|
---|
| 72 | +# if (__GNUC__>4)||((__GNUC__==4)&&(__GNUC_MINOR__>=4))
|
---|
| 73 | +# define GC_test_and_set(addr) __sync_lock_test_and_set (addr, 1)
|
---|
| 74 | +# define GC_clear(addr) __sync_lock_release (addr)
|
---|
| 75 | # else
|
---|
| 76 | inline static int GC_test_and_set(volatile unsigned int *addr) {
|
---|
| 77 | int oldval;
|
---|
| 78 | int temp = 1; /* locked value */
|
---|
| 79 |
|
---|
| 80 | __asm__ __volatile__(
|
---|
| 81 | - "1:\tlwarx %0,0,%3\n" /* load and reserve */
|
---|
| 82 | + "\n1:\n"
|
---|
| 83 | + "\tlwarx %0,%y3\n" /* load and reserve, 32-bits */
|
---|
| 84 | "\tcmpwi %0, 0\n" /* if load is */
|
---|
| 85 | "\tbne 2f\n" /* non-zero, return already set */
|
---|
| 86 | - "\tstwcx. %2,0,%1\n" /* else store conditional */
|
---|
| 87 | + "\tstwcx. %2,%y3\n" /* else store conditional */
|
---|
| 88 | "\tbne- 1b\n" /* retry if lost reservation */
|
---|
| 89 | "\tsync\n" /* import barrier */
|
---|
| 90 | "2:\t\n" /* oldval is zero if we set */
|
---|
| 91 | - : "=&r"(oldval), "=p"(addr)
|
---|
| 92 | - : "r"(temp), "1"(addr)
|
---|
| 93 | + : "=&r"(oldval), "=m"(addr)
|
---|
| 94 | + : "r"(temp), "Z"(addr)
|
---|
| 95 | : "cr0","memory");
|
---|
| 96 | return oldval;
|
---|
| 97 | }
|
---|
| 98 | -# endif
|
---|
| 99 | -# define GC_TEST_AND_SET_DEFINED
|
---|
| 100 | inline static void GC_clear(volatile unsigned int *addr) {
|
---|
| 101 | __asm__ __volatile__("lwsync" : : : "memory");
|
---|
| 102 | *(addr) = 0;
|
---|
| 103 | }
|
---|
| 104 | -# define GC_CLEAR_DEFINED
|
---|
| 105 | +# endif
|
---|
| 106 | # endif
|
---|
| 107 | # if defined(ALPHA)
|
---|
| 108 | inline static int GC_test_and_set(volatile unsigned int * addr)
|
---|
| 109 | diff -Naur gcc-4.4.1.orig/gcc/config/alpha/linux-elf.h gcc-4.4.1/gcc/config/alpha/linux-elf.h
|
---|
| 110 | --- gcc-4.4.1.orig/gcc/config/alpha/linux-elf.h 2007-08-02 03:49:31.000000000 -0700
|
---|
| 111 | +++ gcc-4.4.1/gcc/config/alpha/linux-elf.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 112 | @@ -39,7 +39,7 @@
|
---|
| 113 |
|
---|
| 114 | #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
|
---|
| 115 |
|
---|
| 116 | -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
|
---|
| 117 | +#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
|
---|
| 118 | %{O*:-O3} %{!O*:-O1} \
|
---|
| 119 | %{shared:-shared} \
|
---|
| 120 | %{!shared: \
|
---|
| 121 | diff -Naur gcc-4.4.1.orig/gcc/config/i386/linux64.h gcc-4.4.1/gcc/config/i386/linux64.h
|
---|
| 122 | --- gcc-4.4.1.orig/gcc/config/i386/linux64.h 2009-04-09 16:23:07.000000000 -0700
|
---|
| 123 | +++ gcc-4.4.1/gcc/config/i386/linux64.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 124 | @@ -75,7 +75,7 @@
|
---|
| 125 | #endif
|
---|
| 126 |
|
---|
| 127 | #undef LINK_SPEC
|
---|
| 128 | -#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
|
---|
| 129 | +#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
|
---|
| 130 | %{shared:-shared} \
|
---|
| 131 | %{!shared: \
|
---|
| 132 | %{!static: \
|
---|
| 133 | diff -Naur gcc-4.4.1.orig/gcc/config/i386/linux.h gcc-4.4.1/gcc/config/i386/linux.h
|
---|
| 134 | --- gcc-4.4.1.orig/gcc/config/i386/linux.h 2009-05-21 06:21:30.000000000 -0700
|
---|
| 135 | +++ gcc-4.4.1/gcc/config/i386/linux.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 136 | @@ -113,7 +113,7 @@
|
---|
| 137 | { "dynamic_linker", LINUX_DYNAMIC_LINKER }
|
---|
| 138 |
|
---|
| 139 | #undef LINK_SPEC
|
---|
| 140 | -#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
|
---|
| 141 | +#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
|
---|
| 142 | %{!shared: \
|
---|
| 143 | %{!ibcs: \
|
---|
| 144 | %{!static: \
|
---|
| 145 | diff -Naur gcc-4.4.1.orig/gcc/config/ia64/crtbegin.asm gcc-4.4.1/gcc/config/ia64/crtbegin.asm
|
---|
| 146 | --- gcc-4.4.1.orig/gcc/config/ia64/crtbegin.asm 2009-04-09 16:23:07.000000000 -0700
|
---|
| 147 | +++ gcc-4.4.1/gcc/config/ia64/crtbegin.asm 2009-09-12 09:19:14.000000000 -0700
|
---|
| 148 | @@ -252,3 +252,7 @@
|
---|
| 149 | .weak __cxa_finalize
|
---|
| 150 | #endif
|
---|
| 151 | .weak _Jv_RegisterClasses
|
---|
| 152 | +
|
---|
| 153 | +#ifdef __linux__
|
---|
| 154 | +.section .note.GNU-stack; .previous
|
---|
| 155 | +#endif
|
---|
| 156 | diff -Naur gcc-4.4.1.orig/gcc/config/ia64/crtend.asm gcc-4.4.1/gcc/config/ia64/crtend.asm
|
---|
| 157 | --- gcc-4.4.1.orig/gcc/config/ia64/crtend.asm 2009-04-09 16:23:07.000000000 -0700
|
---|
| 158 | +++ gcc-4.4.1/gcc/config/ia64/crtend.asm 2009-09-12 09:19:14.000000000 -0700
|
---|
| 159 | @@ -119,3 +119,7 @@
|
---|
| 160 |
|
---|
| 161 | br.ret.sptk.many rp
|
---|
| 162 | .endp __do_global_ctors_aux
|
---|
| 163 | +
|
---|
| 164 | +#ifdef __linux__
|
---|
| 165 | +.section .note.GNU-stack; .previous
|
---|
| 166 | +#endif
|
---|
| 167 | diff -Naur gcc-4.4.1.orig/gcc/config/ia64/crti.asm gcc-4.4.1/gcc/config/ia64/crti.asm
|
---|
| 168 | --- gcc-4.4.1.orig/gcc/config/ia64/crti.asm 2009-04-09 16:23:07.000000000 -0700
|
---|
| 169 | +++ gcc-4.4.1/gcc/config/ia64/crti.asm 2009-09-12 09:19:14.000000000 -0700
|
---|
| 170 | @@ -51,3 +51,7 @@
|
---|
| 171 | .body
|
---|
| 172 |
|
---|
| 173 | # end of crti.asm
|
---|
| 174 | +
|
---|
| 175 | +#ifdef __linux__
|
---|
| 176 | +.section .note.GNU-stack; .previous
|
---|
| 177 | +#endif
|
---|
| 178 | diff -Naur gcc-4.4.1.orig/gcc/config/ia64/crtn.asm gcc-4.4.1/gcc/config/ia64/crtn.asm
|
---|
| 179 | --- gcc-4.4.1.orig/gcc/config/ia64/crtn.asm 2009-04-09 16:23:07.000000000 -0700
|
---|
| 180 | +++ gcc-4.4.1/gcc/config/ia64/crtn.asm 2009-09-12 09:19:14.000000000 -0700
|
---|
| 181 | @@ -41,3 +41,7 @@
|
---|
| 182 | br.ret.sptk.many b0
|
---|
| 183 |
|
---|
| 184 | # end of crtn.asm
|
---|
| 185 | +
|
---|
| 186 | +#ifdef __linux__
|
---|
| 187 | +.section .note.GNU-stack; .previous
|
---|
| 188 | +#endif
|
---|
| 189 | diff -Naur gcc-4.4.1.orig/gcc/config/ia64/lib1funcs.asm gcc-4.4.1/gcc/config/ia64/lib1funcs.asm
|
---|
| 190 | --- gcc-4.4.1.orig/gcc/config/ia64/lib1funcs.asm 2009-04-09 16:23:07.000000000 -0700
|
---|
| 191 | +++ gcc-4.4.1/gcc/config/ia64/lib1funcs.asm 2009-09-12 09:19:14.000000000 -0700
|
---|
| 192 | @@ -793,3 +793,7 @@
|
---|
| 193 | .endp __floattitf
|
---|
| 194 | #endif
|
---|
| 195 | #endif
|
---|
| 196 | +
|
---|
| 197 | +#ifdef __linux__
|
---|
| 198 | +.section .note.GNU-stack; .previous
|
---|
| 199 | +#endif
|
---|
| 200 | diff -Naur gcc-4.4.1.orig/gcc/config/ia64/linux.h gcc-4.4.1/gcc/config/ia64/linux.h
|
---|
| 201 | --- gcc-4.4.1.orig/gcc/config/ia64/linux.h 2009-02-12 08:30:53.000000000 -0800
|
---|
| 202 | +++ gcc-4.4.1/gcc/config/ia64/linux.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 203 | @@ -5,6 +5,8 @@
|
---|
| 204 |
|
---|
| 205 | #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
|
---|
| 206 |
|
---|
| 207 | +#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
---|
| 208 | +
|
---|
| 209 | /* This is for -profile to use -lc_p instead of -lc. */
|
---|
| 210 | #undef CC1_SPEC
|
---|
| 211 | #define CC1_SPEC "%{profile:-p} %{G*}"
|
---|
| 212 | @@ -40,7 +42,7 @@
|
---|
| 213 | #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
|
---|
| 214 |
|
---|
| 215 | #undef LINK_SPEC
|
---|
| 216 | -#define LINK_SPEC "\
|
---|
| 217 | +#define LINK_SPEC "--hash-style=both \
|
---|
| 218 | %{shared:-shared} \
|
---|
| 219 | %{!shared: \
|
---|
| 220 | %{!static: \
|
---|
| 221 | diff -Naur gcc-4.4.1.orig/gcc/config/rs6000/linux64.h gcc-4.4.1/gcc/config/rs6000/linux64.h
|
---|
| 222 | --- gcc-4.4.1.orig/gcc/config/rs6000/linux64.h 2009-04-09 16:23:07.000000000 -0700
|
---|
| 223 | +++ gcc-4.4.1/gcc/config/rs6000/linux64.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 224 | @@ -357,11 +357,11 @@
|
---|
| 225 | CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
|
---|
| 226 |
|
---|
| 227 |
|
---|
| 228 | -#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
|
---|
| 229 | +#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
|
---|
| 230 | %{rdynamic:-export-dynamic} \
|
---|
| 231 | %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}"
|
---|
| 232 |
|
---|
| 233 | -#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
|
---|
| 234 | +#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
|
---|
| 235 | %{rdynamic:-export-dynamic} \
|
---|
| 236 | %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
|
---|
| 237 |
|
---|
| 238 | diff -Naur gcc-4.4.1.orig/gcc/config/rs6000/ppc-asm.h gcc-4.4.1/gcc/config/rs6000/ppc-asm.h
|
---|
| 239 | --- gcc-4.4.1.orig/gcc/config/rs6000/ppc-asm.h 2008-10-13 08:44:26.000000000 -0700
|
---|
| 240 | +++ gcc-4.4.1/gcc/config/rs6000/ppc-asm.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 241 | @@ -172,7 +172,7 @@
|
---|
| 242 | .size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
|
---|
| 243 | #endif
|
---|
| 244 |
|
---|
| 245 | -#if defined __linux__ && !defined __powerpc64__
|
---|
| 246 | +#if defined __linux__
|
---|
| 247 | .section .note.GNU-stack
|
---|
| 248 | .previous
|
---|
| 249 | #endif
|
---|
| 250 | diff -Naur gcc-4.4.1.orig/gcc/config/rs6000/sysv4.h gcc-4.4.1/gcc/config/rs6000/sysv4.h
|
---|
| 251 | --- gcc-4.4.1.orig/gcc/config/rs6000/sysv4.h 2009-04-09 16:23:07.000000000 -0700
|
---|
| 252 | +++ gcc-4.4.1/gcc/config/rs6000/sysv4.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 253 | @@ -911,7 +911,7 @@
|
---|
| 254 | #define LINUX_DYNAMIC_LINKER \
|
---|
| 255 | CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
|
---|
| 256 |
|
---|
| 257 | -#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
|
---|
| 258 | +#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
|
---|
| 259 | %{rdynamic:-export-dynamic} \
|
---|
| 260 | %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
|
---|
| 261 |
|
---|
| 262 | diff -Naur gcc-4.4.1.orig/gcc/config/rs6000/t-linux64 gcc-4.4.1/gcc/config/rs6000/t-linux64
|
---|
| 263 | --- gcc-4.4.1.orig/gcc/config/rs6000/t-linux64 2007-09-27 12:56:06.000000000 -0700
|
---|
| 264 | +++ gcc-4.4.1/gcc/config/rs6000/t-linux64 2009-09-12 09:19:13.000000000 -0700
|
---|
| 265 | @@ -14,13 +14,13 @@
|
---|
| 266 | # it doesn't tell anything about the 32bit libraries on those systems. Set
|
---|
| 267 | # MULTILIB_OSDIRNAMES according to what is found on the target.
|
---|
| 268 |
|
---|
| 269 | -MULTILIB_OPTIONS = m64/m32 msoft-float
|
---|
| 270 | +MULTILIB_OPTIONS = m64/m32
|
---|
| 271 | MULTILIB_DIRNAMES = 64 32 nof
|
---|
| 272 | MULTILIB_EXTRA_OPTS = fPIC mstrict-align
|
---|
| 273 | -MULTILIB_EXCEPTIONS = m64/msoft-float
|
---|
| 274 | -MULTILIB_EXCLUSIONS = m64/!m32/msoft-float
|
---|
| 275 | -MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
|
---|
| 276 | -MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)
|
---|
| 277 | +MULTILIB_EXCEPTIONS =
|
---|
| 278 | +MULTILIB_EXCLUSIONS =
|
---|
| 279 | +MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
|
---|
| 280 | +MULTILIB_MATCHES =
|
---|
| 281 |
|
---|
| 282 | softfp_wrap_start := '\#ifndef __powerpc64__'
|
---|
| 283 | softfp_wrap_end := '\#endif'
|
---|
| 284 | diff -Naur gcc-4.4.1.orig/gcc/config/s390/linux.h gcc-4.4.1/gcc/config/s390/linux.h
|
---|
| 285 | --- gcc-4.4.1.orig/gcc/config/s390/linux.h 2007-08-02 03:49:31.000000000 -0700
|
---|
| 286 | +++ gcc-4.4.1/gcc/config/s390/linux.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 287 | @@ -77,7 +77,7 @@
|
---|
| 288 |
|
---|
| 289 | #undef LINK_SPEC
|
---|
| 290 | #define LINK_SPEC \
|
---|
| 291 | - "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
|
---|
| 292 | + "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
|
---|
| 293 | %{shared:-shared} \
|
---|
| 294 | %{!shared: \
|
---|
| 295 | %{static:-static} \
|
---|
| 296 | diff -Naur gcc-4.4.1.orig/gcc/config/sparc/linux64.h gcc-4.4.1/gcc/config/sparc/linux64.h
|
---|
| 297 | --- gcc-4.4.1.orig/gcc/config/sparc/linux64.h 2009-02-20 07:20:38.000000000 -0800
|
---|
| 298 | +++ gcc-4.4.1/gcc/config/sparc/linux64.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 299 | @@ -121,7 +121,7 @@
|
---|
| 300 | { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
|
---|
| 301 | { "link_arch", LINK_ARCH_SPEC },
|
---|
| 302 |
|
---|
| 303 | -#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
|
---|
| 304 | +#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
|
---|
| 305 | %{!shared: \
|
---|
| 306 | %{!ibcs: \
|
---|
| 307 | %{!static: \
|
---|
| 308 | @@ -130,7 +130,7 @@
|
---|
| 309 | %{static:-static}}} \
|
---|
| 310 | "
|
---|
| 311 |
|
---|
| 312 | -#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
|
---|
| 313 | +#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
|
---|
| 314 | %{!shared: \
|
---|
| 315 | %{!ibcs: \
|
---|
| 316 | %{!static: \
|
---|
| 317 | @@ -211,7 +211,7 @@
|
---|
| 318 | #else /* !SPARC_BI_ARCH */
|
---|
| 319 |
|
---|
| 320 | #undef LINK_SPEC
|
---|
| 321 | -#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
|
---|
| 322 | +#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
|
---|
| 323 | %{!shared: \
|
---|
| 324 | %{!ibcs: \
|
---|
| 325 | %{!static: \
|
---|
| 326 | diff -Naur gcc-4.4.1.orig/gcc/config/sparc/linux.h gcc-4.4.1/gcc/config/sparc/linux.h
|
---|
| 327 | --- gcc-4.4.1.orig/gcc/config/sparc/linux.h 2009-02-20 07:20:38.000000000 -0800
|
---|
| 328 | +++ gcc-4.4.1/gcc/config/sparc/linux.h 2009-09-12 09:19:14.000000000 -0700
|
---|
| 329 | @@ -86,7 +86,7 @@
|
---|
| 330 | #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
---|
| 331 |
|
---|
| 332 | #undef LINK_SPEC
|
---|
| 333 | -#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
|
---|
| 334 | +#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
|
---|
| 335 | %{!mno-relax:%{!r:-relax}} \
|
---|
| 336 | %{!shared: \
|
---|
| 337 | %{!ibcs: \
|
---|
| 338 | diff -Naur gcc-4.4.1.orig/gcc/graphite.c gcc-4.4.1/gcc/graphite.c
|
---|
| 339 | --- gcc-4.4.1.orig/gcc/graphite.c 2009-03-18 09:59:55.000000000 -0700
|
---|
| 340 | +++ gcc-4.4.1/gcc/graphite.c 2009-09-12 09:19:13.000000000 -0700
|
---|
| 341 | @@ -59,6 +59,110 @@
|
---|
| 342 | #include "cloog/cloog.h"
|
---|
| 343 | #include "graphite.h"
|
---|
| 344 |
|
---|
| 345 | +#include <dlfcn.h>
|
---|
| 346 | +#define DYNSYMS \
|
---|
| 347 | + DYNSYM (cloog_block_alloc); \
|
---|
| 348 | + DYNSYM (cloog_block_list_free); \
|
---|
| 349 | + DYNSYM (cloog_block_list_malloc); \
|
---|
| 350 | + DYNSYM (cloog_clast_create); \
|
---|
| 351 | + DYNSYM (cloog_clast_free); \
|
---|
| 352 | + DYNSYM (cloog_domain_free); \
|
---|
| 353 | + DYNSYM (cloog_domain_matrix2domain); \
|
---|
| 354 | + DYNSYM (cloog_initialize); \
|
---|
| 355 | + DYNSYM (cloog_loop_malloc); \
|
---|
| 356 | + DYNSYM (cloog_matrix_alloc); \
|
---|
| 357 | + DYNSYM (cloog_matrix_copy); \
|
---|
| 358 | + DYNSYM (cloog_matrix_free); \
|
---|
| 359 | + DYNSYM (cloog_matrix_print); \
|
---|
| 360 | + DYNSYM (cloog_names_malloc); \
|
---|
| 361 | + DYNSYM (cloog_names_scalarize); \
|
---|
| 362 | + DYNSYM (cloog_options_free); \
|
---|
| 363 | + DYNSYM (cloog_options_malloc); \
|
---|
| 364 | + DYNSYM (cloog_program_dump_cloog); \
|
---|
| 365 | + DYNSYM (cloog_program_extract_scalars); \
|
---|
| 366 | + DYNSYM (cloog_program_free); \
|
---|
| 367 | + DYNSYM (cloog_program_generate); \
|
---|
| 368 | + DYNSYM (cloog_program_malloc); \
|
---|
| 369 | + DYNSYM (cloog_program_print); \
|
---|
| 370 | + DYNSYM (cloog_program_scatter); \
|
---|
| 371 | + DYNSYM (cloog_statement_alloc); \
|
---|
| 372 | + DYNSYM (ppl_finalize); \
|
---|
| 373 | + DYNSYM (pprint); \
|
---|
| 374 | + DYNSYM (stmt_block); \
|
---|
| 375 | + DYNSYM (stmt_for); \
|
---|
| 376 | + DYNSYM (stmt_guard); \
|
---|
| 377 | + DYNSYM (stmt_root); \
|
---|
| 378 | + DYNSYM (stmt_user);
|
---|
| 379 | +static struct
|
---|
| 380 | +{
|
---|
| 381 | + bool inited;
|
---|
| 382 | + void *h;
|
---|
| 383 | +#define DYNSYM(x) __typeof (x) *p_##x
|
---|
| 384 | + DYNSYMS
|
---|
| 385 | +#undef DYNSYM
|
---|
| 386 | +} cloog_pointers;
|
---|
| 387 | +
|
---|
| 388 | +#define cloog_block_alloc (*cloog_pointers.p_cloog_block_alloc)
|
---|
| 389 | +#define cloog_block_list_free (*cloog_pointers.p_cloog_block_list_free)
|
---|
| 390 | +#define cloog_block_list_malloc (*cloog_pointers.p_cloog_block_list_malloc)
|
---|
| 391 | +#define cloog_clast_create (*cloog_pointers.p_cloog_clast_create)
|
---|
| 392 | +#define cloog_clast_free (*cloog_pointers.p_cloog_clast_free)
|
---|
| 393 | +#define cloog_domain_free (*cloog_pointers.p_cloog_domain_free)
|
---|
| 394 | +#define cloog_domain_matrix2domain (*cloog_pointers.p_cloog_domain_matrix2domain)
|
---|
| 395 | +#define cloog_initialize (*cloog_pointers.p_cloog_initialize)
|
---|
| 396 | +#define cloog_loop_malloc (*cloog_pointers.p_cloog_loop_malloc)
|
---|
| 397 | +#define cloog_matrix_alloc (*cloog_pointers.p_cloog_matrix_alloc)
|
---|
| 398 | +#define cloog_matrix_copy (*cloog_pointers.p_cloog_matrix_copy)
|
---|
| 399 | +#define cloog_matrix_free (*cloog_pointers.p_cloog_matrix_free)
|
---|
| 400 | +#define cloog_matrix_print (*cloog_pointers.p_cloog_matrix_print)
|
---|
| 401 | +#define cloog_names_malloc (*cloog_pointers.p_cloog_names_malloc)
|
---|
| 402 | +#define cloog_names_scalarize (*cloog_pointers.p_cloog_names_scalarize)
|
---|
| 403 | +#define cloog_options_free (*cloog_pointers.p_cloog_options_free)
|
---|
| 404 | +#define cloog_options_malloc (*cloog_pointers.p_cloog_options_malloc)
|
---|
| 405 | +#define cloog_program_dump_cloog (*cloog_pointers.p_cloog_program_dump_cloog)
|
---|
| 406 | +#define cloog_program_extract_scalars (*cloog_pointers.p_cloog_program_extract_scalars)
|
---|
| 407 | +#define cloog_program_free (*cloog_pointers.p_cloog_program_free)
|
---|
| 408 | +#define cloog_program_generate (*cloog_pointers.p_cloog_program_generate)
|
---|
| 409 | +#define cloog_program_malloc (*cloog_pointers.p_cloog_program_malloc)
|
---|
| 410 | +#define cloog_program_print (*cloog_pointers.p_cloog_program_print)
|
---|
| 411 | +#define cloog_program_scatter (*cloog_pointers.p_cloog_program_scatter)
|
---|
| 412 | +#define cloog_statement_alloc (*cloog_pointers.p_cloog_statement_alloc)
|
---|
| 413 | +#define ppl_finalize (*cloog_pointers.p_ppl_finalize)
|
---|
| 414 | +#define pprint (*cloog_pointers.p_pprint)
|
---|
| 415 | +#define stmt_block (*cloog_pointers.p_stmt_block)
|
---|
| 416 | +#define stmt_for (*cloog_pointers.p_stmt_for)
|
---|
| 417 | +#define stmt_guard (*cloog_pointers.p_stmt_guard)
|
---|
| 418 | +#define stmt_root (*cloog_pointers.p_stmt_root)
|
---|
| 419 | +#define stmt_user (*cloog_pointers.p_stmt_user)
|
---|
| 420 | +
|
---|
| 421 | +#define cloog_finalize (*cloog_pointers.p_ppl_finalize)
|
---|
| 422 | +
|
---|
| 423 | +static bool
|
---|
| 424 | +init_cloog_pointers (void)
|
---|
| 425 | +{
|
---|
| 426 | + void *h;
|
---|
| 427 | +
|
---|
| 428 | + if (cloog_pointers.inited)
|
---|
| 429 | + return cloog_pointers.h != NULL;
|
---|
| 430 | + h = dlopen ("libcloog.so.0", RTLD_LAZY);
|
---|
| 431 | + cloog_pointers.h = h;
|
---|
| 432 | + if (h == NULL)
|
---|
| 433 | + return false;
|
---|
| 434 | +#define DYNSYM(x) \
|
---|
| 435 | + do \
|
---|
| 436 | + { \
|
---|
| 437 | + union { __typeof (cloog_pointers.p_##x) p; void *q; } u; \
|
---|
| 438 | + u.q = dlsym (h, #x); \
|
---|
| 439 | + if (u.q == NULL) \
|
---|
| 440 | + return false; \
|
---|
| 441 | + cloog_pointers.p_##x = u.p; \
|
---|
| 442 | + } \
|
---|
| 443 | + while (0)
|
---|
| 444 | + DYNSYMS
|
---|
| 445 | +#undef DYNSYM
|
---|
| 446 | + return true;
|
---|
| 447 | +}
|
---|
| 448 | +
|
---|
| 449 | static VEC (scop_p, heap) *current_scops;
|
---|
| 450 |
|
---|
| 451 | /* Converts a GMP constant V to a tree and returns it. */
|
---|
| 452 | @@ -4075,10 +4179,10 @@
|
---|
| 453 | STMT. */
|
---|
| 454 |
|
---|
| 455 | static tree
|
---|
| 456 | -gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for)
|
---|
| 457 | +gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora)
|
---|
| 458 | {
|
---|
| 459 | - struct clast_user_stmt *stmt = clast_get_body_of_loop ((struct clast_stmt *) stmt_for);
|
---|
| 460 | - const char *cloog_iv = stmt_for->iterator;
|
---|
| 461 | + struct clast_user_stmt *stmt = clast_get_body_of_loop ((struct clast_stmt *) stmt_fora);
|
---|
| 462 | + const char *cloog_iv = stmt_fora->iterator;
|
---|
| 463 | CloogStatement *cs = stmt->statement;
|
---|
| 464 | graphite_bb_p gbb = (graphite_bb_p) cloog_statement_usr (cs);
|
---|
| 465 |
|
---|
| 466 | @@ -6109,6 +6213,12 @@
|
---|
| 467 | if (number_of_loops () <= 1)
|
---|
| 468 | return;
|
---|
| 469 |
|
---|
| 470 | + if (!init_cloog_pointers ())
|
---|
| 471 | + {
|
---|
| 472 | + sorry ("Graphite loop optimizations cannot be used");
|
---|
| 473 | + return;
|
---|
| 474 | + }
|
---|
| 475 | +
|
---|
| 476 | current_scops = VEC_alloc (scop_p, heap, 3);
|
---|
| 477 | recompute_all_dominators ();
|
---|
| 478 |
|
---|
| 479 | diff -Naur gcc-4.4.1.orig/gcc/Makefile.in gcc-4.4.1/gcc/Makefile.in
|
---|
| 480 | --- gcc-4.4.1.orig/gcc/Makefile.in 2009-07-25 10:53:35.000000000 -0700
|
---|
| 481 | +++ gcc-4.4.1/gcc/Makefile.in 2009-09-12 09:19:13.000000000 -0700
|
---|
| 482 | @@ -914,7 +914,7 @@
|
---|
| 483 | # How to link with both our special library facilities
|
---|
| 484 | # and the system's installed libraries.
|
---|
| 485 | LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER)
|
---|
| 486 | -BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS)
|
---|
| 487 | +BACKENDLIBS = $(GMPLIBS) $(if $(CLOOGLIBS),-ldl)
|
---|
| 488 | # Any system libraries needed just for GNAT.
|
---|
| 489 | SYSLIBS = @GNAT_LIBEXC@
|
---|
| 490 |
|
---|
| 491 | @@ -3061,6 +3061,9 @@
|
---|
| 492 | $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
|
---|
| 493 | $(out_file) $(OUTPUT_OPTION)
|
---|
| 494 |
|
---|
| 495 | +graphite.o : \
|
---|
| 496 | + ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
|
---|
| 497 | +
|
---|
| 498 | # Build auxiliary files that support ecoff format.
|
---|
| 499 | mips-tfile: mips-tfile.o version.o $(LIBDEPS)
|
---|
| 500 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tfile.o version.o $(LIBS)
|
---|
| 501 | diff -Naur gcc-4.4.1.orig/libffi/src/ia64/unix.S gcc-4.4.1/libffi/src/ia64/unix.S
|
---|
| 502 | --- gcc-4.4.1.orig/libffi/src/ia64/unix.S 2005-03-30 13:49:19.000000000 -0800
|
---|
| 503 | +++ gcc-4.4.1/libffi/src/ia64/unix.S 2009-09-12 09:19:14.000000000 -0700
|
---|
| 504 | @@ -553,3 +553,7 @@
|
---|
| 505 | data8 @pcrel(.Lld_hfa_float) // FFI_IA64_TYPE_HFA_FLOAT
|
---|
| 506 | data8 @pcrel(.Lld_hfa_double) // FFI_IA64_TYPE_HFA_DOUBLE
|
---|
| 507 | data8 @pcrel(.Lld_hfa_ldouble) // FFI_IA64_TYPE_HFA_LDOUBLE
|
---|
| 508 | +
|
---|
| 509 | +#if defined __ELF__ && defined __linux__
|
---|
| 510 | + .section .note.GNU-stack,"",@progbits
|
---|
| 511 | +#endif
|
---|
| 512 | diff -Naur gcc-4.4.1.orig/libffi/src/powerpc/linux64_closure.S gcc-4.4.1/libffi/src/powerpc/linux64_closure.S
|
---|
| 513 | --- gcc-4.4.1.orig/libffi/src/powerpc/linux64_closure.S 2005-08-11 14:18:24.000000000 -0700
|
---|
| 514 | +++ gcc-4.4.1/libffi/src/powerpc/linux64_closure.S 2009-09-12 09:19:14.000000000 -0700
|
---|
| 515 | @@ -204,3 +204,7 @@
|
---|
| 516 | .align 3
|
---|
| 517 | .LEFDE1:
|
---|
| 518 | #endif
|
---|
| 519 | +
|
---|
| 520 | +#if defined __ELF__ && defined __linux__
|
---|
| 521 | + .section .note.GNU-stack,"",@progbits
|
---|
| 522 | +#endif
|
---|
| 523 | diff -Naur gcc-4.4.1.orig/libffi/src/powerpc/linux64.S gcc-4.4.1/libffi/src/powerpc/linux64.S
|
---|
| 524 | --- gcc-4.4.1.orig/libffi/src/powerpc/linux64.S 2007-11-16 15:24:53.000000000 -0800
|
---|
| 525 | +++ gcc-4.4.1/libffi/src/powerpc/linux64.S 2009-09-12 09:19:14.000000000 -0700
|
---|
| 526 | @@ -179,3 +179,7 @@
|
---|
| 527 | .align 3
|
---|
| 528 | .LEFDE1:
|
---|
| 529 | #endif
|
---|
| 530 | +
|
---|
| 531 | +#if defined __ELF__ && defined __linux__
|
---|
| 532 | + .section .note.GNU-stack,"",@progbits
|
---|
| 533 | +#endif
|
---|
| 534 | diff -Naur gcc-4.4.1.orig/libgomp/omp.h.in gcc-4.4.1/libgomp/omp.h.in
|
---|
| 535 | --- gcc-4.4.1.orig/libgomp/omp.h.in 2009-04-09 16:23:07.000000000 -0700
|
---|
| 536 | +++ gcc-4.4.1/libgomp/omp.h.in 2009-09-12 09:19:13.000000000 -0700
|
---|
| 537 | @@ -39,8 +39,8 @@
|
---|
| 538 |
|
---|
| 539 | typedef struct
|
---|
| 540 | {
|
---|
| 541 | - unsigned char _x[@OMP_NEST_LOCK_SIZE@]
|
---|
| 542 | - __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@)));
|
---|
| 543 | + unsigned char _x[8 + sizeof (void *)]
|
---|
| 544 | + __attribute__((__aligned__(sizeof (void *))));
|
---|
| 545 | } omp_nest_lock_t;
|
---|
| 546 | #endif
|
---|
| 547 |
|
---|
| 548 | diff -Naur gcc-4.4.1.orig/libjava/configure gcc-4.4.1/libjava/configure
|
---|
| 549 | --- gcc-4.4.1.orig/libjava/configure 2009-04-26 07:24:38.000000000 -0700
|
---|
| 550 | +++ gcc-4.4.1/libjava/configure 2009-09-12 09:19:13.000000000 -0700
|
---|
| 551 | @@ -1021,6 +1021,8 @@
|
---|
| 552 | default=yes
|
---|
| 553 | --enable-java-maintainer-mode
|
---|
| 554 | allow rebuilding of .class and .h files
|
---|
| 555 | + --enable-libjava-multilib
|
---|
| 556 | + build libjava as multilib
|
---|
| 557 | --disable-dependency-tracking speeds up one-time build
|
---|
| 558 | --enable-dependency-tracking do not reject slow dependency extractors
|
---|
| 559 | --enable-maintainer-mode enable make rules and dependencies not useful
|
---|
| 560 | @@ -1973,6 +1975,16 @@
|
---|
| 561 | fi
|
---|
| 562 |
|
---|
| 563 |
|
---|
| 564 | +# Check whether --enable-libjava-multilib was given.
|
---|
| 565 | +if test "${enable_libjava_multilib+set}" = set; then
|
---|
| 566 | + enableval=$enable_libjava_multilib;
|
---|
| 567 | +fi
|
---|
| 568 | +
|
---|
| 569 | +if test "$enable_libjava_multilib" = no; then
|
---|
| 570 | + multilib=no
|
---|
| 571 | + ac_configure_args="$ac_configure_args --disable-multilib"
|
---|
| 572 | +fi
|
---|
| 573 | +
|
---|
| 574 | # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
|
---|
| 575 |
|
---|
| 576 |
|
---|
| 577 | diff -Naur gcc-4.4.1.orig/libjava/configure.ac gcc-4.4.1/libjava/configure.ac
|
---|
| 578 | --- gcc-4.4.1.orig/libjava/configure.ac 2009-04-26 07:24:38.000000000 -0700
|
---|
| 579 | +++ gcc-4.4.1/libjava/configure.ac 2009-09-12 09:19:13.000000000 -0700
|
---|
| 580 | @@ -139,6 +139,13 @@
|
---|
| 581 | [allow rebuilding of .class and .h files]))
|
---|
| 582 | AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
|
---|
| 583 |
|
---|
| 584 | +AC_ARG_ENABLE(libjava-multilib,
|
---|
| 585 | + AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
|
---|
| 586 | +if test "$enable_libjava_multilib" = no; then
|
---|
| 587 | + multilib=no
|
---|
| 588 | + ac_configure_args="$ac_configure_args --disable-multilib"
|
---|
| 589 | +fi
|
---|
| 590 | +
|
---|
| 591 | # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
|
---|
| 592 | GCC_NO_EXECUTABLES
|
---|
| 593 |
|
---|
| 594 | diff -Naur gcc-4.4.1.orig/ltmain.sh gcc-4.4.1/ltmain.sh
|
---|
| 595 | --- gcc-4.4.1.orig/ltmain.sh 2008-09-26 09:21:02.000000000 -0700
|
---|
| 596 | +++ gcc-4.4.1/ltmain.sh 2009-09-12 09:19:13.000000000 -0700
|
---|
| 597 | @@ -6886,6 +6886,7 @@
|
---|
| 598 | rpath="$finalize_rpath"
|
---|
| 599 | test "$mode" != relink && rpath="$compile_rpath$rpath"
|
---|
| 600 | for libdir in $rpath; do
|
---|
| 601 | + case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
---|
| 602 | if test -n "$hardcode_libdir_flag_spec"; then
|
---|
| 603 | if test -n "$hardcode_libdir_separator"; then
|
---|
| 604 | if test -z "$hardcode_libdirs"; then
|
---|
| 605 | @@ -7575,6 +7576,7 @@
|
---|
| 606 | rpath=
|
---|
| 607 | hardcode_libdirs=
|
---|
| 608 | for libdir in $compile_rpath $finalize_rpath; do
|
---|
| 609 | + case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
---|
| 610 | if test -n "$hardcode_libdir_flag_spec"; then
|
---|
| 611 | if test -n "$hardcode_libdir_separator"; then
|
---|
| 612 | if test -z "$hardcode_libdirs"; then
|
---|
| 613 | @@ -7626,6 +7628,7 @@
|
---|
| 614 | rpath=
|
---|
| 615 | hardcode_libdirs=
|
---|
| 616 | for libdir in $finalize_rpath; do
|
---|
| 617 | + case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
---|
| 618 | if test -n "$hardcode_libdir_flag_spec"; then
|
---|
| 619 | if test -n "$hardcode_libdir_separator"; then
|
---|
| 620 | if test -z "$hardcode_libdirs"; then
|
---|
| 621 | diff -Naur gcc-4.4.1.orig/src/boehm-gc/ia64_save_regs_in_stack.S gcc-4.4.1/src/boehm-gc/ia64_save_regs_in_stack.S
|
---|
| 622 | --- gcc-4.4.1.orig/src/boehm-gc/ia64_save_regs_in_stack.S 1969-12-31 16:00:00.000000000 -0800
|
---|
| 623 | +++ gcc-4.4.1/src/boehm-gc/ia64_save_regs_in_stack.S 2009-09-12 09:19:14.000000000 -0700
|
---|
| 624 | @@ -0,0 +1,15 @@
|
---|
| 625 | + .text
|
---|
| 626 | + .align 16
|
---|
| 627 | + .global GC_save_regs_in_stack
|
---|
| 628 | + .proc GC_save_regs_in_stack
|
---|
| 629 | +GC_save_regs_in_stack:
|
---|
| 630 | + .body
|
---|
| 631 | + flushrs
|
---|
| 632 | + ;;
|
---|
| 633 | + mov r8=ar.bsp
|
---|
| 634 | + br.ret.sptk.few rp
|
---|
| 635 | + .endp GC_save_regs_in_stack
|
---|
| 636 | +
|
---|
| 637 | +#ifdef __linux__
|
---|
| 638 | + .section .note.GNU-stack,"",@progbits
|
---|
| 639 | +#endif
|
---|