source: patches/gcc-4.4.1-fixes-3.patch @ 0cbb4b7

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since 0cbb4b7 was 0cbb4b7, checked in by jim <jim@…>, 15 years ago

Updated GCC Patches

  • Property mode set to 100644
File size: 25.0 KB
RevLine 
[0cbb4b7]1Submitted By: Jim Gifford (jim at cross-lfs dot org)
2Date: 09-12-2009
3Initial Package Version: 4.4.1
4Origin: Upstream
5Upstream Status: Applied
6Description: 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
10diff -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-
26diff -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
45diff -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)
109diff -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:                                                   \
121diff -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: \
133diff -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: \
145diff -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
156diff -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
167diff -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
178diff -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
189diff -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
200diff -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: \
221diff -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 
238diff -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
250diff -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 
262diff -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'
284diff -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} \
296diff -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: \
326diff -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: \
338diff -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 
479diff -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)
501diff -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
512diff -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
523diff -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
534diff -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 
548diff -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 
577diff -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 
594diff -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
621diff -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
Note: See TracBrowser for help on using the repository browser.